Was ist Containerorchestrierung?

Eine einzelne containerisierte Anwendung zu verwalten ist relativ einfach. Wenn Sie jedoch Hunderte oder Tausende in einem verteilten System skalieren, ergeben sich erhebliche Herausforderungen bei der Sicherstellung von Verfügbarkeit, Interkonnektivität und Skalierbarkeit. Die Containerorchestrierung löst diese Komplexität. Kubernetes ist zwar die führende Open-Source-Plattform für diese Aufgabe, aber vollständig verwaltete Tools zur Containerorchestrierung wie die Google Kubernetes Engine (GKE) vereinfachen die Bereitstellung und laufende Verwaltung und nehmen Ihnen einen Großteil der operativen Belastung ab, die mit Kubernetes verbunden ist.

Einführung in die Containerorchestrierung in Google Cloud

Definition von Containerorchestrierung

Die Containerorchestrierung ist das System, das Containeranwendungen automatisch bereitstellt, skaliert und verwaltet, ohne dass Sie sich um die zugrunde liegende Infrastruktur kümmern müssen.

Entwickler können die Containerorchestrierung überall implementieren, wo Container vorhanden sind, und so die Verwaltung des Lebenszyklus von Containern automatisieren. 

Für Entwicklungs- und Betriebsteams in Unternehmen bedeutet dies, dass sie von manuellen Prozessen zu einem deklarativen, automatisierten System übergehen müssen. Anstatt anzugeben, wie Aufgaben wie das Bereitstellen einer neuen Version, das Skalieren zur Bewältigung von Traffic-Spitzen oder die Wiederherstellung nach einem Hardwareausfall ausgeführt werden sollen, deklarieren Sie einfach den gewünschten Zustand Ihrer Anwendung.

Wichtige Konzepte der Kubernetes-Orchestrierung

Die Kubernetes-Orchestrierung funktioniert, indem ein Cluster von Maschinen verwaltet und Container auf diesen bereitgestellt werden. Die Bereitstellung basiert auf den Ressourcen, die die Container benötigen, und dem vom Nutzer definierten gewünschten Zustand. Das System besteht aus mehreren Schlüsselkonzepten, die zusammenarbeiten.

  • Container: Dies sind die einfachen, portierbaren und ausführbaren Pakete, die eine Anwendung und alle ihre Abhängigkeiten enthalten. Kubernetes orchestriert die Bereitstellung und den Lebenszyklus dieser Container.
  • Cluster: Dies ist die Gruppe aller Maschinen, die als Knoten bezeichnet werden und von Kubernetes zusammen verwaltet werden, um Ihre Anwendungen auszuführen.
  • Steuerungsebene: Die Steuerungsebene ist das Gehirn des Kubernetes-Clusters. Es trifft alle globalen Entscheidungen zum Cluster (z. B. zur Planung) und ist dafür zuständig, Clusterereignisse zu erkennen und darauf zu reagieren, um den gewünschten Zustand des Nutzers aufrechtzuerhalten.
  • Knoten: Ein Knoten ist eine einzelne Worker-Maschine innerhalb des Clusters, entweder ein physischer Server oder eine virtuelle Maschine. Hier werden die Container tatsächlich ausgeführt.
  • Pods: In Kubernetes sind Pods die kleinsten bereitstellbaren Objekte, die eine einzelne Instanz eines laufenden Prozesses darstellen. Sie enthalten einen oder mehrere Container, gemeinsam genutzten Speicher und eine eindeutige Netzwerk-IP.

Arten von Tools zur Containerorchestrierung

Plattformen für die Containerorchestrierung bieten Tools zur Automatisierung der Containerorchestrierung und die Möglichkeit, andere Open-Source-Technologien für Ereignisprotokollierung, Monitoring und Analysen zu installieren, wie z. B. Prometheus.

Es gibt zwei Haupttypen von Container-Orchestrierungsplattformen: selbstverwaltete und verwaltete.

  • Selbstverwaltete Container-Orchestratoren: Diese Plattformen, die in der Regel von Grund auf neu entwickelt werden oder eine Open-Source-Plattform wie Kubernetes nutzen, geben Ihnen die vollständige Kontrolle über die Anpassung. Allerdings müssen Sie sich auch um die Verwaltung und Wartung der Plattform kümmern, einschließlich Aufgaben wie Installation, Konfiguration, Updates und Sicherheitspatches.
  • Verwaltete Kubernetes-Dienste: Plattformen wie die Google Kubernetes Engine (GKE) übernehmen die komplexe Aufgabe, die zugrunde liegende Clusterinfrastruktur einzurichten und zu betreiben. So können Sie sich auf die Bereitstellung und Verwaltung Ihrer Anwendungen konzentrieren. Der Cloud-Anbieter ist für die Verwaltung der Installation und des Betriebs verantwortlich. Sie können die Funktionen einfach nutzen und sich auf die Ausführung Ihrer containerisierten Anwendungen konzentrieren.

