Ein Kubernetes-Cluster ist eine Gruppe von Knoten, auf denen containerbasierte Anwendungen ausgeführt werden. Dabei handelt es sich um Bündelungen einer Anwendung mit ihren Abhängigkeiten und einigen erforderlichen Services in einem Paket. Sie sind leichter und flexibler als virtuelle Maschinen. Daher können Anwendungen mithilfe von Kubernetes-Clustern leichter entwickelt, verlagert und verwaltet werden.
Dank Kubernetes-Clustern können Container über mehrere Rechner hinweg und in mehreren Umgebungen ausgeführt werden: virtuell, physisch, Cloud-basiert und On-Premises. Im Gegensatz zu virtuellen Maschinen sind Kubernetes-Container nicht auf ein bestimmtes Betriebssystem beschränkt. Stattdessen können sie Betriebssysteme gemeinsam nutzen und überall ausgeführt werden.
Kubernetes-Cluster bestehen aus einem Master-Knoten und mehreren Worker-Knoten. Diese Knoten können abhängig vom Cluster entweder physische Computer oder virtuelle Maschinen sein.
Der Master-Knoten regelt den Zustand des Clusters, z.B. welche Anwendungen ausgeführt werden und welche Container-Images den Anwendungen zugeordnet sind. Der Master-Knoten ist die Ausgangsbasis für alle Aufgabenzuordnungen. Er koordiniert unter anderem folgende Prozesse:
Worker-Knoten sind Komponenten, die diese Anwendungen ausführen. Sie führen die vom Master-Knoten zugewiesenen Aufgaben aus. Es kann sich entweder um virtuelle Maschinen oder um physische Computer handeln, die alle als Komponenten eines Systems arbeiten.
Ein Kubernetes-Cluster ist nur dann betriebsfähig, wenn er mindestens einen Master-Knoten und einen Worker-Knoten umfasst. Für Produktion und Staging wird der Cluster auf mehrere Worker-Knoten verteilt. Für Tests können die Komponenten alle auf demselben physischen oder virtuellen Knoten ausgeführt werden.
Mithilfe eines Namespace können Kubernetes-Anwender viele verschiedene Cluster innerhalb eines einzigen physischen Clusters organisieren. Namespaces nutzen Ressourcenkontingente, um die Aufteilung von Cluster-Ressourcen innerhalb des physischen Clusters auf verschiedene Teams zu unterstützen. Aus diesem Grund sind sie besonders für Situationen geeignet, die komplexe Projekte oder mehrere Teams umfassen.
Ein Kubernetes-Cluster besteht aus sechs Hauptkomponenten:
Diese sechs Komponenten können unter Linux oder als Docker-Container ausgeführt werden. API-Server, Scheduler und Controller-Manager werden vom Master-Knoten ausgeführt, die Ausführung von Kubelet und Kube-Proxy erfolgt durch die Worker-Knoten.
Wenn Sie einen Kubernetes-Cluster verwenden möchten, müssen Sie zunächst seinen gewünschten Zustand bestimmen. Der gewünschte Zustand eines Kubernetes-Clusters definiert viele Elemente der Betriebsabläufe. Hierzu gehören u.a.:
Bei der Definition eines gewünschten Zustands werden JSON- oder YAML-Dateien (sogenannte Manifeste) verwendet, um Anwendungstyp und Anzahl der für die Ausführung des Systems erforderlichen Replikate anzugeben.
Entwickler verwenden die Kubernetes-API, um den gewünschten Zustand eines Clusters zu definieren. Für diese Entwicklerinteraktion wird die Befehlszeilenschnittstelle (kubectl) oder die API verwendet. So können Entwickler direkt mit dem Cluster interagieren und den gewünschten Zustand manuell festlegen. Der Master-Knoten kommuniziert dann den gewünschten Zustand über die API an die Worker-Knoten.
Kubernetes verwaltet Cluster automatisch so, dass sie über die Kubernetes-Steuerungsebene auf ihren gewünschten Zustand abgestimmt werden. Zu den Verantwortlichkeiten einer Kubernetes-Steuerungsebene gehören die Planung von Cluster-Aktivitäten sowie die Erkennung von und Reaktion auf Cluster-Ereignisse.
Die Kubernetes-Steuerungsebene führt kontinuierliche Regelkreise aus, um die Übereinstimmung von Ist-Zustand und gewünschtem Zustand des Clusters sicherzustellen. Wenn Sie beispielsweise eine Anwendung bereitstellen, die mit fünf Replikaten ausgeführt werden soll, und eines dieser Replikate abstürzt, erkennt die Kubernetes-Steuerungsebene diesen Absturz. Sie stellt dann ein weiteres Replikat bereit, sodass der gewünschte Zustand von fünf Replikaten erhalten bleibt.
Automatisierung erfolgt über den Pod Lifecycle Event Generator (PLEG). Zu diesen automatischen Aufgaben gehören u.a. die folgenden:
Kubernetes-Cluster können entweder auf einem physischen Computer oder auf einer virtuellen Maschine erstellt und bereitgestellt werden. Neuen Anwendern wird empfohlen, Kubernetes-Cluster mithilfe von Minikube zu erstellen. Dieses Open Source-Tool ist mit den Betriebssystemen Linux, Mac und Windows kompatibel. Mithilfe von Minikube können Sie einen einfachen, optimierten Cluster, der nur einen Worker-Knoten enthält, erstellen und bereitstellen.
Darüber hinaus können Sie die Cluster-Skalierung mithilfe von Kubernetes-Mustern automatisch verwalten. Kubernetes-Muster erleichtern die Wiederverwendung von Cloud-basierten Architekturen für containerbasierte Anwendungen. Kubernetes stellt zwar eine Reihe nützlicher APIs zur Verfügung, bietet jedoch keine Richtlinien für die erfolgreiche Integration dieser Tools in ein Betriebssystem. Kubernetes-Muster bieten eine konsistente Methode für den Zugriff auf und die Wiederverwendung von Kubernetes-Architekturen. Anstatt diese Strukturen selbst zu erstellen, können Sie auf ein wiederverwendbares Netzwerk von Blueprints für Kubernetes-Cluster zurückgreifen.
VMware NSX Data Center bietet eine komplette L2-L7-Plattform für Networking- und Sicherheitsvirtualisierung, mit der Sie das gesamte Netzwerk über eine zentrale Oberfläche verwalten können.
Beschleunigen Sie Innovationen mit anwenderfreundlichen und kostengünstigen Kubernetes-Clustern.
Stellen Sie mithilfe von vSphere Integrated Containers eine Container-Infrastruktur der Enterprise-Klasse bereit, damit das IT-Operations-Team herkömmliche und containerbasierte Anwendungen gleichzeitig auf einer gemeinsamen Plattform ausführen kann.
Stellen Sie integrierte umfassende Networking- und Sicherheitsfunktionen für Ihre containerbasierten Anwendungen und Microservices bereit.
Mit VMware Cloud Management Platform können Sie Hybrid-Umgebungen (Multi-Cloud) verwalten, in denen herkömmliche oder containerbasierte (cloudnative) Workloads ausgeführt werden. Weitere Informationen