kubernetes 中的“Pods”和“Static Pods”之间有什么区别,以及何时选择“静态 Pods”而不是常规 Pods

DT.*_*DT. 8 kubernetes

刚接触 kubernetes 并希望了解使用不同 kubernetes 对象的最佳实践,并且难以理解“Pods”和“静态 Pods”在功能上的主要区别(如果有的话)?

主要问题如下:

问题 1:如果有的话,“Pods”和“Static Pods”在功能上的主要区别是什么?

问题 2:何时选择“静态 Pod”而不是常规 Pod。

Sha*_*k V 15

静态 pod 是由 kubelet 守护程序在特定节点上创建和管理的 pod,而无需 API 服务器观察它们。如果静态 pod 崩溃,kubelet 会重新启动它们。控制平面不参与静态 Pod 的生命周期。Kubelet 还尝试在 kubernetes api 服务器上为每个静态 Pod 创建一个镜像 Pod,以便静态 Pod 可见,kubectl get pod例如,当你这样做时,静态 Pod 的镜像对象也被列出。

您几乎不需要处理静态 Pod。静态 pod 通常由软件引导 kubernetes 本身使用。例如,kubeadm使用静态 pod 将 api-server、controller-manager 等 kubernetes 控制平面组件作为静态 pod 启动。kubelet可以观察主机文件系统上的目录(使用--pod-manifest-pathkubelet 的参数配置)或定期从 web url 同步 pod 清单(使用--manifest-urlkubelet 的参数配置)。当kubeadm启动 kubernetes 控制平面时,它会在 kubelet 正在监控的目录中为 api-server、controller-manager 生成 pod 清单。然后 kubelet 将这些控制平面组件作为静态 pod 提供。


Arg*_*dhu 9

static pod 的用例之一是 kubernetes 控制平面引导。Kubeadm 在启动 kubernetes 集群时会创建 API Server、控制器管理器、kube 调度程序作为静态 pod,因为由于 kube Api Server 本身尚不可用,它无法将这些创建为普通 pod。