我知道kubelet
负责接收PodSpecs(通常来自API服务器)并运行Pod。
Kubernetes Components > Node Components > kubelet
" kubelet采用一系列通过各种机制提供的PodSpecs,并确保这些PodSpecs中描述的容器正在运行且健康。"
但是,API Server如何跟踪每个Pod的状态(例如运行/失败)? kubelet
是否会向API服务器发送常规请求?或者API Server是否定期轮询kubelet
?还是其他一些机制?
答案 0 :(得分:3)
kubelet在节点上完成所有操作。创建pod的典型过程如下:
注意:这里涉及的组件更多,例如调度程序和控制器管理器(在帖子中提到各种机制),但我会跳过它们。
此时,kubelet将负责此吊舱。如果pod关闭,kubelet将报告api-server,api-server将命令杀死pod,将启动一个新的,并再次更新etcd服务器。
有一点需要指出的是,k8s中的所有组件都直接与api-server通信。因此,控制器管理器或调度程序不会说kubelet要做什么。相反,他们说它是api-server,api-server是kubelet。