Was ist Kubernetes?

Mit der zunehmenden Verwendung von Containern in Organisationen ist Kubernetes, die für Container optimierte Verwaltungssoftware, zum De-facto-Standard für die Bereitstellung und den Betrieb von Containeranwendungen geworden. Kubernetes, das in Google Cloud ausgeführt wird, wurde ursprünglich von Google entwickelt und 2014 als Open-Source-System veröffentlicht. Es beruht auf 15 Jahren Erfahrung beim Ausführen containerisierter Arbeitslasten sowie wertvollen Beiträgen aus der Open-Source-Community. Kubernetes ist von Googles internem Clusterverwaltungssystem Borg inspiriert und vereinfacht die Umsetzung bei der Bereitstellung und Verwaltung von Anwendungen. Mit der automatisierten Containerorchestrierung verbessert Kubernetes die Zuverlässigkeit und reduziert den Zeit- und Ressourcenaufwand für wiederkehrende Vorgänge.

Testen Sie Ihr Wissen in einem praxisorientierten Lab in Google Skills

Definition von Kubernetes

Kubernetes (auch als K8s abgekürzt; wobei 8 für die Anzahl der Buchstaben zwischen „K“ und „s“ steht) ist ein Open-Source-System zur Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen.

Kubernetes automatisiert operative Aufgaben bei der Containerverwaltung und umfasst integrierte Befehle, die die Anwendungsverwaltung erleichtern, zum Beispiel für die Bereitstellung, die Einführung von Änderungen, die bedarfsgesteuerte Skalierung und das Monitoring.

Funktionsweise von Kubernetes

Wenn Anwendungen auf mehrere Container und Server skaliert werden, vereinfacht Kubernetes die Verwaltung. Es orchestriert Bereitstellungen über eine Open-Source-API und gruppiert Container in Pods, um sie je nach Bedarf und Ressourcenverfügbarkeit zu skalieren. Kubernetes automatisiert auch Service Discovery, Load Balancing und Ressourcenzuweisung und überwacht den Systemzustand, um eine Selbstheilung durch Neustart oder Replikation von Containern zu ermöglichen.

Entwickler finden hier eine Schritt-für-Schritt-Anleitung zur Funktionsweise von Kubernetes:

  • Anwendung definieren: Definieren Sie zuerst den gewünschten Zustand Ihrer Anwendung mithilfe von YAML-Dateien. Diese Dateien geben an, welche Container ausgeführt werden sollen, welche Ressourcen sie benötigen (CPU, Arbeitsspeicher) und wie sie dem Netzwerk zur Verfügung gestellt werden sollen.
  • Anfrage an Kubernetes API senden: Sie senden diese YAML-Dateien an die Kubernetes API, in der Regel mit dem Befehlszeilentool kubectl.
  • Planer weist Pods Knoten zu: Der Kubernetes-Planer analysiert die Anforderungen Ihrer Anwendung und sucht die besten Knoten im Cluster, um Ihre Container (als Pods verpackt) auszuführen.
  • Kubelet startet Container: Auf jedem Knoten empfängt ein Kubelet-Prozess Anweisungen von der Steuerungsebene und startet die Container.
  • Dienste machen Anwendungen verfügbar: Kubernetes-Dienste stellen eine stabile IP-Adresse und einen DNS-Namen für Ihre Anwendung bereit, sodass andere Anwendungen darauf zugreifen können, selbst wenn Pods erstellt, gelöscht und neu geplant werden.
  • Controller sorgen für den gewünschten Zustand: Kubernetes-Controller überwachen kontinuierlich den Zustand Ihrer Anwendung und ergreifen bei Bedarf Korrekturmaßnahmen. Wenn beispielsweise ein Pod abstürzt, erstellt der Controller automatisch einen neuen Pod als Ersatz.
  • Skalierung und Updates: Sie können Ihre Anwendung einfach skalieren, indem Sie die Anzahl der Replikate in Ihrer Bereitstellungskonfiguration aktualisieren. Kubernetes erstellt oder entfernt automatisch Pods, um die gewünschte Skalierung zu erreichen. Mit Rolling Updates können Sie neue Versionen Ihrer Anwendung ohne Ausfallzeiten bereitstellen.

Welche Vorteile bietet Kubernetes?

Automatisierte Vorgänge

Kubernetes bietet integrierte Befehle für einen Großteil der Aufgaben zur Anwendungsverwaltung. So können Sie sich auf die Automatisierung alltäglicher Vorgänge konzentrieren und dafür sorgen, dass Ihre Anwendungen nach Wunsch laufen.

Abstraktion der Infrastruktur

Mit der Installation von Kubernetes wird die Abwicklung der Computing-, Netzwerk- und Speichervorgänge für Ihre Arbeitslasten übernommen. Entwickler können sich so auf die Anwendungen konzentrieren und brauchen sich keine Gedanken über die zugrunde liegende Umgebung machen.

Monitoring des Dienststatus

Kubernetes führt kontinuierlich Systemdiagnosen Ihrer Dienste durch, startet ausgefallene oder angehaltene Container neu und stellt Dienste nur bei bestätigter Ausführung bereit.

Optimierte Ressourcennutzung

Kubernetes optimiert die Ressourcennutzung, indem Container basierend auf ihren Anforderungen effizient auf Knoten gepackt werden. Das wiederum trägt dazu bei, Ressourcenverschwendung zu reduzieren und die Infrastrukturkosten zu senken.

Vereinfachte Anwendungsverwaltung

