Whats the difference between “Pods” and “Static Pods” in kubernetes and when to choose “static pods” over regular pods

北战南征 提交于 2021-02-18 11:24:51

问题


New to kubernetes and looking to understand the best practice around using different kubernetes objects and have difficulty understanding what is a major difference between "Pods" and "Static Pods" functionally if there is any ?

Major questions as below :

Question 1: What is a major difference between "Pods" and "Static Pods" functionally if there is any ?

Question 2: When to choose "static pods" over regular pods.


回答1:


Static pods are pods created and managed by kubelet daemon on a specific node without API server observing them. If the static pod crashes, kubelet restarts them. Control plane is not involved in lifecycle of static pod. Kubelet also tries to create a mirror pod on the kubernetes api server for each static pod so that the static pods are visible i.e., when you do kubectl get pod for example, the mirror object of static pod is also listed.

You almost never have to deal with static pods. Static pods are usually used by software bootstrapping kubernetes itself. For example, kubeadm uses static pods to bringup kubernetes control plane components like api-server, controller-manager as static pods. kubelet can watch a directory on the host file system (configured using --pod-manifest-path argument to kubelet) or sync pod manifests from a web url periodically (configured using --manifest-url argument to kubelet). When kubeadm is bringing up kubernetes control plane, it generates pod manifests for api-server, controller-manager in a directory which kubelet is monitoring. Then kubelet brings up these control plane components as static pods.




回答2:


One of the use case of static pod is kubernetes control plane bootstrapping. Kubeadm while bootstarping a kubernetes cluster creates API Server, controller manager , kube scheduler as a static pod because it can not create these as normal pod due to the fact that kube Api Server itself is not available yet.




回答3:


As i understand from official documentation link https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/

  • "POD" life cycle is handled by kubernetes control plane (from cluster master).
  • "Static pod" life cycle is in control of "kublet" running on given worker node where it is created and not in control of cluster master.

Reading more i found below on offical docs https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/#static-pods

Which answers my Question-2

"when to use static pods" >> "static pods" are useful in cluster bootstrapping cases. and a note stating that static Pods may be deprecated in the future.



来源:https://stackoverflow.com/questions/59612514/whats-the-difference-between-pods-and-static-pods-in-kubernetes-and-when-to

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!