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