Kubernetes vereinfacht die Anwendungsverwaltung. Kubernetes bietet einen einheitlichen Ansatz für die Bereitstellung, Aktualisierung und Verwaltung von Anwendungen unterschiedlicher Komplexität.

Verbesserte Portierbarkeit

Kubernetes ist eine Open-Source-Plattform, die in verschiedenen Umgebungen konsistent ausgeführt werden kann – von lokalen Rechenzentren bis hin zu öffentlichen Clouds. Unternehmen können so von Flexibilität und Übertragbarkeit profitieren.

Meistern Sie Ihre geschäftlichen Herausforderungen mit Google Cloud

Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.
Sprechen Sie mit einem Google Cloud-Vertriebsexperten, um Ihre besonderen Herausforderungen im Detail zu besprechen.

Kubernetes und Docker im Vergleich

Kubernetes und Docker werden oft fälschlich als Alternativen angesehen. In Wirklichkeit sind es zwei sich ergänzende Technologien für die Ausführung von Containeranwendungen. 

Mit Docker können Sie alles, was Sie zur Ausführung einer Anwendung benötigen, in eine Box packen, die gespeichert und bei Bedarf geöffnet werden kann. Nachdem Ihre Anwendungen in Boxen gepackt sind, benötigen Sie eine Methode, um sie zu verwalten – hier kommt Kubernetes ins Spiel.

Kubernetes ist ein griechisches Wort und bedeutet „Steuermann“. So wie der Steuermann für die sichere Fahrt eines Schiffs auf dem Meer verantwortlich ist, sorgt Kubernetes für Sicherheit bei Transport und Auslieferung der Boxen an die vorgesehenen Ziele.

  • Kubernetes kann mit oder ohne Docker verwendet werden.
  • Docker ist keine Alternative zu Kubernetes, beide Technologien können also parallel eingesetzt werden. So können Sie Ihre Anwendungen in Container packen und nach Belieben skalieren.
  • Docker und Kubernetes unterscheiden sich bezüglich ihrer Rolle bei der Containerisierung und Ausführung von Anwendungen.
  • Docker ist ein offener Industriestandard zum Verpacken und Verteilen von Anwendungen in Containern.
  • Kubernetes nutzt Docker zur Bereitstellung, Verwaltung und Skalierung von Containeranwendungen.

Häufige Anwendungsfälle für Kubernetes

Kubernetes wird zum Erstellen von Anwendungen verwendet, die überall einfach verwaltet und bereitgestellt werden können. Wenn Kubernetes als verwalteter Dienst verfügbar ist, stehen Ihnen verschiedene Lösungen zur Verfügung, um Ihre Anforderungen zu erfüllen. Im Folgenden sind einige gängige Anwendungsfälle aufgeführt.

Beschleunigung der Entwicklung

Kubernetes unterstützt Sie beim Entwickeln cloudnativer, auf Mikrodiensten basierender Anwendungen. Außerdem unterstützt das System die Containerisierung vorhandener Anwendungen. Damit wird Kubernetes zur Grundlage für die Modernisierung von Anwendungen und ermöglicht eine schnellere Entwicklung.

  • Beispiel: Ein Finanzdienstleistungsunternehmen setzt Kubernetes ein, um Mikrodienste für seine Online-Banking-Plattform bereitzustellen. Dies ermöglicht schnellere Entwicklungszyklen und eine verbesserte Skalierbarkeit.

Anwendungsbereitstellung in jeder Umgebung

Kubernetes ist darauf ausgelegt, überall eingesetzt zu werden. Deshalb können Sie Ihre Anwendungen dort ausführen, wo Sie sie benötigen – von lokalen Bereitstellungen über öffentliche Clouds bis hin zu hybriden Bereitstellungen.

  • Beispiel: Ein globales E-Commerce-Unternehmen setzt Kubernetes ein, um seine Anwendung bei mehreren Cloud-Anbietern bereitzustellen. Dies sichert die Hochverfügbarkeit und vermeidet die Anbieterbindung.

Effiziente Ausführung von Diensten

Kubernetes kann automatisch die Größe von Clustern anpassen, die zur Ausführung von Diensten benötigt werden. So können Sie Anwendungen nach Bedarf automatisch skalieren und effizient ausführen.

  • Beispiel: Ein Streamingdienst nutzt Kubernetes, um seine Video-Codierungs-Infrastruktur automatisch an die Anzahl der Nutzer anzupassen, die Inhalte ansehen. So wird die Ressourcennutzung optimiert und die Kosten werden gesenkt.

Häufig gestellte Fragen

Antworten auf häufig gestellte Fragen zu Kubernetes

Kubernetes-Cluster bestehen aus Knoten (virtuellen oder physischen Maschinen), auf denen containerisierte, von Kubernetes orchestrierte Anwendungen ausgeführt werden.

Ein Kubernetes-Pod, die kleinste bereitstellbare Einheit, enthält einen oder mehrere Container, die eine einzelne laufende Prozessinstanz darstellen.

Ein Kubernetes-Deployment sorgt für den gewünschten Anwendungszustand, indem es für Replikate und reibungslose Updates sorgt.

Ein Kubernetes-Dienst ist ein Kubernetes-Objekt, das eine stabile IP-Adresse und einen DNS-Namen für Ihre Anwendung bereitstellt, sodass andere Anwendungen auf diese zugreifen können.

Sie können Ihre Anwendung skalieren, indem Sie die Anzahl der Replikate in Ihrer Deployment-Konfiguration aktualisieren. Kubernetes erstellt oder entfernt automatisch Pods, um die gewünschte Skalierung zu erreichen.

Gleich loslegen

Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“ Produkte kennenzulernen.

Google Cloud