Kubernetes Architecture
A Kubernetes cluster is composed of two main node types:-
Control Plane Nodes
Hosts the core components that manage cluster state and orchestration:- etcd: Distributed key-value store for all cluster data.
- kube-apiserver: Central API endpoint for administrative operations.
- kube-controller-manager: Runs controllers to reconcile desired vs. actual state.
- kube-scheduler: Assigns Pods to Nodes based on resource requirements.
-
Worker Nodes
Runs application workloads and contains:- kubelet: Ensures containers in Pods are healthy and running.
- kube-proxy: Configures network routes and load balancing for Services.
- Container runtime (e.g., Docker, containerd).

Pods
A Pod is the smallest deployable unit in Kubernetes, encapsulating one or more containers that share networking and storage. Containers within a Pod communicate overlocalhost and share volume mounts.
Example Pod manifest:
By default, Pods use
restartPolicy: Always. While containers will restart on failure, if the Pod object is deleted or its Node fails, Kubernetes will not recreate it unless managed by a higher-level controller (see Deployments).Controllers: ReplicaSets & Deployments
Controllers ensure your Pods maintain the desired state and scale automatically.
Example Deployment manifest:
Services
Services provide stable network endpoints for Pods, decoupling clients from dynamically assigned Pod IPs. Kubernetes supports several Service types:
Example LoadBalancer Service:
LoadBalancer Services may incur additional cloud provider costs. To consolidate routing for multiple hostnames or paths under a single IP, consider using an Ingress resource.
Ingress
Ingress manages HTTP/HTTPS routing into the cluster with host- and path-based rules. Unlike a LoadBalancer, Ingress can serve multiple domains or paths on one IP. Example Ingress manifest:References
- Kubernetes Documentation
- Cloud Native Computing Foundation (CNCF)
- Docker Official Site
- containerd Project