Was ist ein Kubernetes-Cluster?

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:

  • Planen und Skalieren von Anwendungen
  • Aufrechterhalten des Zustands eines Clusters
  • Implementieren von Aktualisierungen

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.

 

Woraus besteht ein Kubernetes-Cluster?

 

Ein Kubernetes-Cluster besteht aus sechs Hauptkomponenten:

  1. API-Server: Diese Komponente stellt eine REST-Schnittstelle für alle Kubernetes-Ressourcen zur Verfügung. Der API-Server dient als Front-End der Kubernetes-Steuerungsebene.
  2. Scheduler: Diese Komponente platziert Container entsprechend den Ressourcenanforderungen und Kennzahlen. Der Scheduler merkt sich Pods, denen kein Knoten zugeordnet ist, und wählt Knoten aus, auf denen diese Pods ausgeführt werden sollen.
  3. Controller-Manager: Diese Komponente führt Controller-Prozesse aus und gleicht den Ist-Zustand des Clusters mit den gewünschten Spezifikationen ab. Der Controller-Manager verwaltet Controller wie Knoten-, Endpunkt- und Replikations-Controller.
  4. Kubelet: Diese Komponente interagiert mit der Docker-Engine, dem Standardprogramm zum Erstellen und Verwalten von Containern, um sicherzustellen, dass Container in einem Pod ausgeführt werden. Kubelets ermitteln anhand von PodSpecs, ob die in den PodSpecs beschriebenen Container ordnungsgemäß ausgeführt werden.
  5. Kube-Proxy: Diese Komponente verwaltet die Netzwerkkonnektivität und hält Netzwerkregeln knotenübergreifend aufrecht. Der Kube-Proxy setzt das Kubernetes Service-Konzept an jedem Knoten in einem bestimmten Cluster um.
  6. Etcd: Diese Komponente speichert alle Clusterdaten. Etcd ist ein konsistenter und hochverfügbarer Kubernetes-Backup-Speicher. 

 

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.

 

Wie werden Kubernetes-Cluster verwendet?

 

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.:

  • Anwendungen und Workloads, die ausgeführt werden sollen
  • Images, die diese Anwendungen verwenden müssen
  • Ressourcen, die für diese Anwendungen bereitgestellt werden sollen
  • Anzahl der benötigten Replikate

 

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:

  • Starten und Neustarten von Containern
  • Anpassen der Anzahl von Replikaten für eine Anwendung
  • Validieren von Container-Images
  • Starten und Verwalten von Containern
  • Implementieren von Aktualisierungen und Rollbacks

 

 

Wie wird ein Kubernetes-Cluster erstellt?

 

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.

 

Zugehörige Produkte, Lösungen und Ressourcen für VMware Kubernetes-Cluster

VMware NSX: führende Plattform zur Virtualisierung von Enterprise-Networking und -Sicherheit

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.

VMware Cloud PKS – Kubernetes-Cluster

Beschleunigen Sie Innovationen mit anwenderfreundlichen und kostengünstigen Kubernetes-Clustern.

vSphere Integrated Containers

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.

Container Networking mit VMware NSX

Stellen Sie integrierte umfassende Networking- und Sicherheitsfunktionen für Ihre containerbasierten Anwendungen und Microservices bereit.

Was ist Cloud Management Platform?

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