Sie können vSphere IaaS control plane verwenden, um vSphere in eine Plattform zur nativen Ausführung von Kubernetes-Arbeitslasten auf der Hypervisor-Schicht umzuwandeln. Bei Aktivierung auf vSphere-Clustern bietet vSphere IaaS control plane die Möglichkeit, Kubernetes-Arbeitslasten direkt auf ESXi-Hosts auszuführen und Upstream-Kubernetes-Cluster in dedizierten Namespaces zu erstellen, die als vSphere-Namespace bezeichnet werden.

Herausforderungen des heutigen Anwendungsstapels

Die heutigen verteilten Systeme bestehen aus mehreren Mikrodiensten, in denen in der Regel eine Vielzahl von Kubernetes-Pods und VMs ausgeführt werden. Ein typischer Stack, der nicht auf vSphere IaaS control plane basiert, besteht aus einer zugrunde liegenden virtuellen Umgebung mit einer Kubernetes-Infrastruktur, die innerhalb von VMs bereitgestellt wird, bzw. Kubernetes-Pods, die auch auf diesen VMs ausgeführt werden. Jeder Teil des Stacks wird von einer von drei separaten Rollen ausgeführt: Anwendungsentwickler, Kubernetes-Cluster-Administratoren und vSphere-Administratoren.

Abbildung 1. Heutiger Anwendungsstapel
Ein Stack mit 3 Ebenen – Kubernetes-Arbeitslast, Kubernetes-Cluster, virtuelle Umgebung. Sie werden anhand von drei Rollen verwaltet – Entwickler, Clusteradministrator, vSphere-Administrator.
Die verschiedenen Rollen verfügen über keinen Einblick oder Kontrolle über die Umgebungen der jeweils anderen.
  • Als Anwendungsentwickler können Sie Kubernetes-Pods ausführen und auf Kubernetes basierte Anwendungen bereitstellen und verwalten. Sie haben keinen Überblick über den gesamten Stack, auf dem Hunderte von Anwendungen ausgeführt werden.
  • Als DevOps-Ingenieur oder Cluster-Administrator haben Sie nur die Kontrolle über die Kubernetes-Infrastruktur, ohne die Tools zum Verwalten oder Überwachen der virtuellen Umgebung und zur Behebung von ressourcenbezogenen und anderen Problemen.
  • Als vSphere-Administrator haben Sie die volle Kontrolle über die zugrunde liegende virtuelle Umgebung, aber keinen Einblick in die Kubernetes-Infrastruktur, die Platzierung der verschiedenen Kubernetes-Objekte in der virtuellen Umgebung und deren Ressourcenverbrauch.

Die Ausführung von Vorgängen im gesamten Stack kann schwierig sein, da hierzu Kommunikation zwischen allen drei Rollen erforderlich ist. Auch die fehlende Integration zwischen den verschiedenen Schichten des Stacks kann Herausforderungen mit sich bringen. So hat der Kubernetes Scheduler beispielsweise keinen Einblick in die vCenter Server-Bestandsliste und kann Pods nicht intelligent platzieren.

Wie hilft vSphere IaaS control plane?

vSphere IaaS control plane erstellt eine Kubernetes-Steuerungsebene direkt auf der Hypervisor-Schicht. Als vSphere-Administrator aktivieren Sie vorhandene vSphere-Cluster für die vSphere IaaS control plane und erstellen so eine Kubernetes-Schicht innerhalb der ESXi-Hosts, die Teil der Cluster sind. Die für die vSphere IaaS control plane aktivierten vSphere-Cluster werden als Supervisoren bezeichnet.

Abbildung 2. vSphere IaaS control plane

