Was ist Kubernetes?
Orchestrierungsplattform, die Container auf einem Cluster aus vielen Maschinen (Nodes) platziert, ihre Anzahl hält, sie aktualisiert und Endpunkte für sie bereitstellt. Die Nutzer deklarieren mit Ressourcen wie Deployments und Services einen Soll-Zustand, und Controller beobachten den Ist-Zustand und nähern ihn der Deklaration an (Abgleich, Reconciliation). Die kleinste Einheit ist der Pod; verlorene Pods werden automatisch neu erzeugt, und Rolling Updates sowie lastabhängiges Autoscaling werden unterstützt. Auch als K8s abgekürzt.
Japanische Bezeichnung: Kubernetes
„Kubernetes“ kommt in 10 Übungsfragen aus 1 Themen vor, z. B. Grundlagen von Cloud und Containern.
Fachgebiet: Grundlagen von Cloud und Containern
Wichtige Ressourcen
Ein Pod ist die kleinste Einheit, die Container zusammenfasst, ein ReplicaSet hält die Zahl der Pods, und ein Deployment nutzt ReplicaSets, um neue Versionen auszurollen und zurückzurollen. Ein Service gibt mehreren Pods einen stabilen Namen und eine stabile Adresse, und ein Ingress verteilt HTTP-Anfragen von außerhalb des Clusters nach Pfad oder Hostname auf Services. ConfigMaps und Secrets übergeben Konfiguration und vertrauliche Werte getrennt von den Images, und Namespaces teilen einen Cluster nach Teams oder Umgebungen auf.
Ressourcenangaben und Probes
Für jeden Container werden die CPU- und Speichermenge, die reserviert werden soll (Requests), und die Obergrenzen (Limits) angegeben, und der Scheduler wählt den Node für jeden Pod anhand der Requests. Eine Readiness-Probe prüft, ob ein Container Anfragen annehmen kann, und steuert die Verteilung; eine Liveness-Probe sorgt dafür, dass ein Container, der nicht mehr antwortet, neu gestartet wird. Ein HorizontalPodAutoscaler ändert die Zahl der Pods anhand von Kennzahlen wie der Auslastung im Verhältnis zu den Requests.
Häufige Fragen
Was ist der Unterschied zwischen Docker und Kubernetes?
Docker ist vor allem ein Werkzeug, um auf einer Maschine Images zu bauen und Container auszuführen. Kubernetes ist eine Plattform, die über viele Maschinen hinweg verwaltet, auf welchem Node was läuft, wie viele Exemplare laufen und wie sie aktualisiert werden. Kubernetes führt Container aus Images im Standardformat aus, die mit Docker oder anderen Werkzeugen gebaut wurden.
Sollte auch ein kleines System Kubernetes verwenden?
Nicht unbedingt. Kubernetes ist stark bei hoher Verfügbarkeit, automatischer Wiederherstellung und der Verwaltung vieler Dienste, aber der Betrieb eines Clusters erfordert Wissen und Aufwand. Für ein kleines System können Container auf einer einzelnen Maschine oder ein verwalteter Container-Dienst in der Cloud besser passen.