Kubernetes-Cluster „einfach“ erklärt

Inhaltsverzeichnis

Warum du Kubernetes-Cluster kennen solltest

Stell dir vor, du bist mitten in deiner Sysadmin-Ausbildung und hast Linux-Grundlagen wie Befehle, Dateisysteme und Prozesse im Griff, aber Container und Orchestrierung klingen noch fremd. Kubernetes-Cluster sind der nächste Schritt: Sie helfen dir, viele Anwendungen automatisch auf mehreren Linux-Servern zu starten, zu überwachen und zu reparieren, ohne dass du alles manuell per SSH machen musst. Das spart Zeit und verhindert Ausfälle, besonders wenn du mit RHCSA-Zielen wie Systemwartung und Netzwerken vertraut bist, da Kubernetes genau diese Linux-Fähigkeiten erweitert.

Welche Linux-Fähigkeiten du brauchst

Bevor du mit Kubernetes startest, solltest du solide Linux-Kenntnisse haben, die aus RHCSA-Level stammen. Du musst komfortabel mit Paketmanagern wie yum/dnf (RHEL) oder apt (Ubuntu/Debian) umgehen können, um Kubernetes-Tools zu installieren – z. B. apt install kubeadm kubelet kubectl. Verstehe systemd für Dienstverwaltung, da Kubelet als systemd-Service läuft: systemctl enable --now kubelet startet ihn automatisch beim Boot.

Kenne iptables/firewalld für Netzwerkregeln, weil Kube-Proxy diese erweitert, und schalte Ports wie 6443/tcp (API-Server) und 10250/tcp (Kubelet) frei. Prozessmanagement mit ps, top, nice und kill ist essenziell, da Pods isolierte Prozesse sind, und du sie mit systemd-cgtop in Cgroups siehst. Arbeite sicher mit Dateisystemen (mount, mkfs, LVM für Volumes), SSH für Node-Zugriff (ssh-keygen für passwortloses Login) und grundlegender Skripting mit Bash, um YAML-Konfigs zu bearbeiten oder Automatisierungen zu schreiben.

Bonus: Erste Container-Erfahrung mit Docker (docker run, docker ps, docker images), Namespaces (lsns -t net für Netzwerk-Isolation) und Cgroups (systemd-run --scope -p MemoryMax=512M), aber das lernst du schnell dazu, wenn du Podman ausprobierst.

Was ist ein Kubernetes-Cluster?

Ein Kubernetes-Cluster ist eine Gruppe von Linux-Computern (genannt Nodes), die zusammenarbeiten, um Anwendungen in Containern zu betreiben. Der Cluster hat zwei Hauptteile: Die Control Plane (Steuerzentrale, früher Master-Nodes genannt) und Worker-Nodes (Arbeitsrechner). Die Control Plane plant und überwacht alles zentral, während Worker-Nodes die Anwendungen wirklich ausführen und Ressourcen bereitstellen.

Stell es dir vor wie ein Orchester: Die Control Plane ist der Dirigent, der sagt, wo jedes Instrument (Pod) spielt, und die Nodes sind die Musiker, die die Noten umsetzen. In der Praxis sind das 3-5 VMs oder physische Server mit mindestens 2 CPU-Kernen und 4 GB RAM pro Node.

Die Control Plane im Detail

Die Control Plane läuft meist auf einem oder mehreren starken Linux-Servern und besteht aus vier Kernkomponenten, die als Prozesse unter systemd laufen. Der API-Server ist das Herzstück: Er ist wie eine Weboberfläche auf Port 6443, über die du Befehle schickst – ähnlich wie du mit systemctl systemd-Anweisungen gibst oder curl gegen eine REST-API.

Etcd ist eine verteilte Datenbank (Key-Value-Store), die alle wichtigen Infos speichert, z. B. welche Anwendung wo läuft, Konfigurationen oder Secrets – genau wie /var/log deine Systemlogs hält, aber repliziert für Hochverfügbarkeit. Der Scheduler entscheidet automatisch, auf welchem Node eine Anwendung startet, basierend auf freier CPU, RAM oder Labels – vergleichbar mit nice für Prozesspriorität oder top zur Ressourcenübersicht.

Der Controller Manager ist ein Set von Controllern, die den gewünschten Zustand (Desired State) durchsetzen: Wenn ein Node ausfällt oder eine App crasht, startet er sie woanders neu, ähnlich wie systemd Restart=always.

