GKE basiert auf der Open-Source-Plattform zur Containerorchestrierung Kubernetes. In der Dokumentation auf dieser Website wird davon ausgegangen, dass Sie mit den grundlegenden Kubernetes-Konzepten und der Terminologie vertraut sind. Falls nicht, erhalten Sie auf dieser Seite einen kurzen Überblick über die Grundlagen von Kubernetes mit Links zu empfohlenen Lesematerialien für den Einstieg.
Wichtige Konzepte
Im Folgenden finden Sie einige wichtige Konzepte, die in der GKE-Dokumentation verwendet werden. Dies ist keine vollständige Liste der Kubernetes-Konzepte. In den bereitgestellten Themen der Kubernetes-Dokumentation und in unseren empfohlenen Lesematerialien finden Sie weitere Informationen.
Knoten und Cluster
Alle Kubernetes-Arbeitslasten werden auf Knoten ausgeführt. In GKE ist ein Knoten eine virtuelle Compute Engine-Maschine (VM). Auf anderen Kubernetes-Plattformen kann ein Knoten entweder eine physische oder eine virtuelle Maschine sein. Jeder Knoten wird von der Kubernetes-Steuerungsebene verwaltet und verfügt über alle erforderlichen Komponenten zum Ausführen von Pods. Ein Cluster besteht aus mehreren Knoten, die als eine einzelne Entität behandelt werden können, auf der Sie eine containerisierte Anwendung bereitstellen.
Weitere Informationen finden Sie in der Kubernetes-Dokumentation:
Namespaces
Kubernetes-Namespaces bieten einen Mechanismus zur weiteren Gruppierung und Auswahl von Ressourcen wie Pods und Diensten innerhalb eines Clusters, z. B. wenn mehrere Anwendungsteams Arbeitslasten in einem einzigen Cluster ausführen.
Weitere Informationen finden Sie in der Kubernetes-Dokumentation:
Pods
In Kubernetes werden containerisierte Anwendungen in einem Pod ausgeführt. Ein Pod ist die kleinste bereitstellbare Recheneinheit, die Sie in Kubernetes erstellen und verwalten können. Ein Pod hat einen oder mehrere Container. Wenn ein Pod mehrere Container ausführt (z. B. einen Anwendungsserver und einen Proxyserver), werden die Container als eine Einheit verwaltet und teilen die Ressourcen des Pods.
Weitere Informationen finden Sie in der Kubernetes-Dokumentation:
Controller
Kubernetes-Controller überwachen und verwalten den Status Ihrer Cluster und Arbeitslasten basierend auf dem von Ihnen angegebenen gewünschten Status (z. B. „Ich möchte drei dieser Pods in diesem Cluster mit diesem Container in jedem Pod ausführen“). Unterschiedliche Controller erfassen unterschiedliche Kubernetes-Ressourcentypen, darunter:
- Deployments: Ein Deployment ist ein Kubernetes-Objekt, das einen oder mehrere identische Pods darstellt, die als Replikate bezeichnet werden. Ein Deployment führt mehrere Replikate der Pods aus, die auf die Knoten eines Clusters verteilt sind. Ein Deployment ersetzt automatisch alle Pods, die fehlschlagen oder nicht mehr reagieren.
- StatefulSet: Ein StatefulSet ähnelt einem Deployment, behält aber für jeden seiner Pods eine eindeutige, dauerhafte Identität bei. StatefulSets können für Anwendungen mit persistentem Status nützlich sein.
- DaemonSets: Mit einem Kubernetes-DaemonSet können Sie einigen oder allen Ihren Knoten Standard-Pods hinzufügen. Häufig sind dies Hilfsdienste für Ihre Arbeitslasten, z. B. ein Log-Sammlungs-Daemon oder ein Monitoring-Daemon.
- ReplicaSets: Ein ReplicaSet besteht aus einer Gruppe identischer Pods. Ein ReplicaSet wird in der Regel als Teil einer Bereitstellung verwaltet.
Weitere Informationen finden Sie in der Kubernetes-Dokumentation:
Kubernetes-Dienst
Standardmäßig können Sie nicht steuern, auf welchem Clusterknoten ein Pod ausgeführt wird, sodass Pods keine stabilen IP-Adressen haben. Wenn Sie eine IP-Adresse für eine in Kubernetes ausgeführte Anwendung abrufen möchten, müssen Sie eine Netzwerkabstraktion auf den Pods definieren, die als Kubernetes-Dienst bezeichnet wird. Ein Kubernetes-Dienst stellt einen stabilen Netzwerkendpunkt für eine Reihe von Pods bereit.
Es gibt mehrere Diensttypen, darunter LoadBalancer
-Dienste, die eine externe IP-Adresse bereitstellen, damit Sie Anwendungen von außerhalb ihres Clusters erreichen können.
Kubernetes umfasst auch ein integriertes DNS-System für die interne Adressauflösung, das Diensten DNS-Namen (z. B. helloserver.default.cluster.local
) zuweist. Dadurch können Pods im Cluster andere Pods im Cluster mit einer stabilen Adresse erreichen. Sie können diesen DNS-Namen nicht außerhalb des Clusters verwenden, z. B. in Cloud Shell.
Weitere Informationen finden Sie in der Kubernetes-Dokumentation:
Speicher
Wenn Ihre Anwendungen Daten speichern müssen, die über die Lebensdauer ihres Pods hinausgehen (zustandsorientierte Anwendungen), können Sie ein Kubernetes-Objekt vom Typ PersistentVolume verwenden, um diesen Speicher zu provisionieren. In GKE wird der PersistentVolume-Speicher von Compute Engine-Laufwerken unterstützt. Sie können auch sitzungsspezifischen Speicher verwenden, der gelöscht wird, wenn der entsprechende Pod beendet wird.
Weitere Informationen finden Sie in der Kubernetes-Dokumentation:
Kubernetes-Steuerungsebene
Die Steuerungsebene von Kubernetes besteht aus einer Reihe von Systemkomponenten, die den Gesamtstatus Ihres Clusters verwalten. Dazu gehören der Kubernetes API-Server, mit dem Sie über kubectl
und andere Tools mit Ihren Clustern und Anwendungen interagieren können, ein Planer zum Planen von Pods auf verfügbaren Knoten und die Controller, die den Clusterstatus erfassen und verwalten. In GKE wird die Steuerungsebene von Google Cloudbereitgestellt und verwaltet.
Weitere Informationen finden Sie in der Kubernetes-Dokumentation:
Rollenbasierte Zugriffssteuerung
Kubernetes bietet einen Mechanismus für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC), mit dem Sie Autorisierungsrichtlinien für den Zugriff auf Ihre Cluster und ihre Ressourcen erstellen können. Wenn Sie GKE verwenden, verwenden Sie häufig eine Kombination aus der rollenbasierten Zugriffssteuerung von Kubernetes und der Identitäts- und Zugriffsverwaltung von Google Cloud, um Ihre Anwendungen zu schützen.
Weitere Informationen finden Sie in der Kubernetes-Dokumentation:
Empfohlene Links
In diesem Abschnitt finden Sie Links zu empfohlenen Ressourcen, mit denen Sie mehr über Kubernetes erfahren können. Insbesondere Kubernetes.io, die offizielle Kubernetes-Website, bietet viele aktuelle, zuverlässige Informationen zu allen Aspekten von Kubernetes.
Leitfäden und Anleitungen
- Kubernetes-Übersicht: Eine umfassende konzeptionelle Übersicht über Kubernetes. Warum Sie Kubernetes benötigen und was es kann ist eine gute Einführung in die Probleme, die Kubernetes lösen kann.
- Anleitung: Kubernetes-Grundlagen kennenlernen: Hier werden die Grundlagen von Kubernetes anhand eines einfachen Beispiels erläutert.
- Anleitung: Einführung in Container: Hier erfahren Sie anhand einer einfachen Beispielanwendung mehr über Container und Container-Orchestrierung. Das Beispiel wird abschließend in GKE ausgeführt.
- Kubernetes-Anleitungen: Wenn Sie bereit sind, über die Grundlagen hinauszugehen, finden Sie in diesem Abschnitt der Kubernetes-Dokumentation Anleitungen zu einer Vielzahl von Kubernetes-Themen, von zustandsorientierten Anwendungen bis hin zur Sicherheit.
Referenzdokumentation
- Kubernetes-Glossar: Eine umfassende, standardisierte Liste der Kubernetes-Terminologie. Wenn Sie sich nicht sicher sind, was ein bestimmter Kubernetes-Begriff bedeutet, können Sie ihn hier nachschlagen.
Videos
- Kubernetes mit Google kennenlernen: Eine Playlist mit Videoanleitungen von Google zu verschiedenen Kubernetes-Features und ‑Funktionen, mit Material sowohl für Entwickler als auch für Betreiber.
Comic
- Kubernetes-Comic: Erfahren Sie mehr über die Geschichte von Kubernetes und wie Sie es für Continuous Integration und Continuous Delivery verwenden können – mit der unwahrscheinlichen Hilfe der Göttin der Weisheit (und containerisierten Anwendungen).