Erste Schritte mit Kubernetes

GKE basiert auf der Open-Source-Plattform zur Containerorchestrierung Kubernetes. In einem Großteil der Dokumentation auf dieser Website wird davon ausgegangen, dass Sie bereits mit den grundlegenden Kubernetes-Konzepten und der Terminologie vertraut sind. Wenn nicht, finden Sie auf dieser Seite eine kurze Übersicht über die Grundlagen von Kubernetes mit Links zu empfohlener Lektüre für den Einstieg.

Wichtige Konzepte

Im Folgenden finden Sie einige wichtige Konzepte, die in der gesamten GKE-Dokumentation verwendet werden. Dies ist keine vollständige Liste der Kubernetes-Konzepte. Weitere Informationen finden Sie in den bereitgestellten Themen aus der Kubernetes-Dokumentation und in unserer Leseempfehlung.

Knoten und Cluster

Alle Kubernetes-Arbeitslasten werden auf Knoten ausgeführt. In GKE ist ein Knoten eine Compute Engine-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 enthält alle erforderlichen Komponenten zum Ausführen von Pods. Ein Cluster ist eine Gruppe von Knoten, die als eine Einheit behandelt werden können und auf denen Sie eine Containeranwendung bereitstellen.

Weitere Informationen finden Sie in der Kubernetes-Dokumentation:

Namespaces

Kubernetes-Namespaces bieten einen Mechanismus zum weiteren Gruppieren und Auswählen von Ressourcen wie Pods und Diensten innerhalb eines Clusters, z. B. wenn mehrere Anwendungsteams Arbeitslasten in einem einzelnen 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 verfolgen 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“). Verschiedene Controller verfolgen unterschiedliche Kubernetes-Ressourcentypen, darunter die folgenden:

  • 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 ist wie ein Deployment, behält aber eine dauerhafte eindeutige Identität für jeden seiner Pods bei. StatefulSets können in Anwendungen mit persistentem Status (zustandsorientierte Anwendungen) nützlich sein.
  • DaemonSets: Mit einem Kubernetes-DaemonSet können Sie einigen oder allen Knoten Standard-Pods hinzufügen. Dabei handelt es sich oft um „Helfer“-Dienste für Ihre Arbeitslasten, z. B. einen Daemon zum Erfassen von Logs oder einen Monitoring-Daemon.
  • ReplicaSets: Ein ReplicaSet ist eine Gruppe identischer Pods. Ein ReplicaSet wird in der Regel als Teil eines Deployments 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. Daher haben Pods keine stabilen IP-Adressen. Wenn Sie eine IP-Adresse für eine Anwendung abrufen möchten, die in Kubernetes ausgeführt wird, müssen Sie eine Netzwerkabstraktion auf den zugehörigen Pods definieren, die als Kubernetes-Dienst bezeichnet wird. Ein Kubernetes-Service stellt einen stabilen Netzwerkendpunkt für eine Reihe von Pods bereit. Es gibt verschiedene Diensttypen, darunter LoadBalancer-Dienste, die eine externe IP-Adresse bereitstellen, damit Sie von außerhalb des Clusters auf Anwendungen zugreifen können.

Kubernetes umfasst auch ein integriertes DNS-System für die interne Adressauflösung, das Services DNS-Namen (z. B. helloserver.default.cluster.local) zuweist. Dadurch können Pods im Cluster andere Pods im Cluster über eine stabile 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 hinaus bestehen (zustandsorientierte Anwendungen), können Sie ein Kubernetes-Objekt vom Typ PersistentVolume verwenden, um diesen Speicher bereitzustellen. In GKE wird der Speicher für PersistentVolumes durch Compute Engine-Laufwerke unterstützt. Sie können auch sitzungsspezifischen Speicher verwenden, der zerstört wird, wenn der entsprechende Pod beendet wird.

Weitere Informationen finden Sie in der Kubernetes-Dokumentation:

Kubernetes-Steuerungsebene

Die Kubernetes-Steuerungsebene ist eine Reihe von Systemkomponenten, die den Gesamtzustand Ihres Clusters verwalten, einschließlich des Kubernetes API-Servers, mit dem Sie über kubectl und andere Tools mit Ihren Clustern und Anwendungen interagieren können, eines Planers zum Planen von Pods auf verfügbaren Knoten und der Controller, die den Clusterstatus verfolgen 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 zur rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC), mit dem Sie Autorisierungsrichtlinien für den Zugriff auf Ihre Cluster und deren Ressourcen erstellen können. Wenn Sie GKE verwenden, nutzen Sie häufig eine Kombination aus Kubernetes RBAC und der Identity and Access Management von Google Cloud, um Ihre Anwendungen zu schützen.

Weitere Informationen finden Sie in der Kubernetes-Dokumentation:

In diesem Abschnitt finden Sie Links zu empfohlenen Ressourcen, mit denen Sie mehr über Kubernetes erfahren können. Insbesondere auf Kubernetes.io, der offiziellen Kubernetes-Website, finden Sie viele aktuelle und zuverlässige Informationen zu allen Aspekten von Kubernetes.

Anleitungen und Tutorials

  • Kubernetes-Übersicht: Eine ausführliche konzeptionelle Übersicht über Kubernetes. Why you need Kubernetes and what it can do (Warum Sie Kubernetes benötigen und was es kann) ist eine gute Einführung in die Probleme, die mit Kubernetes gelöst werden können.
  • Anleitung: Kubernetes-Grundlagen: In dieser Anleitung werden die Grundlagen von Kubernetes anhand eines einfachen Beispiels erläutert.
  • Tutorial: Introducing containers (Tutorial: Einführung in Container): In diesem Tutorial lernen Sie anhand einer einfachen Beispielanwendung mehr über Container und die Containerorchestrierung. Am Ende wird die Beispielanwendung in GKE ausgeführt.
  • Kubernetes-Tutorials: Wenn Sie über die Grundlagen hinausgehen möchten, finden Sie in diesem Abschnitt der Kubernetes-Dokumentation Tutorials zu einer Vielzahl von Kubernetes-Themen, von zustandsorientierten Anwendungen bis hin zur Sicherheit.

Referenzdokumentation

  • Kubernetes-Glossar: Eine umfassende, standardisierte Liste von Kubernetes-Begriffen. Wenn Sie sich bei einem Kubernetes-Begriff nicht sicher sind, können Sie ihn hier nachschlagen.

Videos

  • Kubernetes mit Google kennenlernen: Eine Playlist mit Videoanleitungen von Google, in denen verschiedene Kubernetes-Funktionen und -Funktionalitäten behandelt werden. Das Material ist sowohl für Entwickler als auch für Betreiber geeignet.

Comic

  • Kubernetes-Comic: Erfahren Sie mehr über die Geschichte von Kubernetes und wie Sie es für Continuous Integration und Delivery nutzen können – mit der unerwarteten Hilfe der Göttin der Weisheit (und containerisierten Anwendungen).