Kubernetes führt containerisierte Anwendungen auf einem Maschinencluster aus und hält sie in dem von Ihnen beschriebenen Zustand. Dazu werden Aufgaben auf den richtigen Computern platziert, Datenverkehr an die richtigen Stellen weitergeleitet und auf Fehler und Änderungen überwacht.
Der grundlegende Ablauf
1. Sie beschreiben, was Sie ausführen möchten
Die meisten Kubernetes-Workloads beginnen als deklarierter „gewünschter Zustand“ (was ausgeführt werden soll, wie viele Kopien und wie sie verfügbar gemacht werden sollen). Kubernetes basiert auf deklarativer Konfiguration und Automatisierung.
2. Kubernetes entscheidet, wo es ausgeführt werden soll
Kubernetes plant Container auf Computern im Cluster basierend auf den verfügbaren Computeressourcen und den Anforderungen der einzelnen Container. Container werden in Pods ausgeführt. Dies ist die Einheit, die Kubernetes auf einem Computer platziert.
3. Kubernetes überprüft weiterhin die Realität im Vergleich zu Ihrem gewünschten Zustand.
Controller überwachen den Cluster und arbeiten daran, den aktuellen Zustand näher an den gewünschten Zustand zu verschieben, indem sie den API-Server verwenden, um Änderungen vorzunehmen.
Containerplanung und tägliche Verwaltung
Bei der Planung geht es um die Frage: „Wo soll das ausgeführt werden?“ .
1. Pods werden geplant, nicht einzelne Container
Kubernetes gruppiert Container in Pods und platziert diese Pods dann auf Computern.
2. Der Planer weist einem geeigneten Knoten Pods zu.
Der kube-scheduler sucht nach Pods, die noch nicht zugewiesen sind, und wählt einen Knoten für sie aus.
3. Knoten-Agents sorgen für die Ausführung der Pods
Auf jedem Knoten stellt kubelet sicher, dass die Pods ausgeführt werden (einschließlich ihrer Container).
Lastenausgleich und Dienstermittlung
Container und Pods können erstellt, verschoben oder ersetzt werden, sodass Anwendungen stabile Möglichkeiten benötigen, sich gegenseitig zu finden.
Dienstermittlung und Lastenausgleich sind integrierte Verhaltensweisen
Kubernetes verwaltet die Dienstermittlung und verwendet Lastenausgleich, sodass Datenverkehr auch dann weitergeleitet werden kann, wenn sich Pods im Laufe der Zeit ändern.
Dienste stellen eine stabile Adresse für eine sich ändernde Gruppe von Pods bereit.
Die Dienst-API stellt eine stabile IP-Adresse oder einen Hostnamen für einen Dienst bereit, der von einem oder mehreren Pods unterstützt wird, und Kubernetes verfolgt die gesicherten Pods über EndpointSlice-Objekte nach.
Datenverkehrsrouting wird aktualisiert, wenn Pods geändert werden
Wenn sich Pods hinter einem Dienst ändern, wird das Dienstrouting angepasst, sodass der Datenverkehr weiterhin aktuelle Back-Ends erreicht.
Skalieren von Anwendungen (und warum der „gewünschte Zustand“ wichtig ist)
Kubernetes kann Workloads auf den von Ihnen festgelegten Zustand skalieren, einschließlich skalierungsbasierter Computenutzung.
Zu den gängigen Skalierungsideen gehören:
Mehr Replikate (mehr Pods), um eine höhere Nachfrage zu bewältigen.
Weniger Replikate , wenn der Bedarf sinkt.
Ressourcennachverfolgung, damit Platzierungsentscheidungen den CPU- und Arbeitsspeicheranforderungen entsprechen.
Dadurch wird wieder das Modell „gewünschter Zustand“ verwendet: Sie geben das Ziel an und Controller arbeiten weiter daran.
Selbstheilung: Was passiert, wenn etwas ausfällt
Kubernetes umfasst Selbstheilungsverhalten, das die Gesundheit und Verfügbarkeit von Workloads erhalten soll. Dazu gehören:
Neustarten von fehlerhaften Containern (Neustarts auf Containerebene).
Ersetzen fehlerhafter Pods, um die angeforderte Anzahl von Replikaten beizubehalten (Replikatersetzung).
Neuplanung von Workloads, wenn Knoten nicht mehr verfügbar sind.
Fehlerhafte Pods werden von Dienstendpunkten entfernt, sodass der Datenverkehr nur an fehlerfreie Pods (Lastenausgleich für Dienste) geleitet wird.
Die Selbstheilung überprüft die Containerintegrität und startet sie neu oder repliziert sie, wenn Probleme auftreten.
Die Rolle von Kubernetes-KPIs
Kennzahlen (KPIs oder Metriken) werden verwendet, um den Zustand des Clusters und das Verhalten der Workloads zu verstehen.
Woher KPIs stammen
Kubernetes-Systemkomponenten geben Metriken im Prometheus-Format aus, die für Dashboards und Warnungen nützlich sind.
Metriken sind in der Regel über einen HTTP-Endpunkt /metrics einer Komponente verfügbar, einschließlich Komponenten wie kube-apiserver, kube-scheduler, kubelet, kube-proxy und kube-controller-manager.
Beispiele dafür, was KPIs sichtbar machen
Clusterintegritätssignale (Metriken und Fehlermuster auf Komponentenebene)
Stabilität der Workloads (zum Beispiel häufige Neustarts oder Ersetzungen)
Kapazitätsdruck (Ressourcenzuweisung im Vergleich zur Nachfrage, verknüpft mit Skalierungsentscheidungen)
Warum das für den täglichen Betrieb wichtig ist
Die Überwachung bietet Teams eine umfassendere Ansicht von Clusterressourcen, der Kubernetes-API, Containern und Protokollen, wodurch die Feedbackschleife zwischen Problemen und Fehlerbehebungen verkürzt wird.