[ kubernetes  linux  opensource  ]

Creating static pod in kubernetes

Static Pods are managed directly by the kubelet daemon on a specific node, without the API server observing them.
Static pods automatically restarts if it crashes. Static Pods are always bound to one Kubelet on a specific node. In the post we will try creating a static pod and watch the behaviour on delete.

Setup

I am using the Virtualbox(running in Ubuntu 18.04 physical machine) for this entire setup . The physical machine is Dell inspiron laptop with 12GB RAM , Intel® Core™ i7-6500U CPU @ 2.50GHz × 4 and 512GB SSD hardisk.

Step 1: Find the static pod manifest location

Go to any node where you want to run the static pod. I want to run in kubernetes3 node. Look for the kubelet process and config.yaml file associated with it

root@kubernetes3:~# ps -aux |grep kubelet
root 905 3.6 9.4 544516 95676 ? Ssl 16:49 9:13 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=cgroupfs --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1
root 29041 0.0 0.0 14224 940 pts/0 S+ 21:03 0:00 grep --color=auto kubelet

Now grep for the staticPodPath in config file

root@kubernetes3:~# cat /var/lib/kubelet/config.yaml |grep static
staticPodPath: /etc/kubernetes/manifests
Step 2: Go to the directory and add a yaml for pod
root@kubernetes3:~# cd /etc/kubernetes/manifests/
root@kubernetes3:/etc/kubernetes/manifests# vim static-pod.yaml

Now try to grep for the pod name in the docker container list

root@kubernetes3:/etc/kubernetes/manifests# docker ps -a |grep static-web
e5bf8054343a nginx "nginx -g 'daemon of…" 17 seconds ago Up 16 seconds k8s_web_static-web-kubernetes3_default_b42924f0dce4ce471e92742ee9bf65d7_0
138ea3819894 k8s.gcr.io/pause:3.1 "/pause" 23 seconds ago Up 22 seconds k8s_POD_static-web-kubernetes3_default_b42924f0dce4ce471e92742ee9bf65d7_0

We can see a new static pod is created automatically

Step 3: Delete the container and watch the behaviour

Now lets try to delete the static pod  

root@kubernetes3:/etc/kubernetes/manifests# docker stop k8s_web_static-web-kubernetes3_default_b42924f0dce4ce471e92742ee9bf65d7_0
k8s_web_static-web-kubernetes3_default_b42924f0dce4ce471e92742ee9bf65d7_0
root@kubernetes3:/etc/kubernetes/manifests# docker rm k8s_web_static-web-kubernetes3_default_b42924f0dce4ce471e92742ee9bf65d7_0
k8s_web_static-web-kubernetes3_default_b42924f0dce4ce471e92742ee9bf65d7_0
root@kubernetes3:/etc/kubernetes/manifests# docker ps -a |grep static-web
d3d9713b937e nginx "nginx -g 'daemon of…" 1 second ago Up Less than a second k8s_web_static-web-kubernetes3_default_b42924f0dce4ce471e92742ee9bf65d7_1
138ea3819894 k8s.gcr.io/pause:3.1 "/pause" About a minute ago Up About a minute k8s_POD_static-web-kubernetes3_default_b42924f0dce4ce471e92742ee9bf65d7_0

We can see the new static pod is automatically creating

Share on:

Discussion and feedback