shenyi
资深校友
资深校友
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数901
阅读:3711回复:2

干k8s源码系列:kubectl源码级学习和魔改

楼主#
更多 发布于:2022-11-24 02:04
   k8s源码级学习系列将长期更新。
    目前在更的有kubelet源码级学习和魔改,本课程是针对kubectl的,难度比kubelet魔改课程低一些,供运维级开发人员了解细节借鉴,课程不会逐一翻译函数含义,更多的是手撸和模拟,并讲解如何把源码的内容整合到自己项目中。
      其他源码级学习课程:
     1、Informer深入学习篇
     2 、k8s Controller runtime深入学习和源码理解篇
     2023年 将重点建设这个栏目。   本课程不适合新手,大约3章。50课时左右。


第二章:kubectl apply专门学习
第15讲:apply执行前读取对象的入口代码在哪 试听
我们经常会使用kubectl apply 进行读取文件进行对象读取操作,今天我们来看下入口在哪,方面我们后面扒源码

第16讲:继续挖掘kubectl apply的入口源码
沿着上节课,我们来继续挖掘apply的入口代码。从而进一步了解apply在执行前到底干了什么

第17讲:YamlJSON组合转码器单独使用
我们单独对yamljson转码器进行手调, 这也是我们可以用于实际项目中的方法

第18讲:kubectl如何读取一个yaml文件中的多个对象 试听
代码在我们之前讲过,今天我们要看下源码到底是怎么读取的

第19讲:client-side apply学习(1) 获取更改配置
今天我们来学习下什么是client side。后面还有server side

第20讲:client-side apply学习(2) 模拟资源创建的过程
我们用kubectl源码的方式,写出同款资源创建

第21讲:client-side apply学习(3) 模拟资源更新的过程
我们完整模拟kubectl资源更新的代码

第22讲:server-side apply学习(1) 基操
之前我们包括kubectl使用的是client-side,今天我们来使用下server-side。后面我们利用这个特性写一个通用的资源操作函数

第23讲:server-side apply学习(2) 结合SSA写出完全通用的资源操作函数
之前我们是模仿kubectl的client side写的apply,今天我们利用SSA写出完全通用的函数

第24讲:补充课:如何打印pods时把列改成中文

本课时来自一个同学提问,遂做成专门的课时



本课程每周更新1课时



第一章:kubectl和cobra
第1讲:开张课、课程内容、快速运行源码 试听
开张课,说下课程内容。并且下载源码快速启动。本课程使用的源码是k8s1.22版本。后面可能会升级版本。到时候再说
第2讲:cobra复习:Run 函数执行顺序
今天复习下之前讲过的cobra。第一章主要是kubectl和cobra之间的细节学习

第3讲:无脑把 kubectl get 命令集成到自己的程序中
通过简单源码集成,把get命令快速集成进我们自己的程序中

第4讲:kubectl 默认 加载kubeconfig文件的方法
通过源码我们可以看到kubectl是怎么加载配置文件的

第5讲:把kubectl 初始化代码集成到自己项目的套路
今天我们把kubectl的初始化代码集成到自己的程序中

第6讲:引导课: JSON输出是怎么来的 试听
kubectl可以把资源获取输出为JSON,我们能否单独调用和实现呢

第7讲:JSON输出资源列表(上节课课后作业)
如题

第8讲:为何clientset获取k8s资源的apiVersion 会丢失
这个问题在之前的代码中碰到过,今天借着源码课说下为啥 (解决方案 后续课时 会放出)

第9讲:为什么kubectl 能表格化打印
今天我们来讲一下表格化打印的初步原理

第10讲:把丢失的apiVersion和kind "找回来"
前面课时我们讲到使用clientset得到的k8s资源对象apiVersion和Kind丢失了,今天讲一下怎么找回来

第11讲:使用kubectl内部方法来获取k8s资源内容 试听
今天我们不使用client-go。演示使用kubectl源码的方式来获取k8s资源

第12讲:kubectl如何做请求(1): 了解底层rest client的创建方式
如题,我们开始对请求方式做源码理解

第13讲:kubectl如何做请求(2): 自动识别对象进行反序列化
今天讲一下kubectl是如何自动识别对象和反序列化的

第14讲:调用内部方法表格化打印pods
我们模拟kubectl表格化打印PODS

会讲故事的程序员
shenyi
资深校友
资深校友
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数901
沙发#
发布于:2022-12-02 02:32
开始更新
会讲故事的程序员
shenyi
资深校友
资深校友
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数901
板凳#
发布于:2023-06-20 02:18
更至第24讲
会讲故事的程序员
游客

返回顶部