Kubernetes Architektur
Überblick
Kubernetes ist ein Container-Orchestrierungssystem. Es besteht aus einem Control Plane und einer oder mehreren Worker Nodes.
Control Plane
├── kube-apiserver (REST API – zentraler Einstiegspunkt)
├── etcd (verteilte Key-Value-Datenbank – Cluster-State)
├── kube-scheduler (weist Pods Nodes zu)
└── kube-controller-manager (führt Controller aus)
Worker Node
├── kubelet (startet/überwacht Pods auf dem Node)
├── kube-proxy (Netzwerk-Regeln, Service-Routing)
└── Container Runtime (containerd / runc)
Control Plane Komponenten
kube-apiserver – Alle Operationen (kubectl, Controller, Nodes) kommunizieren ausschließlich über die API. Zustandslos, horizontal skalierbar.
etcd – Speichert den gesamten Cluster-Zustand. Mindestens 3 Instanzen für Hochverfügbarkeit (Raft-Konsensus).
kube-scheduler – Beobachtet neue Pods ohne zugewiesenen Node und wählt den passenden Node anhand von Ressourcen, Affinitäten und Policies.
kube-controller-manager – Führt Controller-Loops aus (z.B. ReplicaSet-Controller, Node-Controller, Job-Controller).
Worker Node Komponenten
kubelet – Agent auf jedem Node. Empfängt PodSpecs vom API-Server und stellt sicher, dass die beschriebenen Container laufen.
kube-proxy – Implementiert Kubernetes Services auf Netzwerkebene (iptables / IPVS).
Container Runtime – k3s verwendet containerd mit runc. Docker ist seit Kubernetes 1.24 kein unterstützter Runtime-Endpunkt mehr.
kubectl Kommunikation
kubectl --> kube-apiserver --> etcd
--> kube-scheduler
--> kubelet (auf Worker Node)
Prozesse auf dem Node prüfen
ps aux | grep kube-apiserver
ps aux | grep etcd
ps aux | grep kubelet
ps aux | grep containerd
ps aux | grep kube-proxy