This is the Trace Id: ffa08c41918bdec24ce578f10eb65fdb
Zu Hauptinhalt springen
Azure
Farbverlaufshintergrund

Was ist Kubernetes?

Erfahren Sie, wie Sie Container ausführen, indem Sie Bereitstellung, Verwaltung und Skalierung automatisieren.

Kubernetes-Definition

Kubernetes ist eine Open-Source-Software, die die Bereitstellung, Verwaltung und Skalierung containerisierter Anwendungen automatisiert. Sie orchestriert Cluster virtueller Maschinen, plant Container ein und sorgt für Selbstheilung, Lastverteilung und Portabilität über verschiedene Umgebungen hinweg.

Wesentliche Punkte

  • Kubernetes ist eine Plattform, mit der Sie Container-Workloads über mehrere Server in einem Cluster ausführen, steuern und erweitern können.
  • Container werden in Pods gruppiert, wobei eine Planung auf Steuerungsebene und Controller den gewünschten Zustand beibehalten.
  • Sie übernimmt die Dienstermittlung, den Lastenausgleich, die automatische Skalierung und die Selbstheilung (Neustarts, Ersetzungen und Neuplanung).
  • Teams nutzen sie für portierbare Releases über verschiedene Umgebungen hinweg und zum Nachverfolgen von Zustands- und Stabilitätsmetriken.

Kubernetes im Überblick

Kubernetes ist Open-Source-Software , die DevOps zum Bereitstellen, Verwalten und Skalieren von Containern in einem Cluster verwendet. Docker – eine weitere Open-Source-Technologie – ist das Standardmäßige Containerdateiformat, das häufig in Verbindung mit Kubernetes verwendet wird.

Container

Container verpacken eine App mit ihren Abhängigkeiten und ihrer Konfiguration, sodass sie konsistent in verschiedenen Umgebungen ausgeführt werden kann. Wenn sich eine Anwendung weiterentwickelt, können Sie viele Container auf vielen Servern ausführen – und die manuelle Koordination wird kompliziert. Kubernetes behebt diese Komplexität mit einer Open-Source-API und einem Steuerungssystem, das entscheidet, was wo ausgeführt werden soll, und die ausführungsbereit hält.

Was Kubernetes für Sie tut

Planung und Ressourcenplatzierung

Kubernetes orchestriert Cluster mit virtuellen Computern und plant die Ausführung von Containern basierend auf verfügbaren Computeressourcen und den Ressourcenanforderungen der einzelnen Container.

Dienstermittlung und Lastenausgleich

Kubernetes verwaltet die Dienstermittlung und den Lastenausgleich, sodass Datenverkehr an die richtigen Pods weitergeleitet werden kann, selbst wenn sich Pods im Laufe der Zeit ändern.

Skalierung entsprechend der Nachfrage

Kubernetes skaliert Workloads basierend auf der Computeauslastung und dem gewünschten Zustand, den Sie festlegen.

Selbstheilung bei Fehlern

Kubernetes überprüft die Ressourcenintegrität und kann Container neu starten oder replizieren, wenn Probleme auftreten. Sie startet fehlerhafte Container neu oder ersetzt sie und hält den Datenverkehr ein, bis Workloads bereit sind.

Unterstützt kontrollierte Änderungen

Kubernetes unterstützt Bereitstellungsmuster für laufende Anwendungen, einschließlich automatisierter Rollouts und Rollbacks auf Basis des von Ihnen beschriebenen gewünschten Zustands.

Verwaltung von Konfiguration und Geheimnissen

Kubernetes bietet Geheimnis- und Konfigurationsverwaltung für vertrauliche Informationen wie Kennwörter oder Token.

Speicherorchestrierung

Kubernetes kann die von Ihnen ausgewählten Speichersysteme einbinden, zum Beispiel lokalen Speicher oder öffentliche Cloudoptionen, basierend auf dem Speicherorchestrierungsmodell von Kubernetes.

Ein kurzes Objektglossar

