阅读:2904回复:4
自研边缘云方案前奏:kubelet源码级学习和魔改
之前我们针对k8s周边组件开过类似的源码级课程:
1、Operator实战3:手撸k8s原生cicd框架(task篇) (这个是tekton的自我改进版) 2、k8s速学3:Informer深入学习篇 3、k8s Controller runtime深入学习和源码理解篇 这回来个刺激的,我们后面打算动k8s核心组件。先从kubelet开始。本课程基于k8s1.22,不是网上那种读读源码,然后把函数用中文标注读一遍那种,毫无意义。本课程的主要目的是通过源码讲解、魔改kubelet,并且后面 我们要自研边缘云的kubelet组件。 本课程需要拥有较强的golang编码功底才能观看,完全不适合新手。 由于众所周知的原因, 课程关键细节会留坑,VIP学员一对一口述破解 课程里使用的是演示环境是windows笔记本。那么,我们要在 windows笔记本上启动出官方的kubelet 本课程预估100课时左右 第四章:kubectl exec原理(补充章) 第50讲:基本原理结构、手扒源码进行简化 我们用3课时做个补充章节,这也是高频面试题。今天先说原理。下节课我们来魔改代码 第51讲:修改源码绕过k8s apiserver实现kubectl exec 今天我们玩个好玩的。绕过k8s apiserver实现exec 第52讲:手工写代码模拟kubectl exec ->apiserver->kubelet全过程 这课时我们把前面的代码整合在一起,手工写代码模拟apiserver、和kubelet 完整的模拟kubectl exec过程 本课程每周不定期更新 第三章:POD状态和监听(主模块源码学习) ...... [更多课时戳这] ...... 第41讲:连接真实容器运行时、官方代码阉割 有了上节课基础,今天我们来连接真实容器运行时,并进行官方代码阉割 第42讲:构建虚拟POD(1): 基本流程、如何处理POD状态 为了加快进度,今天我们引入概念:虚拟POD。(一个不存在的POD)我们如何让它运行起来 第43讲:构建虚拟POD(2): 初步实现修改POD状态、触发同步 我们用代码修改POD状态,并触发和k8s同步 第44讲:构建虚拟POD(3): 让不存在的POD运行起来、proberManager了解 上节课我们构建出了虚拟POD,今天让它运行起来 第45讲:构建虚拟POD(4): 让不存在的POD变成Ready 试听 沿着上节课,我们让虚拟POD变成ready 第46讲:虚拟POD之支持更新和删除(初步) 删除k8s资源,如POD。其实有很多细节在里面。今天我们来做个引导 第47讲:默认情况下kubelet没启动为何删除不了POD 更详细的问题是:当我们执行kubectl delete 时到底发生了什么,谁最终删除了POD 第48讲:再看Statusmanager、代码改造、实现POD删除 今天我们来手工代码实现真正的删除POD。在node不存在的情况下如何触发资源删除 第49讲:POD的DELETE和REMOVE有什么区别 一个补充课。 第二章:代码实现kubelet注册(TLS Bootstrap) 第11讲:TLS BootStrap模拟(1) 基本概念和流程 试听 这一章我们要写大量代码,来模拟kubelet注册节点的过程 第12讲:TLS BootStrap模拟(2) 理解 kubeadm 创建token 的原理 之前课程我们使用的是kubeadm创建token,今天我们了解下原理 ........................ 第16讲:TLS BootStrap模拟(5)手工实现CSR请求和获取证书 今天是一个手工课。下节课开始我们用代码实现这个过程 第17讲:代码实现CSR请求(1):代码生成证书 试听 这节课开始大量代码。 前面我们是手工完成的证书,今天我们代码来生成证书 ...... [更多课时戳这] ...... 第一章:kubelet快速魔改,在笔记本上启动 第1讲:开张课、课程内容 试听 老套路的开张课,讲下课程基本内容和环境准备 第2讲:复习课:再看kubelet 的配置文件、构建启动文件 之前我们二进制装过k8s,涉及到几个配置文件。今天讲一下出处,并构建出启动文件 第3讲:在笔记本上运行官方 kubelet(1): 手动模拟cAdvisor 今天是第一个修改点。由于本地没有容器,需要做一些修改 第4讲:本地运行官方kubelet(2): 手动模拟容器运行时、OOM调节 接着上节课,我们需要手动模拟容器运行时 第5讲:本地运行官方 kubelet(3): 设置节点标签、PodCIDR 今天是第三个修改点,设置POD标签。下节课就能在本地运行出kubelet 第6讲:在笔记本上运行官方kubelet(4): 本地启动 试听 今天我们完成在本地笔记本上(windows)启动kubelet 。下节课开始我们分拆功能,逐步手工模拟实现 ...... [更多课时戳这] ...... |
|
|