The 7 steps between 'kubectl apply' and a running a pod
Blog post from LocalStack
Kubernetes operates through a structured process involving two primary planes: the control plane, which manages decision-making, and the data plane, where workloads run on worker nodes. The control plane comprises key components like the API Server, etcd, the Scheduler, and the Controller Manager, each playing a critical role in processing and managing deployments. When executing the "kubectl apply" command, the process involves a series of steps, starting from the API Server validating the request, storing the desired state in etcd, and triggering the Controller Manager to oversee deployment objects. The Scheduler then assigns pods to nodes based on resource availability, and the kubelet on each node initiates the containers. The entire system is driven by a declarative approach where the desired state is specified, and Kubernetes autonomously converges towards that state, ensuring self-healing and automated management of workloads. This process can be observed in real time using tools like LocalStack, which allows users to simulate Kubernetes environments and witness the reconciliation loop in action, highlighting the control loop's watch-diff-act mechanism central to Kubernetes' functionality.