Der Betrieb von Hunderttausenden von Containern in einem System kann unüberschaubar werden und erfordert eine Managementlösung zur Orchestrierung.
An dieser Stelle kommt die Container-Orchestrierung zum Einsatz, die es Unternehmen ermöglicht, große Mengen in ihrem gesamten Geschäftsablauf zu verwalten, und Folgendes bietet:
- Bereitstellung
- Redundanz
- Zustandsüberwachung
- Ressourcenzuweisung
- Skalierung und Lastenausgleich
- Wechsel zwischen physischen Hosts
Neben anderen Container-Orchestrierungsplattformen (z. B. Apache Mesos, Nomad, Docker Swarm) hat sich Kubernetes zum Branchenstandard entwickelt.
Die Kubernetes-Architektur besteht aus aktiven Clustern, die es Containern ermöglichen, auf mehreren Maschinen und in verschiedenen Umgebungen ausgeführt zu werden. Jeder Cluster besteht in der Regel aus Worker-Knoten, auf denen die containerisierten Anwendungen ausgeführt werden, und Steuerungsplan-Knoten, die den Cluster steuern. Die Steuerungsebene fungiert als Orchestrator des Kubernetes-Clusters. Sie umfasst mehrere Komponenten: den API-Server (verwaltet alle Interaktionen mit Kubernetes), den Steuerungsmanager (verwaltet alle Steuerungsprozesse), den Cloud-Controller-Manager (die Schnittstelle zur API des Cloud-Providers) usw. Worker-Knoten führen Container mithilfe von Container-Laufzeiten wie Docker aus. Pods, die kleinsten bereitstellbaren Einheiten in einem Cluster, enthalten einen oder mehrere App-Container und teilen Ressourcen wie Speicher- und Netzwerkinformationen.
Kubernetes ermöglicht es Entwicklern und Betreibern, den gewünschten Zustand ihrer gesamten Containerumgebung über YAML-Dateien zu deklarieren. Anschließend übernimmt Kubernetes die gesamte Verarbeitung, um diesen Zustand einzurichten und aufrechtzuerhalten. Zu den Aktivitäten gehören das Bereitstellen einer bestimmten Anzahl von Instanzen einer bestimmten Anwendung oder Workloads, das Neustarten dieser Anwendung bei einem Ausfall, der Lastausgleich, die automatische Skalierung, Bereitstellungen ohne Ausfallzeiten und vieles mehr. Die Container-Orchestrierung mit Kubernetes ist auch für die kontinuierliche Integration und Bereitstellung (CI/CD) oder die DevOps-Pipeline von entscheidender Bedeutung – was ohne Automatisierung nicht möglich wäre.
Im Jahr 2015 spendete Google Kubernetes an die Cloud Native Computing Foundation (CNCF)8, die unter der Schirmherrschaft der Linux Foundation stehende und herstellerunabhängige Open-Source-Plattform für Cloud-Computing. Seitdem hat sich Kubernetes zum weltweit am weitesten verbreiteten Container-Orchestrierungstool für die Ausführung von containerbasierten Workloads entwickelt. Einem CNCF-Bericht9 zufolge ist Kubernetes das zweitgrößte Open-Source-Projekt der Welt (nach Linux) und das primäre Container-Orchestrierungstool für 71 % der Fortune-100-Unternehmen.