Manager定义了访问Pod的一系列方法,维护了static pod和mirror pod之间的关系。kubelet从三个来源获取pod变化:file,http,apiserver。pod中除了apiserver这一来源
的pod都叫static pod(apiserver并不知道这些pod的存在)。为了让apiserver感知到这些pod的存在,kubelet为每个static pod都创建了mirror pod,这些mirror pod只能查看不能修改。mirror pod作为static pod的副本(尽管有不同的元数据如UID…)拥有一样的全名称(相同的名称和命名空间)。kubelet通过pod全名向apiserver上报pod状态。当static pod被删除,对应的mirror pod也会被删除。
1 | // pkg/kubelet/pod/pod_manager.go |
1 | // pkg/kubelet/pod/mirror_client.go |
REF:
1.pkg/kubelet/pod/mirror_client.go
2.pkg/kubelet/pod/pod_manager.go