Der IaaS-Plattform-Stack mit Arbeitslasten befindet sich oben. Der Stack für die virtuelle Umgebung befindet sich unten. Sie werden anhand von zwei Rollen verwaltet: Entwickler und vSphere-Administrator.
Wenn eine Kubernetes-Steuerungsebene auf der Hypervisor-Schicht vorhanden ist, werden die folgenden Funktionen in vSphere ermöglicht:
  • Als vSphere-Administrator können Sie Namespaces für Supervisor, die als vSphere-Namespaces bezeichnet werden, erstellen und mit Arbeitsspeicher und Speicher sowie CPU im angegebenen Umfang konfigurieren. Sie stellen diese vSphere-Namespaces den DevOps-Ingenieuren zur Verfügung.
  • Als DevOps-Ingenieur können Sie Kubernetes-Arbeitslasten auf derselben Plattform mit gemeinsam genutzten Ressourcenpools innerhalb eines vSphere-Namespace ausführen. Sie können mehrere mit Tanzu Kubernetes Griderstellte Upstream-Kubernetes-Cluster bereitstellen und verwalten. Kubernetes-Container können Sie auch direkt auf dem Supervisor innerhalb eines speziellen VM-Typs mit der Bezeichnung vSphere Pod bereitstellen. Sie können auch reguläre VMs bereitstellen.
  • Als vSphere-Administrator können Sie vSphere-Pods, VMs und Tanzu Kubernetes Grid-Cluster mit dem vSphere Client verwalten und überwachen.
  • Als vSphere-Administrator haben Sie vollständigen Einblick in vSphere-Pods, VMs und Tanzu Kubernetes Grid-Cluster, die in unterschiedlichen Namespaces ausgeführt werden, deren Platzierung in der Umgebung und deren Ressourcenverbrauch.

Die Verwendung von Kubernetes auf der Hypervisor-Schicht erleichtert auch die Zusammenarbeit zwischen vSphere-Administratoren und DevOps-Teams, da beide Rollen mit denselben Objekten arbeiten.

Was ist eine Arbeitslast?

In vSphere IaaS control plane sind Arbeitslasten Anwendungen, die auf eine der folgenden Arten bereitgestellt werden:

  • Anwendungen, die aus Containern bestehen, die innerhalb von vSphere-Pods ausgeführt werden.
  • Über den VM-Dienst bereitgestellte Arbeitslasten.
  • Tanzu Kubernetes Grid-Cluster, die mithilfe von Tanzu Kubernetes Grid bereitgestellt werden.
  • Anwendungen, die innerhalb der Tanzu Kubernetes Grid-Cluster ausgeführt werden.

Was sind vSphere-Zonen?

vSphere-Zonen bieten Hochverfügbarkeit gegen Ausfälle auf Clusterebene bei Arbeitslasten, die auf vSphere IaaS control plane bereitgestellt werden. Als vSphere-Administrator erstellen Sie vSphere-Zonen im vSphere Client und ordnen dann den Zonen vSphere-Cluster zu. Sie verwenden die Zonen zum Bereitstellen von Supervisoren in Ihrer vSphere IaaS control plane-Umgebung.

Für Hochverfügbarkeit auf Clusterebene können Sie einen Supervisor in drei vSphere-Zonen bereitstellen. Alternativ haben Sie die Möglichkeit, einen Supervisor auf einem einzelnen vSphere-Cluster bereitzustellen, der automatisch eine vSphere-Zone erstellt und diese dem Cluster zuweist, oder Sie können einen Cluster verwenden, der bereits einer Zone zugeordnet ist. Weitere Informationen finden Sie unter Supervisor – Architektur und Supervisor-Bereitstellungen mit Zonen und Clustern.

Was ist ein Tanzu Kubernetes Grid-Cluster?

Ein Tanzu Kubernetes Grid-Cluster ist eine vollständige Distribution von Kubernetes, die von VMware als Paket erstellt, signiert und unterstützt wird. Sie können Upstream-Tanzu Kubernetes Grid-Cluster mithilfe von Tanzu Kubernetes Grid auf Supervisorenn bereitstellen und betreiben.

