### arch ```{eval-rst} .. plantuml:: @startuml ' top to bottom direction ' left to right direction skinparam rectangleStyle rounded skinparam shadowing false skinparam arrowColor #2E86C1 skinparam packageStyle rectangle skinparam defaultTextAlignment center title Kubernetes Architecture (Vertical Layout) ' ============================= ' TOP: CLIENTS ' ============================= rectangle "kubectl / API Clients" as kubectl #lightgray ' ============================= ' MIDDLE: CONTROL PLANE ' ============================= rectangle "kube-apiserver\n(entrypoint)" as apiserver #lightblue rectangle "kube-controller-manager\n(reconciliation loop)" as controller #white rectangle "kube-scheduler\n(pod placement)" as scheduler #white rectangle "etcd\n(cluster state)" as etcd #white ' Stack control-plane visually apiserver -down-> controller apiserver -down-> scheduler apiserver -down-> etcd ' Client to API Server kubectl -down-> apiserver : REST API ' ============================= ' BOTTOM: WORKER NODES ' ============================= package "Worker Node(s)" as nodes { top to bottom direction rectangle "kubelet\n(node agent)" as kubelet #lightyellow rectangle "container runtime\n(containerd / CRI-O)" as runtime #white rectangle "Pods (Workloads)" as pods #white rectangle "kube-proxy\n(service networking)" as kubeproxy #white rectangle "CNI Plugin\n(Calico / Cilium / etc.)" as cni #white } ' Control-plane to worker node apiserver -down--> kubelet ' Inside node kubelet -down-> runtime runtime -down-> pods ' Network components kubeproxy -right-> pods cni -left-> pods @enduml