Kubernetes Components
Learning Kubernetes can be difficult. With all of the components in place it can be hard to remember what each one does.
What I find helpful is to relate it to real-world examples that make sense to me, like in my previous post about DotA, I can understand it in a way that makes sense to me in everyday life. For you, that might be saying "etcd is like a filing cabinet with all of the data stored inside" or a supervisor handing out tasks. Take this for example;
๐งฉ kube-apiserver
Purpose: Central hub for all Kubernetes commands and cluster interactions
Kubernetes Example: Handles kubectl apply
, get
, delete
Real-World Tech: REST API gateway (e.g. Stripe, GitHub)
Analogy: ๐งพ The front desk handling all requests
๐ etcd
Purpose: Stores all cluster configuration and state in key-value format
Kubernetes Example: Saves definitions for Deployments, Services, Secrets
Real-World Tech: Similar to Consul or ZooKeeper
Analogy: ๐๏ธ A filing cabinet containing the entire blueprint of your cluster
๐ฏ kube-scheduler
Purpose: Assigns new pods to the best node based on resources
Kubernetes Example: Picks which node runs a pod needing 2 CPUs
Real-World Tech: Like Jenkins assigning agents to a build job
Analogy: ๐น๏ธ A manager finding the right worker for the task
๐ง kube-controller-manager
Purpose: Ensures the actual state matches the desired state
Kubernetes Example: Keeps 3 replicas running for a Deployment
Real-World Tech: Like an auto-scaling policy in AWS
Analogy: ๐งโโ๏ธ A supervisor checking everything is in place
โ๏ธ cloud-controller-manager
Purpose: Talks to cloud APIs to provision resources
Kubernetes Example: Creates load balancers in GCP or AWS
Real-World Tech: Similar to Terraform or AWS CloudFormation
Analogy: ๐ A translator between Kubernetes and your cloud provider
๐งฑ kubelet
Purpose: Runs on each node to manage local pod lifecycle
Kubernetes Example: Starts containers, reports health to control plane
Real-World Tech: Like the Docker Daemon for Kubernetes
Analogy: โ๏ธ The worker on the factory floor running jobs
๐ฆ kube-proxy
Purpose: Routes service traffic to the appropriate pod
Kubernetes Example: Handles traffic for ClusterIP and NodePort Services
Real-World Tech: Like NGINX or HAProxy load balancing
Analogy: ๐ง A traffic cop redirecting cars to the right destination
๐ง container runtime
Purpose: Downloads images and runs containers
Kubernetes Example: Executes your nginx
, busybox
, or app container
Real-World Tech: Docker, containerd, CRI-O
Analogy: ๐ฉ The engine that powers each pod
๐ก CoreDNS
Purpose: Internal DNS service for the cluster
Kubernetes Example: Resolves my-service.default.svc.cluster.local
Real-World Tech: Like internal DNS in a VPC
Analogy: โ๏ธ A phonebook for services in the cluster
๐ CRI (Container Runtime Interface)
Purpose: Standard interface between K8s and container runtimes
Kubernetes Example: Lets K8s switch from Docker to containerd cleanly
Real-World Tech: Plugin architecture like CNI for networking
Analogy: ๐ A universal adapter for container engines
๐ Metrics Server
Purpose: Collects CPU and memory usage of pods/nodes
Kubernetes Example: Enables autoscaling with HPA
Real-World Tech: Similar to Prometheus-lite
Analogy: ๐ A fitness tracker for your cluster
๐ฅ๏ธ Kubernetes Dashboard
Purpose: Web UI for viewing and managing resources
Kubernetes Example: View deployments, logs, and metrics visually
Real-World Tech: Similar to the AWS Console
Analogy: ๐๏ธ A control panel with buttons and graphs
๐ฆ Helm
Purpose: Package manager for Kubernetes applications
Kubernetes Example: Install apps like Grafana or Prometheus easily
Real-World Tech: Like apt, yum, or Homebrew for Linux/macOS
Analogy: ๐๏ธ An app store for your cluster
๐ Ingress Controller
Purpose: Routes external HTTP(S) traffic into the cluster
Kubernetes Example: Routes myapp.com/api
to the right service
Real-World Tech: NGINX, Traefik, HAProxy
Analogy: ๐๏ธ A receptionist forwarding visitors to the right department