Ein Tanzu Kubernetes Grid-Cluster, der von Tanzu Kubernetes Grid bereitgestellt wird, weist die folgenden Merkmale auf:
TKG-Clustermerkmale von links nach rechts – personalisiert, umfassend integriert, produktionsbereit, vollständig unterstützt, von Kubernetes verwaltet
  • Personalisierte Installation von Kubernetes. Tanzu Kubernetes Grid bietet durchdachte Standardeinstellungen, die für vSphere zur Bereitstellung von Tanzu Kubernetes Grid-Clustern optimiert sind. Mithilfe von Tanzu Kubernetes Grid können Sie die Zeit und den Aufwand reduzieren, die Sie normalerweise für die Bereitstellung und Ausführung eines unternehmensgerechten Kubernetes-Clusters investieren müssen.
  • Integriert in die vSphere-Infrastruktur. Ein Tanzu Kubernetes Grid-Cluster ist in den vSphere SDDC-Stack integriert, einschließlich Speicher, Netzwerk und Authentifizierung. Darüber hinaus wird ein Tanzu Kubernetes Grid-Cluster in einem Supervisor erstellt, der vSphere-Clustern zugeordnet ist. Aufgrund der engen Integration bietet der Tanzu Kubernetes Grid-Cluster bei der Ausführung eine einheitliche Produkterfahrung.
  • Für die Produktion geeignet. Tanzu Kubernetes Grid stellt für die Produktion geeignete Tanzu Kubernetes Grid-Cluster bereit. Sie können Produktionsarbeitslasten ohne zusätzliche Konfiguration ausführen. Darüber hinaus können Sie Verfügbarkeit sicherstellen, parallele Upgrades der Kubernetes-Software zulassen und verschiedene Versionen von Kubernetes in separaten Clustern ausführen.
  • Hochverfügbarkeit für Kubernetes-Arbeitslasten. Tanzu Kubernetes Grid-Cluster, die in einem Supervisor mit drei vSphere-Zonen bereitgestellt werden, sind auf vSphere-Clusterebene vor Ausfällen geschützt. Die Arbeitslast- und Steuerungsebenenknoten von Tanzu Kubernetes Grid-Clustern sind über alle drei vSphere-Zonen verteilt, sodass die darin ausgeführten Kubernetes-Arbeitslasten hochverfügbar sind. Tanzu Kubernetes Grid-Cluster, die in einem Supervisor mit einer Zone ausgeführt werden, sind durch vSphere HA auf ESXi-Hostebene vor Ausfällen geschützt.
  • Vollständig unterstützt von VMware. Tanzu Kubernetes Grid-Cluster verwenden das Open Source- und Linux-basierte Betriebssystem von VMware, werden auf einer vSphere-Infrastruktur bereitgestellt und werden auf ESXi-Hosts ausgeführt. Wenn Probleme mit einer beliebigen Schicht des Stacks – von Hypervisor bis zum Kubernetes-Cluster – auftreten, ist VMware der einzige Anbieter, den Sie kontaktieren müssen.
  • Von Kubernetes verwaltet. Tanzu Kubernetes Grid-Cluster werden zusätzlich zum Supervisor erstellt, der selbst ein Kubernetes-Cluster ist. Ein Tanzu Kubernetes Grid-Cluster wird mithilfe einer benutzerdefinierten Ressource im vSphere-Namespace definiert. Sie stellen Tanzu Kubernetes Grid-Cluster mithilfe von bekannten kubectl-Befehlen und der Tanzu-CLI als Self-Service-Komponenten bereit. In der gesamten Toolkette besteht Konsistenz, und zwar unabhängig davon, ob Sie einen Cluster oder Arbeitslasten bereitstellen. Sie verwenden dieselben Befehle, die schon bekannte YAML-Auszeichnungssprache und gängige Workflows.

Weitere Informationen finden Sie unter Tanzu Kubernetes Grid-Architektur und ‑Komponenten und Verwenden des TKG-Dienstes mit der vSphere IaaS-Steuerungsebene.

Was ist ein vSphere Pod?

vSphere IaaS control plane führt ein Konstrukt mit dem Namen vSphere Pod ein, das einem Kubernetes-Pod entspricht. Eine vSphere Pod ist eine VM mit einem kleinen Footprint, die einen oder mehrere Linux-Container ausführt. Jede vSphere Pod wird genau für die Arbeitslast angepasst, die sie unterstützt, und weist explizite Ressourcenreservierungen für diese Arbeitslast auf. Sie weist die genaue Menge an Speicherplatz, Arbeitsspeicher und CPU-Ressourcen zu, die für die Ausführung der Arbeitslast erforderlich ist. vSphere-Pods werden nur mit Supervisoren unterstützt, die mit NSX als Netzwerk-Stack konfiguriert sind.

