在 kubernetes 中"Pods"和"Static Pods"有什么区别,以及何时选择"static pods"而不是常规 pod



Kubernetes 新手,希望了解使用不同 kubernetes 对象的最佳实践,并且很难理解"Pods"和"静态 Pods"在功能上的主要区别是什么?

主要问题如下:

问题 1:"Pod"和"静态 Pod"在功能上有什么主要区别(如果有的话(?

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

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

您几乎永远不必处理静态 Pod。静态 Pod 通常由软件引导 kubernetes 本身使用。例如,kubeadm使用静态 Pod 将 kubernetes 控制平面组件(如 api-server、controller-manager (作为静态 pod。kubelet可以监视主机文件系统上的目录(使用--pod-manifest-path个参数到 kubelet 进行配置(或定期从 Web URL 同步 Pod 清单(使用--manifest-url个参数到 kubelet 进行配置(。当kubeadm启动 kubernetes 控制平面时,它会在 kubelet 监控的目录中为 api-server、controller-manager 生成 pod 清单。然后 kubelet 将这些控制平面组件作为静态 pod 调出。

静态 pod 的一个用例是 kubernetes 控制平面引导。Kubeadm 在引导 kubernetes 集群时创建 API 服务器、控制器管理器、kube 调度器作为静态 pod,因为它无法将这些创建为普通 pod,因为 kube API 服务器本身还不可用。

据我从官方文档链接 https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/了解

  • "POD"生命周期由 kubernetes 控制平面(来自集群主节点(处理。
  • ">
  • 静态 pod"生命周期控制在创建它的给定工作节点上运行的"kublet",而不是控制集群主节点。

阅读我在下面找到的更多官方文档 https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/#static-pods

这回答了我的问题-2

"何时使用静态 Pod">>"静态Pod"在集群引导情况下很有用。 以及说明静态 Pod 将来可能会被弃用的说明。

最新更新