我了解它kubelet
负责获取 PodSpecs(通常来自 API 服务器)并运行 Pod。
Kubernetes 组件 > 节点组件 > kubelet
“kubelet 采用一组通过各种机制提供的 PodSpec,并确保这些 PodSpec 中描述的容器运行且健康。”
但是 API Server 如何跟踪每个 Pod 的状态(例如运行/失败)?是否kubelet
定期向 API 服务器发送请求?还是 API Serverkubelet
定期轮询?还是其他机制?
我了解它kubelet
负责获取 PodSpecs(通常来自 API 服务器)并运行 Pod。
Kubernetes 组件 > 节点组件 > kubelet
“kubelet 采用一组通过各种机制提供的 PodSpec,并确保这些 PodSpec 中描述的容器运行且健康。”
但是 API Server 如何跟踪每个 Pod 的状态(例如运行/失败)?是否kubelet
定期向 API 服务器发送请求?还是 API Serverkubelet
定期轮询?还是其他机制?
kubelet 在节点上做所有事情。创建 pod 的典型过程如下:
注意:这里涉及更多组件,例如调度程序和控制器管理器(在您的帖子中作为各种机制提到),但我将跳过它们。
此时 kubelet 将负责这个 pod。如果 pod 宕机,kubelet 会报告 api-server,api-server 会下令杀死 pod,然后启动一个新的,然后再次更新 etcd 服务器。
需要指出的一点是,k8s 中的所有组件都直接与 api-server 对话。所以,控制器管理器或调度器不要说 kubelet 做什么。相反,他们对 api-server 说,而 api-server 对 kubelet 说。