Abbildung 3. vSphere-Pods
ESXi-Host mit zwei vSphere-Pod-Feldern. Alle vSphere-Pods verfügen über Container, die innerhalb von ihnen ausgeführt werden, ein Linux-Kernel, Arbeitsspeicher, CPU und Speicherressourcen.
vSphere-Pods sind Objekte in vCenter Server. Sie ermöglichen die folgenden Funktionen für Arbeitslasten:
  • Starke Isolierung. Ein vSphere Pod wird in gleicher Weise wie eine virtuelle Maschine isoliert. Jeder vSphere Pod hat seinen eigenen Linux-Kernel, der auf dem im Photon OS verwendeten Kernel basiert. Statt dass viele Container einen Kernel teilen, wie in einer Bare-Metal-Konfiguration, hat in einem vSphere Pod jeder Container einen eindeutigen Linux-Kernel.
  • Ressourcenverwaltung. vSphere DRS übernimmt die Platzierung von vSphere-Pods im Supervisor.
  • Hochleistung. vSphere-Pods erhalten die gleiche Ressourcenisolierung wie VMs und eliminieren Störungen durch benachbarte Elemente, während die schnelle Startzeit und der geringe Overhead von Containern beibehalten werden.
  • Diagnose. Als vSphere-Administrator können Sie alle Überwachungs- und Selbstprüfungs-Tools verwenden, die in vSphere für Arbeitslasten verfügbar sind.
vSphere-Pods sind OCI-kompatibel (Open Container Initiative) und können Container von jedem Betriebssystem aus ausführen, solange diese Container ebenfalls OCI-kompatibel sind.
Abbildung 4. vSphere Pod Netzwerk und Speicher
vSphere Pod mit Containern, Container-Engine und Pod-Engine in seinem Inneren. Der Pod stellt eine Verbindung zu Container-Image, Speicher, NSX-Switch, Spherelet und hostd her.

vSphere-Pods verwenden drei Speichertypen, je nachdem, welche Objekte gespeichert sind: flüchtige VMDKs, dauerhafte Volume-VMDKs und Container-Image-VMDKs. Als vSphere-Administrator konfigurieren Sie Speicherrichtlinien für die Platzierung von Container-Image-Cache und flüchtigen VMDKs auf der Supervisor-Ebene. Auf vSphere-Namespace-Ebene konfigurieren Sie Speicherrichtlinien für die Platzierung persistenter Volumes. Weitere Informationen zu den Speicheranforderungen und Konzepten für vSphere IaaS control plane finden Sie unter Persistenter Speicher für Arbeitslasten.

Für Netzwerke verwenden vSphere-Pods und die VMs der Tanzu Kubernetes Grid-Cluster die von NSX bereitgestellte Topologie. Weitere Informationen finden Sie unter Supervisor-Netzwerk.

Spherelet ist ein zusätzlicher Prozess, der auf jedem Host erstellt wird. Es handelt sich um ein Kubelet, das nativ auf ESXi portiert wird und dem ESXi-Host ermöglicht, Teil des Kubernetes-Clusters zu werden.

Informationen zur Verwendung von vSphere-Pods auf Supervisoren finden Sie unter Bereitstellen von Arbeitslasten in vSphere Pods in der Dokumentation Dienste und Arbeitslasten der vSphere IaaS-Steuerungsebene.

Verwenden von virtuellen Maschinen in vSphere IaaS control plane

vSphere IaaS control plane bietet eine VM-Service-Funktionalität, die es DevOps-Ingenieuren ermöglicht, neben Containern auch VMs in einer gemeinsamen, freigegebenen Kubernetes-Umgebung bereitzustellen und auszuführen. Sowohl Container als auch VMs nutzen dieselben vSphere-Namespace-Ressourcen und können über eine einzelne vSphere IaaS control plane-Schnittstelle verwaltet werden.

