阅读:6681回复:3
自研边缘云方案前奏: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课时左右 [更多课时戳这] 第五章:超轻量边缘kubelet魔改开发 第53讲:超轻量kubelet基本功能和基本结构试听 今天是一个开张课,我们正式进入阉割版超轻量kubelet开发章节 第54讲:源码分离、回调函数设计(Pod新增) 课前花了2小时进行源码分离,并初步设计回调函数 第55讲:回调函数的完整设计和测试 上节课我们做了一个,今天我们完整的把回调函数设计完成 第56讲:回调函数中支持PodEvent事件的发送 我们支持边缘节点发送PodEvent给k8s集群 第57讲:边缘节点函数中支持让POD停止退出 今天我们展示下如何在边缘节点中把POD设置为退出状态。下节课来上报信息 第58讲:回调函数支持POD停止并上报状态 上节课我们停止了POD,但是并没有上报状态,今天这课时放出代码 第59讲:POD下发处理(1) 命令行模式 为了让边缘节点能接受我们的任务并执行,我们需要对POD下发进行处理。今天先从最简单的命令行模式开始 第60讲:POD下发边缘任务(2) 执行命令、设置容器状态 上节课我们是基本思路,这节课为了演示执行,我们做个测试用例来体现边缘容器的执行 第61讲:POD下发边缘任务(3) 执行多容器任务 之前我们只支持POD单容器运行和解析,今天这课时我们来完成多容器的任务执行 第62讲:POD下发边缘任务(4) BUG修正、多容器执行状态上报 一方面是BUG修正,另一方面演示下多容器运行的状态上报 第63讲:边缘节点实现kubectl logs 的设计方案(简易) 边缘节点的交互并没有这么简单,其中比较复杂的是网络不通。因此今天先放出个人方案,供大家借鉴 第64讲:手工实现容器exec/logs服务(1) 基本原理和环境搭建 本课程精髓课时开始。我们将在后面几课时模拟实现容器的exec和logs功能。注意,我们实现的是服务端,而不是客户端 第65讲:手工实现容器exec服务(2) 模拟实现持续性交互 这节课我们进阶一些,实现客户端程序和服务端连续交互。初步有"控制台“的雏形,下节课我们来搞得更逼真些 第66讲:无容器模拟实现远程shell(1) 基本效果 今天我们来模拟一个效果,使用客户端连接我们的模拟后台,就能显示出类似远程shell的效果。后面我们还需要完善 第67讲:无容器实现远程shell(2) 模拟终端输入和删除 今天开始进入主要核心代码部分 第68讲:无容器实现远程shell(2) 终端控制光标方向键移动的原理 试听 今天我们演示下边缘shell控制光标移动的原理 第69讲:无容器实现远程shell(3) 初步实现边缘终端的基本交互 本课时初步完成边缘终端的交互,下周进入具体命令的解析和执行 第70讲:无容器实现远程shell(4) 初步实现边缘端执行shell 命令 今天这课时我们就可以来实现边缘端执行shell命令操作了 本课程每周不定期更新 第四章:kubectl exec原理(补充章) 第50讲:基本原理结构、手扒源码进行简化 我们用3课时做个补充章节,这也是高频面试题。今天先说原理。下节课我们来魔改代码 第51讲:修改源码绕过k8s apiserver实现kubectl exec 今天我们玩个好玩的。绕过k8s apiserver实现exec 第52讲:手工写代码模拟kubectl exec ->apiserver->kubelet全过程 这课时我们把前面的代码整合在一起,手工写代码模拟apiserver、和kubelet 完整的模拟kubectl exec过程 [更多课时戳这] |
|
|