阅读:3711回复:2
干k8s源码系列:kubectl源码级学习和魔改
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 |
|
|