Kubernetes basiert auf API-Objekten – Ressourcen, die Sie deklarieren und verwalten. Einige davon sind:

  • Pod: Die grundlegende Einheit, in der ein oder mehrere Container ausgeführt werden.

  • Dienst: Eine stabile Möglichkeit, eine App verfügbar zu machen und Datenverkehr an sich ändernde Pods weiterzuleiten.

  • Bereitstellung: Eine Möglichkeit, einen gewünschten App-Status zu beschreiben und im Laufe der Zeit zu aktualisieren (häufig an Rollouts und Rollbacks gebunden).

  • Knoten: Ein Computer im Cluster, auf dem Pods ausgeführt werden.

  • Steuerungsebene: Komponenten, die Clusterstatus- und Planungsentscheidungen verwalten.

Wie alles zusammenpasst

  1. Sie deklarieren den gewünschten Zustand für Ihre Anwendung (was ausgeführt werden soll, wie viele Kopien, Ressourcenanforderungen).

  2. Die Steuerungsebene zeichnet diese Anforderung über die Kubernetes-API und den Sicherungsspeicher auf und verarbeitet sie.

  3. Der Planer platziert Pods auf Knoten mit ausreichenden Ressourcen.

  4. Knotenkomponenten führen die Workload aus.

  5. Controller stimmen kontinuierlich ab, sodass der tatsächliche Zustand dem gewünschten Zustand entspricht. Workloads werden bei Bedarf skaliert, ersetzt und aktualisiert.

Kubernetes-Architektur

Die wichtigsten Bausteine

Cluster: Steuerungsebene plus Workerknoten

Ein Kubernetes-Cluster wird in der Regel in zwei Teilen beschrieben: einer Steuerungsebene, die den Cluster verwaltet, und Workerknoten, auf denen Ihre Workloads ausgeführt werden.

Komponenten der Steuerungsebene

Diese Komponenten verwalten den Gesamtstatus des Clusters:

  • kube-apiserver: Macht die Kubernetes-HTTP-API (die Front Door für Anforderungen) verfügbar.

  • etcd: Ein konsistenter, hoch verfügbarer Schlüssel-Wert-Speicher für Clusterdaten.

  • kube-scheduler: Sucht Pods, die platziert werden müssen, und weist sie einem Knoten zu.

  • kube-controller-manager: Führt Controller aus, die den tatsächlichen Zustand mit dem gewünschten Zustand abstimmen.

  • cloud-controller-manager (optional): Verbindet Kubernetes mit cloudanbieterspezifischer Steuerungslogik.

Knotenkomponenten

Auf jedem Workerknoten wird Software ausgeführt, die Pods und Netzwerkregeln verwaltet:

  • kubelet: Stellt sicher, dass Pods auf dem Knoten ausgeführt werden, einschließlich ihrer Container.

  • kube-proxy (optional): Verwaltet Netzwerkregeln zur Unterstützung von Diensten.

  • container runtime: Führt Container auf dem Knoten aus.

Pods: Die grundlegende Arbeitseinheit

Kubernetes plant einzelne Container nicht direkt in der Abstrakten. Es gruppiert einen oder mehrere Container in einem Pod, der zur grundlegenden Betriebseinheit wird. Pods werden dann auf den gewünschten Zustand hoch- oder herunterskaliert, den Sie definieren.

In der Praxis bedeutet dies:

  1. Sie beschreiben die App, die Sie ausführen möchten.

  2. Kubernetes plant Pods auf Computern mit verfügbarer Computeleistung.

  3. Controller sorgen dafür, dass sich der Cluster in Richtung des zustandsbewegten Zustands bewegt, den Sie angefordert haben.

Dienstnetzwerk

Pods können kommen und gehen. Deshalb stellt Kubernetes Primitive bereit – grundlegende Bausteine, mit denen Sie Anwendungen auf einem Cluster beschreiben und ausführen –, die stabile Möglichkeiten für Workloads bieten.

Grundlagen der Pod-Netzwerke

Jeder Pod erhält seine eigene clusterweite IP-Adresse, und Pods können knotenübergreifend ohne Netzwerkadressübersetzung (Network Address Translation, NAT) im Kubernetes-Netzwerkmodell kommunizieren.

Dienste

Die Dienst-API stellt eine stabile IP-Adresse oder einen Hostnamen für eine Gruppe von Back-End-Pods bereit, auch wenn sich einzelne Pods im Laufe der Zeit ändern.

EndpointSlice

Kubernetes verwaltet Endpunktslice-Objekte, um nachzuverfolgen, welche Pods derzeit einen Dienst unterstützen.

Eingangs-/Gateway-API

