My apologies if this is not the correct place to ask this.

I'm a bit baffled by the cluster that some kubernetes deployment scripts generate (like kubeadm).

It seems that kube-api server itself runs as a pod inside the Kubernetes cluster itself. This confuses me. Shouldn't you already have a working cluster (which means you are already running kube-apiserver) before you can deploy pods?

This looks like a chicken and egg situation to me, and I don't understand why it's done like this, or how this is even possible in the first place.


Kubelet can be configured to manage pods locally from configuration files on the disk. As a result, kubeadm and similar deployments use this to spin up the control plane services, which has the added benefit of those containers being treated as a pod from kubectl.

For example, on Ubuntu kubeadm will put the pod configuration files in /etc/kubernetes/manifests/. You could actually put your own pods there as well for kubelet to manage and it would spin them up (Although note this is not recommended, you should almost always use a node selector instead).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.