While using a managed Kubernetes service like EKS or GKE provides simplicity, understanding how to manually build a Kubernetes cluster from scratch is valuable for really comprehending how Kubernetes works under the hood. In this blog post, I’ll go through step-by-step how to manually deploy a Kubernetes cluster without any abstraction or automation.
We’ll start from bare Linux servers and get hands-on experience with:
- Installing container runtimes(containerd), kubelet, and kubeadm
- Initializing the master using kubeadm init
- Joining worker nodes to the cluster
- Deploying a sample application on the cluster
- Exploring core Kubernetes components like etcd, controller manager, scheduler etc.
- Troubleshooting common issues and validating the deployment
Doing a manual install requires more effort than automated tools, but gives you operational experience with Kubernetes internals. You’ll gain insights into how the components fit together, networking requirements, and validating health/functionality.
The goal is to take generic servers and transform them into a fully operational Kubernetes cluster ready to run containerized applications. No shortcuts — just good old Linux, networking, Docker, and Kubernetes knowledge.
Follow along as I share my journey and learnings building Kubernetes from the ground up. We’ll celebrate at the end by running…