Um Dienste für Clients außerhalb des Clusters verfügbar zu machen, unterstützt Kubernetes die Gateway-API (und den Eingang als Vorgänger).

LoadBalancer-Dienste

Einige Umgebungen können einen Dienst mithilfe des LoadBalancer-Diensttyps extern verfügbar machen.

Add-ons, die Sie in einem Cluster ausführen können

Kubernetes-Cluster enthalten häufig Add-ons, die die Funktionalität über die Kernkomponenten hinaus erweitern. Beispiele umfassen:

  • DNS für die clusterweite Namensauflösung.

  • Weboberfläche (Dashboard) für die Clusterverwaltung.

  • Containerressourcenüberwachung für die Metrikerfassung.

  • Protokollierung auf Clusterebene, um Protokolle zentral zu erfassen.

Wie funktioniert Kubernetes?

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.

Vorteile und Anwendungsfälle

Kubernetes wird häufig ausgewählt, wenn Teams eine konsistente Möglichkeit benötigen, um viele Container auf vielen Computern auszuführen, während das Datenverkehrsrouting, die Skalierung und die Wiederherstellung von der Plattform behandelt werden.

Skalierbarkeit

Kubernetes kann Workloads skalieren, d. h. sie bei Bedarf in Richtung eines Zielzustands vergrößern oder verkleinern und basierend auf der Computenutzung skalieren.

Gängige Anwendungsfälle

  • Web-Apps mit variablem Datenverkehr (Kampagnen, saisonale Spitzen): Passen Sie Replikate bei Laständerungen an.

  • Batch- oder ereignisgesteuerte Verarbeitung: Fügen Sie Kapazität für Bursts hinzu, und skalieren Sie dann zurück.

  • Microservices: Skalieren Sie bestimmte Dienste, ohne die gesamte Anwendung zu skalieren.

Ressourceneffizienz

Kubernetes unterstützt das automatische Packen von Containern, wodurch Container basierend auf CPU- und Arbeitsspeicheranforderungen auf Knoten platziert werden, um die verfügbaren Ressourcen besser nutzen zu können. Außerdem verfolgt es die Ressourcenzuweisung, während es Workloads verwaltet.

Gängige Anwendungsfälle

  • Freigegebene Cluster für mehrere Teams: Reduzieren Sie die ungenutzte Kapazität, indem Sie Workloads dort platzieren, wo Ressourcen verfügbar sind.

  • Gemischte Workloadcluster (Dienste und Aufträge): Halten Sie Knoten ohne manuelle Platzierung ausgelastet.

Dienstermittlung und Lastenausgleich

Kubernetes kann Workloads mithilfe von DNS oder einer IP-Adresse verfügbar machen und Netzwerkdatenverkehr verteilen, um Bereitstellungen stabil zu halten. Außerdem wird die Dienstermittlung verwaltet, und der Lastenausgleich wird integriert, wenn sich Workloads ändern.

Gängige Anwendungsfälle

  • Microserviceskommunikation: Dienste finden sich über stabile Namen, während Pods geändert werden.

  • Interne APIs hinter einem stabilen Endpunkt: Leiten Sie Datenverkehr nur an aktuelle Back-Ends weiter.

Selbstheilung

Kubernetes wurde entwickelt, um fehlerhafte Container zu ersetzen, Workloads neu zu planen, wenn Knoten nicht mehr verfügbar sind, und den gewünschten Zustand beizubehalten. Beispiele hierfür sind Containerneustarts, Replikatersetzungen und das Entfernen fehlerhafter Pods von Dienstendpunkten, sodass der Datenverkehr nur an fehlerfreie Pods gesendet wird.

Gängige Anwendungsfälle

  • Always-On-Dienste: Starten Sie fehlerhafte Instanzen ohne manuellen Eingriff neu, oder ersetzen Sie sie.

  • Cluster mit häufiger Knotenänderung: Planen Sie Workloads neu, wenn ein Knoten ausfällt.

  • Dienste hinter einem Dienst: Beenden Sie die Weiterleitung von Datenverkehr an fehlerhafte Pods.

Sicherere Releases

Kubernetes unterstützt automatisierte Rollouts und Rollbacks. Sie beschreiben den gewünschten Zustand, und Kubernetes verschiebt den tatsächlichen Zustand mit einer kontrollierten Rate darauf.

