[AI生成] kubelet list watch kube-apiserver流程
k8s v1.19.0
kubelet.go:277 → config.NewSourceApiserver()
↓
apiserver.go:33 → cache.NewListWatchFromClient() // 创建 ListerWatcher
↓
apiserver.go:46 → cache.NewReflector() // 创建 Reflector
↓
apiserver.go:47 → r.Run(wait.NeverStop) // 启动 Watch 循环
↓
apiserver.go:39-45 → send() → updates channel // 发送全量 Pod 状态
↓
config.go:150 → Merge() // 合并为增量事件
↓
kubelet.go:1817 → syncLoopIteration() // 消费并处理事件
apiserver.go
- 第31-35行 : NewSourceApiserver - 创建 ListerWatcher
- 第37-48行 : newSourceApiserverFromLW - 创建 Reflector 并启动 Watch
config.go
- 第56-66行 : PodConfig 结构体定义
- 第70-80行 : NewPodConfig - 创建配置多路复用器
- 第150-207行 : Merge - 合并更新并转换为增量事件
- 第209-305行 : merge - 具体的合并逻辑
kubelet.go
- 第246-280行 : makePodSourceConfig - 创建所有配置源
- 第1814-1854行 : syncLoopIteration - 从 configCh 消费事件
浙公网安备 33010602011771号