Der VM-Dienst adressiert die Bedürfnisse von DevOps-Teams, die Kubernetes nutzen, aber bestehende VM-basierte Arbeitslasten haben, die nicht einfach containerisiert werden können. Es hilft Anwendern auch, den Aufwand für die Verwaltung einer Nicht-Kubernetes-Plattform neben einer Container-Plattform zu reduzieren. Wenn Container und VMs auf einer Kubernetes-Plattform ausgeführt werden, können DevOps-Teams ihren Arbeitslastbedarf auf nur einer Plattform konsolidieren.

Hinweis: Zusätzlich zu eigenständigen VMs verwaltet der VM-Dienst die VMs, die die Tanzu Kubernetes Grid-Cluster bilden. Informationen über Cluster finden Sie in der Dokumentation zum Thema Verwenden des TKG-Dienstes mit der vSphere IaaS-Steuerungsebene.
Die Abbildung zeigt den VM-Dienst als Supervisor-Komponente für das Verwalten von eigenständigen VMs und von VMs, die die Tanzu Kubernetes Grid-Cluster bilden.

Jede VM, die über den VM-Dienst bereitgestellt wird, funktioniert als vollständige Maschine, auf der alle Komponenten, einschließlich eines eigenen Betriebssystems, in der vSphere IaaS control plane-Infrastruktur ausgeführt werden. Die VM hat Zugriff auf Netzwerke und Speicher, die ein Supervisor bereitstellt, und wird mithilfe des standardmäßigen Kubernetes-Befehls kubectl verwaltet. Die VM wird als vollständig isoliertes System ausgeführt, das immun gegen Störungen durch andere VMs oder Arbeitslasten in der Kubernetes-Umgebung ist.

Wann werden virtuelle Maschinen auf einer Kubernetes-Plattform verwendet?

Im Allgemeinen hängt die Entscheidung zum Ausführen von Arbeitslasten in einem Container oder in einer VM von Ihren geschäftlichen Anforderungen und Zielen ab. Zu den Gründen für den Einsatz von VMs zählen unter anderem die folgenden:

  • Ihre Anwendungen können nicht containerisiert werden.
  • Anwendungen sind für einen benutzerdefinierten Kernel oder ein benutzerdefiniertes Betriebssystem konzipiert.
  • Anwendungen sind besser für die Ausführung in einer VM geeignet.
  • Sie wünschen sich ein konsistentes Kubernetes-Erlebnis und möchten Overhead vermeiden. Anstatt separate Infrastruktursätze für Ihre Nicht-Kubernetes- und Container-Plattformen zu betreiben, können Sie diese Stacks konsolidieren und mit einem vertrauten kubectl-Befehl verwalten.

Informationen zum Bereitstellen und Verwalten eigenständiger virtueller Maschinen auf einem Supervisor finden Sie in der Dokumentation Dienste und Arbeitslasten der vSphere IaaS-Steuerungsebene im Thema über das Bereitstellen und Verwalten von virtuellen Maschinen.

Bereitstellung von Supervisor-Dienste in vSphere IaaS control plane

Supervisor-Dienste sind vSphere-zertifizierte Kubernetes-Operatoren, die Infrastructure-as-a-Service-Komponenten und eng integrierte Dienste von unabhängigen Softwareanbietern für Entwickler bereitstellen. Sie können Supervisor-Dienste in der vSphere IaaS control plane-Umgebung installieren und verwalten, um sie für die Verwendung mit Kubernetes-Arbeitslasten verfügbar zu machen. Wenn Supervisor-Dienste in Supervisoren installiert werden, können DevOps-Ingenieure über die Dienst-APIs Instanzen in Supervisoren in ihren Benutzer-Namespaces erstellen. Diese Instanzen können dann in vSphere-Pods und Tanzu Kubernetes Grid-Clustern verwendet werden.

Weitere Informationen zu den unterstützten Supervisor-Dienste und zur Vorgehensweise beim Herunterladen ihrer YAML-Dienstdateien finden Sie unter http://vmware.com/go/supervisor-service.

Informationen zur Verwendung der Supervisor-Dienste finden Sie in der Dokumentation zur Verwaltung von Supervisor-DienstenDienste und Arbeitslasten der vSphere IaaS-Steuerungsebene.