KodeCloud CKA Static Pods
Links: 111 KodeCloud Index
Static pods¶
- Kubelet can manage a node independently.
- We need to provide pod definition files to kubelet to create pods.
- Assuming there is no kubeapi-server to provide kubelet with the pod definition files we need to place the files in
/etc/kubernetes/manifests
folder. - Kubelet constantly checks this folder for any manifests file.
- Assuming there is no kubeapi-server to provide kubelet with the pod definition files we need to place the files in
- Kubelet will create the pod and ensure that it is alive.
- If for some reason the pod crashes kubelet will restart the pod.
- If a file is removed from this directory then the pod is deleted automatically.
- Any modifications made to the file ensures that the pod is modified.
The pods created by the kubelet without the intervention of the api server are known as static pods.
We can only create pods this way.
We cannot create replicasets or deployments this way.
- Kubelet works at a pod level and can only understand pods.
-
The location to place the pod manifest files can be any directory on the host.
- To configure the directory it has to be passed to the kubelet while running the service.
- The option is named
--pod-manifest-path
- In case the we are using the kubeadm setup the configuration options can be found at
cat /var/lib/kubelet/config.yaml
-
Kubelet can create both static pods and the pods from the kubeapi-server at the same time.
- The api server is aware of the static pods created by kubelet.
- We only see a read only mirror of the static pod.
- We can see the details of the pod but we cannot edit or delete it like normal pods.
- Name of the pod is automatically appended with node name.
### Why use static pods?
- Since static pods are not dependent on the control plane, static pods can be used to deploy the control plane components as pods on a node.
- Install kubelet on all the master nodes.
- Use docker images of the various control plane components and place them in the /etc/kubernetes/manifests
directory.
-
- Kubelet takes care of deploying the control plane component as pods.
- This way we don't have to download the binaries, configure services or worry about the services crashing.
- If any of these pods were to crash it would be automatically restarted by the kubelet
- This is how the kubeadm tool sets up the k8s cluster.
- This is why we see control plane components as pods in the kube-system
namespace.
- Since the name of the node gets appended to the name of the pod we get names like this:
-
-
- Difference between static pods and daemon sets
Last updated: 2022-10-10