Room 03
K8S ARCHITECTURE
The Blueprint Chamber
- You’ve stumbled into the architect’s chamber where the blueprints of the entire K8s cluster are stored.
- To escape, you must understand how the cluster is built - the control plane, worker nodes, and their components.
π Mission Briefing
- Use
kubectl get componentstatuses(orkubectl get cs) to check the health of control plane components. - Identify all control plane pods running in
kube-systemnamespace. - Exec into the etcd pod and list the keys stored under
/registry/namespaces/.hint: use
kubectl execwithetcdctlcommand - Count the number of control plane components (API server, scheduler, controller-manager, etcd).
- The password is
api+ the wordserveβapiserve
Key Commands
| Command | Purpose |
|---|---|
kubectl get nodes -o wide |
Nodes with roles and IPs |
kubectl get pods -n kube-system |
Control plane pods |
kubectl describe node NODE |
Node details and capacity |
kubectl get componentstatuses |
Health of cluster components |
kubectl cluster-info |
Cluster API endpoint |
kubectl get endpoints -n default kubernetes |
API server endpoint |
kubectl exec -it POD -n NS -- CMD |
Execute command in pod |
Kubernetes Architecture
ββββββββββββββββββββββββ Control Plane βββββββββββββββββββββββ
β β
β ββββββββββββ ββββββββββββββ βββββββββββββ βββββββββββ β
β β API β β Controller β β Scheduler β β etcd β β
β β Server β β Manager β β β β β β
β ββββββββββββ ββββββββββββββ βββββββββββββ βββββββββββ β
β β² β
βββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
β kubelet communicates with API Server
β
βββββββββΌβββββββββββββββ Worker Node ββββββββββββββββββββββββββ
β βΌ β
β ββββββββββββ βββββββββββββ βββββββββββββ β
β β kubelet β β kube-proxyβ β Container β β
β β β β β β Runtime β β
β ββββββββββββ βββββββββββββ βββββββββββββ β
β β
β βββββββ βββββββ βββββββ β
β β Pod β β Pod β β Pod β β
β βββββββ βββββββ βββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
API Server (kube-apiserver): The front door to Kubernetes. Every kubectl
command hits the API server. It validates and processes REST requests, stores state in etcd.
etcd: Distributed key-value store. The single source of truth for cluster state - pods, services, secrets, configs.
Scheduler (kube-scheduler): Watches for unscheduled pods and assigns them to nodes based on resource requirements, affinity rules, and constraints.
Controller Manager (kube-controller-manager): Runs controller loops - ReplicaSet controller, Deployment controller, Node controller, etc. Ensures the cluster state matches the desired state.
kubelet: Agent on each node. Pulls pod specs from the API server and ensures containers are running. Reports node status back.
kube-proxy: Network proxy on each node. Maintains network rules (iptables/IPVS) for Service routing.
# See control plane pods
kubectl get pods -n kube-system -l tier=control-plane
# Check the API server pod
kubectl describe pod -n kube-system -l component=kube-apiserver
# View etcd pod
kubectl describe pod -n kube-system -l component=etcd
# See node roles
kubectl get nodes --show-labels | grep node-role
Hints
Hint 1
Control plane components run as static pods in kube-system. List them:
Hint 2
Look for pods starting with kube-apiserver, kube-scheduler,
kube-controller-manager, and etcd.
Hint 3
The password is simply apiserve - recognizing the API server as the central gateway.