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
+---------------------------+