Worker-Nodes und Pods verstehen

Jeder Worker-Node ist ein normaler Linux-Rechner (z. B. Ubuntu 22.04 oder RHEL 9), der Pods ausführt und mit der Control Plane kommuniziert. Ein Pod ist die kleinste Einheit in Kubernetes: Meist ein oder zwei Container (leichte, isolierte Programme in Images wie nginx:latest von Docker Hub), die zusammenarbeiten und dieselben Ressourcen teilen – denk an ls -l /proc in einem Container.

Der Kubelet ist ein Agent (Daemon) auf jedem Node: Er hört auf die Control Plane via API, startet/stoppt Pods und berichtet Status, ähnlich wie systemd Dienste managed oder cron Jobs plant. Kube-Proxy kümmert sich um Netzwerk: Er erstellt dynamische iptables-Regeln (die du aus RHCSA kennst mit iptables -L), damit Pods untereinander (Pod-IPs wie 10.244.x.x) und mit der Außenwelt (Services mit ClusterIP oder LoadBalancer) kommunizieren können.

CNI-Plugins (Container Network Interface) sind standardisierte Erweiterungen dafür, z. B. Calico (mit BGP für Routing), Flannel (VXLAN-Overlays) oder Cilium (eBPF-basiert), die VLANs, Bridges (brctl) oder VXLANs (ip link add vxlan0) auf Linux-Netzwerken bauen.

Linux-Verbindung für Sysadmins

Kubernetes nutzt tiefgehend Linux-Kernel-Features, die du in deiner Ausbildung lernst und direkt auf dem Host siehst. Namespaces isolieren Prozesse: Jeder Pod hat eigene PID- (ps nur Pod-Prozesse), Netzwerk- (ip addr in Pod) und Mount-Namespaces (mount | grep overlay), sodass Container nicht auf deine Host-Dateien zugreifen – prüfe mit lsns oder unshare --net.

Cgroups v2 (Control Groups) begrenzen Ressourcen: CPU-Shares (cpu.max), Memory-Limits (memory.max) oder IO-Throttling (io.max), wie du mit cgcreate, cgexec oder systemd-run testest. OverlayFS stackt Imageschichten effizient für Container-Volumes (/var/lib/containers).

Security Contexts wenden Seccomp (Syscall-Filter gegen gefährliche Aufrufe), AppArmor (Profile wie docker-default) oder SELinux-Profiles (svirt_sandbox) an, um Container einzusperren – siehe getenforce. Als Sysadmin siehst du: Kubernetes ist Linux auf Steroiden – du installierst es mit kubeadm (ähnlich yum install kubeadm), konfigurierst systemd für Kubelet/containerd, sicherst mit firewalld (firewall-cmd --add-port=6443/tcp) oder iptables und debuggst mit journalctl -u kubelet.

Zusammenfassung

Kubernetes-Cluster sind einfach gesagt eine Mannschaft aus Linux-Servern (Nodes): Die Control Plane (API-Server als Schnittstelle, etcd als Datenbank, Scheduler für Platzierung, Controller für Selbstheilung) dirigiert zentral alles, und Worker-Nodes führen isolierte Container-Gruppen (Pods mit Kubelet und Kube-Proxy) aus, gestützt auf Namespaces (Isolation), Cgroups (Ressourcen) und iptables (Netzwerk).

Für dich als Sysadmin in der Ausbildung bedeutet das: Mit RHCSA-Fähigkeiten wie systemd, iptables, Paketmanagement, SSH und Kernel-Features baust du darauf auf, um Dutzende Anwendungen automatisch zu managen – starten, skalieren, reparieren, ohne manuelles Eingreifen. Keine Magie, keine Blackbox: Nur smarte Automatisierung deines Linux-Wissens für hochverfügbare, skalierbare Systeme, die bei Ausfall eines Servers einfach weitermachen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Andreas Moor
Andreas Moor
@blog@andreas-moor.de

Hallo Fediverse, ich bin Andy!

Hier und auf meiner Website findest du mein akkumuliertes Linux-Sysadmin-Wissen, meine kleinen und größeren Projekte und die Tools, die ich nutze.

Viel Spaß beim stöbern, lesen und lernen! 🧑‍💻

217 Beiträge
10 Folgende