深究Kubernetes源码-Kubelet -1 总体模块分析
基于kubernetes1.26
1 总体模块

kubelet包含一系列的Manager,如上图,核心功能是处理节点上Pod的生命周期,创建/更新/删除。

kubelet实现了BootStrap和SyncHandler接口,BootStrap为启动过程接口,SyncHandler为处理Pod接口。
2 启动流程
主要分为两个阶段,第一阶段为实例化创建模块组件

第二阶段为创建实例化Kubelet结构体,并运行Kubelet,启动相关模块功能的协程,后面章节中会逐步分析各个模块功能。

kubelet核心功能是处理Node上的Pod生命周期,所以Pod的来源是个关键问题,如上图,Pod来源有三个:
Kube-apiServer ,常规Kube-apiserver中生成的Pod
静态文件,通常所说的静态Pod,其中StaticPodPath默认为/etc/kubernetes/manifests
静态URL,HTTP文件服务器提供静态Pod Config,与静态文件类似,不常用
从Kube-apiserver获取Pod是使用ListWatch机制,从apiserver获取Pod spec.nodeName与节点nodeName一致的Pod,即被调度器bind到此节点的Pod