Kubernetes selbst bietet zwar die grundlegende Orchestrierung, aber eine Reihe von Cluster-Tools arbeiten zusammen, um die Sicherheit zu erhöhen, die Verwaltung zu vereinfachen und die Skalierung zu ermöglichen. Hier finden Sie eine Liste mit verwandten Tools: 

  • Monitoring- und Logging-Lösungen: Tools wie die Operations-Suite von Google Cloud (Cloud Monitoring und Cloud Logging) sind unerlässlich, um den Zustand und die Leistung des Clusters und der darauf ausgeführten Anwendungen zu beobachten.
  • CI/CD-Tools: Systeme wie Cloud Build lassen sich in Kubernetes einbinden, um das Erstellen von Container-Images und deren Bereitstellung im Cluster zu automatisieren.

Wie funktioniert die Containerorchestrierung?

Tools zur Containerorchestrierung wie die Google Kubernetes Engine (GKE) erleichtern die Bereitstellung und Ausführung von containerisierten Anwendungen und Mikrodiensten. Container-Orchestrierungsplattformen haben in der Regel eigene Methoden und bieten unterschiedliche Funktionen. Sie ermöglichen es Unternehmen jedoch, containerisierte Anwendungen automatisch zu koordinieren, zu verwalten und zu überwachen.

Das Endergebnis ist zwar dasselbe – eine ausgeführte, verwaltete containerisierte Anwendung –, aber die Schritte und der Aufwand unterscheiden sich zwischen Kubernetes und GKE erheblich.

YouTube-Bild

Wichtige Funktionen der Kubernetes-Orchestrierung

Kubernetes automatisiert mehrere kritische Funktionen, die sonst einen erheblichen manuellen Aufwand erfordern würden. Diese Kernfunktionen machen Kubernetes zu einer so leistungsstarken Orchestrierungsplattform.

  • Bereitstellung: Mit Kubernetes können Sie den gewünschten Zustand für Ihre bereitgestellte Anwendung beschreiben. Die Orchestrierungs-Engine verwaltet dann die Einführung von Änderungen, z. B. die Aktualisierung einer Anwendung auf eine neue Version, auf kontrollierte Weise, oft ohne Ausfallzeiten.
  • Skalierung: Basierend auf der CPU-Auslastung oder anderen benutzerdefinierten Messwerten kann Kubernetes die Anzahl der ausgeführten Container automatisch erhöhen oder verringern. So wird sichergestellt, dass Ihre Anwendung über die Ressourcen verfügt, die sie zur Bewältigung der Last benötigt, und gleichzeitig die Kosten optimiert werden.
  • Selbstheilung: Wenn ein Container oder ein Knoten ausfällt, kann die Kubernetes-Orchestrierung den Fehler automatisch erkennen. Anschließend werden Container auf fehlerfreien Knoten neu gestartet, ersetzt oder neu geplant, damit die Anwendung ohne manuellen Eingriff verfügbar bleibt.
  • Diensterkennung und Lastverteilung: Kubernetes kann einen Container automatisch über einen stabilen DNS-Namen im Internet oder anderen Containern im Cluster bereitstellen. Außerdem kann er den Traffic auf mehrere Container verteilen, die denselben Dienst bereitstellen, um Anfragen effizient zu verteilen.
  • Konfigurationsverwaltung: Kubernetes ermöglicht es Ihnen, sensible Informationen wie Passwörter und API-Schlüssel als „Secrets“ zu speichern und zu verwalten. Außerdem werden Anwendungs-Konfigurationsdaten als „ConfigMaps“ verarbeitet, sodass Sie Konfigurationen aktualisieren können, ohne Ihre Container-Images neu erstellen zu müssen.

Vorteile der Kubernetes-Containerorchestrierung

Einer der größten Vorteile der Containerorchestrierung besteht darin, dass sie Vorgänge vereinfacht. Das Automatisieren von Aufgaben hilft nicht nur, den Aufwand und die Komplexität der Verwaltung von Containeranwendungen zu minimieren, sondern bietet auch viele weitere Vorteile.

