Kubernetes Architecture: Full ASCII Diagram (17 Concepts)
+-----------------------------+
| CONTROL PLANE NODE |
|----------------------------|
| |
| [ kube-apiserver ] | <-- main cluster API
| [ etcd ] | <-- stores all cluster state
| [ controller-manager ] | <-- manages controllers (e.g., Deployment)
| [ scheduler ] | <-- assigns Pods to Nodes
| |
+-------------+--------------+
|
| communicates with
v
+------------------------------------------+
| CLUSTER LEVEL |
|------------------------------------------|
| |
| +--> ConfigMap / Secret ---------------+|
| | |
| +--> Namespace |
| +--> Deployment YAML ------------------+--> stored in etcd, read by controllers
| +--> Ingress (rules) ------------------+--> stored config for HTTP routes
| |
+-------------------+----------------------+
|
| scheduler places Pods on Nodes
v
+---------------------------+ +---------------------------+
| WORKER NODE 1 | | WORKER NODE 2 |
|---------------------------| |---------------------------|
| [ kubelet ] | | [ kubelet ] |
| [ kube-proxy ] | | [ kube-proxy ] |
| | | |
| [ Pod: app 1 ] | | [ Pod: app 3 ] |
| [ Pod: app 2 ] | | [ Pod: app 4 ] |
| [ Ingress Controller ] | | |
| (e.g., NGINX) | | |
+---------------------------+ +---------------------------+
+---------------------------+
| Networking Layer |
|---------------------------|
| Service (ClusterIP) | <-- stable internal routing
| Service (NodePort) | <-- exposes via node port
| Service (LoadBalancer) | <-- cloud provider LB
+---------------------------+
+---------------------------+
| User Interaction |
|---------------------------|
| kubectl CLI | <-- user input to API server
+---------------------------+