Gängige Anwendungsfälle

  • Häufige Anwendungsupdates: Führen Sie Änderungen schrittweise aus und setzen Sie sie bei Bedarf wieder her.

  • Teams, die mehrere Dienste bereitstellen: Release-Mechanismen über alle Apps hinweg konsistent halten.

Portabilität

Containerisierte Apps sind von der Infrastruktur getrennt, und Kubernetes hilft ihnen dabei, sie von lokalen Computern in die Produktion in lokale, serverlose , Hybrid Cloud- und Multicloudumgebungenzu verschieben und gleichzeitig die Umgebungskonsistenz zu gewährleisten.

Gängige Anwendungsfälle

  • Entwicklungs-/Test-/Produktionsparität: Behalten Sie dasselbe Paketerstellungs- und Planungsmodell in allen Umgebungen bei.

  • Hybridbereitstellungen: Führen Sie Teile eines lokalen Systems und Teile in der Cloud mit dem gleichen Orchestrierungsansatz aus.

Jetzt mit Kubernetes starten

Kubernetes bietet eine gemeinsame Möglichkeit, containerisierte Workloads mit deklarativer Konfiguration und Machine-Learning Automatisierung auszuführen. Dazu kommt ein großes und wachsendes Set an Tools und Community-Support.

Warum das für cloudnative Apps weiterhin wichtig ist

Wenn Teams Systeme erstellen, die aus vielen Diensten, kurzlebigen Workloads und häufigen Updates bestehen, bleibt Kubernetes eine praktische Grundlage, da es sich auf wiederholbare Vorgänge konzentriert:

  • Konsistente Vorgänge in allen Umgebungen (Container, die mit Abhängigkeiten gepackt sind, werden umgebungsübergreifend auf die gleiche Weise ausgeführt).

  • Ein umfassendes, aktives Ökosystem mit allgemein verfügbaren Diensten, Support und Tools.

  • Erweiterbarkeit durch von der Community erstellte Add-ons, Plug-Ins und ein Konformitätsprogramm, das die Kern-APIs versionsübergreifend konsistent hält.

Wenn Sie Workloads entwickeln oder ausführen, hilft Azure Kubernetes Service (AKS) Ihnen dabei, containerisierte Anwendungen bereitzustellen und zu verwalten, während Azure die Steuerebene verwaltet.

Farbverlaufshintergrund
Ressourcen
Entwicklung

Azure-Ressourcen

Entdecken Sie die neueste Entwicklerttechnologie und neue Fähigkeiten.
Training

Einführung in Kubernetes

Dieser Kurs führt Sie durch die Arten von Geschäftsproblemen, die Sie mit Kubernetes lösen können.
Bildung

Microsoft Azure for Students

Erwerben Sie Fähigkeiten, um Ihre Karriere voranzubringen und die Welt zum Positiven zu verändern.
Häufig gestellte Fragen

Häufig gestellte Fragen

  • Kubernetes wird verwendet, um Container-Apps in einem Cluster bereitzustellen, zu verwalten und zu skalieren. Es plant Workloads basierend auf verfügbaren Computeressourcen, leitet Datenverkehr mit Dienstermittlung und Lastenausgleich weiter und hilft, die Ausführung von Apps zu halten, indem fehlerhafte Container neu gestartet oder ersetzt werden.
  • Kubernetes wird in der Regel von Fachkräften in der Entwicklung und Plattformadmins verwendet, die Containeranwendungen ausführen. Wenn Sie weniger Aufwand für die Steuerebene wünschen, kann ein verwalteter Dienst wie Azure Kubernetes Service (AKS) die Steuerebene übernehmen, während Sie sich auf die Knoten und Apps konzentrieren.
  • Ja Kubernetes kann Container-Apps in einer lokalen oder lokalen Infrastruktur ausführen und unterstützt auch Hybrid- und Multicloud-Setups. Container bleiben portierbar, da die App getrennt von den zugrunde liegenden Computern gepackt wird.
  • Dies kann einige Zeit in Anspruch nehmen, da es mehrere Kernkonzepte gibt (Cluster, Knoten, Pods, Dienste). Beginnen Sie mit den Grundlagen, üben Sie dann, indem Sie eine kleine App bereitstellen, und folgen Sie einem geführten Lernpfad, um Vertrauen zu schaffen.