Zuverlässige Anwendungsentwicklung

Tools zur Containerorchestrierung beschleunigen die Anwendungsentwicklung und machen sie wiederholbar. Das erhöht die Bereitstellungsgeschwindigkeit und macht sie ideal für agile Entwicklungsansätze wie DevOps.

Skalierbarkeit

Mit der Containerorchestrierung können Sie Containerbereitstellungen je nach sich ändernden Arbeitslastanforderungen herauf- oder herunterskalieren. Sie profitieren außerdem von der Skalierbarkeit der Cloud, wenn Sie sich für ein verwaltetes Angebot entscheiden und Ihre zugrunde liegende Infrastruktur nach Bedarf skalieren.

Kosten senken

Container benötigen weniger Ressourcen als virtuelle Maschinen, wodurch die Infrastruktur- und Gemeinkosten sinken. Außerdem benötigen Container-Orchestrierungsplattformen weniger Personal und Zeit, was zu zusätzlichen Kosteneinsparungen führt.

Erhöhte Sicherheit

Mit der Containerorchestrierung können Sie Sicherheitsrichtlinien plattformübergreifend verwalten und menschliche Fehler reduzieren, die zu Sicherheitslücken führen können. Container isolieren auch Anwendungsprozesse, verringern Angriffsflächen und verbessern die allgemeine Sicherheit.

Hochverfügbarkeit

Mit Tools zur Containerorchestrierung lassen sich Infrastrukturfehler leichter erkennen und beheben. Wenn ein Container ausfällt, kann ein Containerorchestrierungstool ihn automatisch neu starten oder ersetzen. So wird die Verfügbarkeit aufrechterhalten und die Anwendungs-Uptime erhöht.

Höhere Produktivität

Die Containerorchestrierung steigert die Produktivität von Entwicklungsteams, da sie Routineaufgaben reduziert und die Installation, Verwaltung und Wartung von Containern erleichtert.

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.

Beispiele und Anwendungsfälle für die Containerorchestrierung

Angenommen, Sie haben 50 Container, die Sie aktualisieren müssen. Sie könnten alles manuell erledigen, aber wie viel Zeit und Mühe würde Ihr Team aufwenden müssen, um die Arbeit zu erledigen? Bei der Containerorchestrierung können Sie eine Konfigurationsdatei schreiben und das Containerorchestrierungstool erledigt alles für Sie. Dies ist nur ein Beispiel dafür, wie die Containerorchestrierung dazu beitragen kann, den Betriebsaufwand zu reduzieren. 

Überlegen Sie nun, wie lange es dauern würde, diese Container bereitzustellen, zu skalieren und zu sichern, wenn alles mit unterschiedlichen Betriebssystemen und Sprachen entwickelt wird. Was aber, wenn Sie sie in andere Umgebungen verschieben müssten? Ein deklarativer Ansatz kann zahlreiche sich wiederholende und vorhersehbare Aufgaben vereinfachen, die für den reibungslosen Betrieb von Containern erforderlich sind, z. B. die Ressourcenzuweisung, die Replikatverwaltung und Netzwerkkonfigurationen. Im Folgenden sind einige gängige Anwendungsfälle für die Containerorchestrierung aufgeführt:

  • Automatisierte Bereitstellungen: Anstatt jeden Container manuell bereitzustellen, automatisieren Orchestrierungstools den Prozess und sorgen für konsistente und wiederholbare Bereitstellungen.
  • Anwendungen skalieren: Bei Traffic-Spitzen skalieren Orchestrierungstools automatisch die Anzahl der Container, um die erhöhte Last zu bewältigen und die Verfügbarkeit der Anwendung zu gewährleisten.
  • Anwendungsupdates verwalten: Orchestrierungstools erleichtern Rolling Updates, sodass Sie neue Versionen Ihrer Anwendung ohne Ausfallzeiten bereitstellen können.
  • Hohe Verfügbarkeit sicherstellen: Wenn ein Container ausfällt, erkennen Orchestrierungstools den Fehler automatisch und starten den Container neu oder ersetzen ihn, wodurch die Ausfallsicherheit der Anwendung gewährleistet wird.
  • Optimierte Ressourcennutzung: Orchestrierungstools packen Container effizient auf verfügbare Ressourcen, maximieren die Nutzung und minimieren die Kosten.

Gleich loslegen

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

Google Cloud