vSphere with Tanzu 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. Sie können den VM-Dienst verwenden, um den Lebenszyklus von virtuellen Maschinen in einem Namespace zu verwalten. Der VM-Dienst verwaltet eigenständige VMs und VMs, die die Tanzu Kubernetes Grid-Cluster bilden.

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 von Tanzu Kubernetes Grid 2 mit vSphere with Tanzu.
Der VM-Dienst verwaltet eigenständige VMs und VMs, aus denen die Tanzu Kubernetes Grid-Cluster bestehen

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 with Tanzu-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.
  • Sie haben spezifische Hardwareanforderungen für Ihr Projekt.
  • 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.

Konzepte des VM-Diensts

Um den Status einer VM zu beschreiben, die in einer virtuellen vSphere-Namespace bereitgestellt werden soll, verwenden Sie Parameter wie eine VM-Klasse, ein VM-Image und eine Speicherklasse. Der VM-Service führt dann diese Spezifikationen zusammen, um eigenständige VMs oder VMs, die Tanzu Kubernetes Grid-Cluster unterstützen, zu erstellen.

VM-Spezifikation führt VM-Klasse, VM-Image und Speicherklasse zusammen, um eine VM zu erstellen
VM-Dienst
Der VM-Dienst ist eine Komponente von vSphere with Tanzu, die eine deklarative, Kubernetes-ähnliche API für die Verwaltung von VMs und zugehörigen vSphere-Ressourcen bietet. Der VM-Service ermöglicht es den vSphere-Administratoren, Ressourcen bereitzustellen und Vorlagen wie VM-Klassen und VM-Images für Kubernetes bereitzustellen. DevOps-Ingenieure können diese Ressourcen verwenden, um den gewünschten Zustand einer VM zu beschreiben. Nachdem die DevOps-Ingenieure den VM-Zustand spezifiziert haben, wandelt der VM-Service den gewünschten Zustand in einen realisierten Zustand gegenüber den unterstützenden Infrastrukturressourcen um.

Eine über den VM-Dienst erstellte VM kann nur aus dem Kubernetes-Namespace mit den kubectl-Befehlen verwaltet werden. vSphere-Administratoren können die VM nicht von der vSphere Client aus verwalten, können aber ihre Details anzeigen und die von ihr verwendeten Ressourcen überwachen. Weitere Informationen finden Sie unter Überwachen der in vSphere with Tanzu verfügbaren virtuellen Maschinen.

VM-Klasse
Die VM-Klasse ist eine VM-Spezifikation, mit der eine Gruppe von Ressourcen für eine VM angefordert werden kann. Die VM-Klasse wird von einem vSphere-Administrator kontrolliert und verwaltet und definiert Parameter wie die Anzahl der virtuellen CPUs, die Arbeitsspeicherkapazität und die Reservierungseinstellungen. Die definierten Parameter werden durch die zugrunde liegenden Infrastrukturressourcen eines Supervisors unterstützt und garantiert.

Ein vSphere-Administrator kann benutzerdefinierte VM-Klassen erstellen.

Darüber hinaus bietet die Arbeitslastverwaltung mehrere Standard-VM-Klassen. In der Regel gibt es jeden Standardklassentyp in zwei Editionen: garantiert und bestmöglich. Eine garantierte Edition reserviert vollständig die Ressourcen, die eine VM-Spezifikation anfordert. Für eine bestmögliche Klassenedition gilt dies nicht; das bedeutet, dass die Ressourcen überbelegt werden können. In der Regel wird ein garantierter Typ in einer Produktionsumgebung verwendet.

Beispiele für Standard-VM-Klassen sind die folgenden.

Klasse CPU Arbeitsspeicher (GB) Reservierte CPU und reservierter Arbeitsspeicher
guaranteed-large 4 16 Ja
best-effort-large 4 16 Nein
guaranteed-small 2 4 Ja
best-effort-small 2 4 Nein

Der vSphere-Administrator kann eine beliebige Anzahl vorhandener VM-Klassen zuweisen, um sie für DevOps-Ingenieure innerhalb eines bestimmten Namespaces zur Verfügung zu stellen.

Die VM-Klasse bietet eine vereinfachte Erfahrung für die DevOps-Ingenieure. Die DevOps müssen nicht die vollständige Konfiguration jeder VM verstehen, die sie erstellen möchten. Stattdessen können sie eine VM-Klasse aus den verfügbaren Optionen auswählen, und der VM-Dienst verwaltet die VM-Konfiguration.

Auf der Kubernetes-Seite werden die VM-Klassen als VirtualMachineClass- und VirtualMachineClassBinding-Ressourcen angezeigt.

VM-Image
Ein VM-Image ist eine Vorlage, die eine Softwarekonfiguration enthält, einschließlich Betriebssystem, Anwendungen und Daten.

Wenn DevOps-Ingenieure VMs erstellen, können sie Images aus der Inhaltsbibliothek auswählen, die dem Namespace zugeordnet ist. Für die DevOps werden die Images als VirtualMachineImage zur Verfügung gestellt.

Ein vSphere-Administrator kann VM-Images erstellen, die mit vSphere with Tanzu kompatibel sind, und sie in eine Inhaltsbibliothek hochladen.

Inhaltsquelle
Ein DevOps-Ingenieur verwendet eine Inhaltsbibliothek als Quelle von Images, um eine VM zu erstellen. Ähnlich wie VM-Klassen kann ein vSphere-Administrator vorhandene Inhaltsbibliotheken einem Namespace zuweisen, um sie DevOps-Ingenieuren zur Verfügung zu stellen.
Speicherklasse
Der VM-Dienst verwendet Speicherklassen zum Platzieren virtueller Festplatten und zum dynamischen Anhängen persistenter Volumes. Weitere Informationen zu Speicherklassen finden Sie unter Verwenden von dauerhaftem Speicher in vSphere with Tanzu.
VM-Spezifikation
DevOps-Ingenieure beschreiben den gewünschten Zustand einer VM in einer YAML-Datei, die das VM-Image, die VM-Klasse und die Speicherklasse zusammenführt.
Netzwerk
Der VM-Dienst hat keine spezifischen Anforderungen und basiert auf der netzwerkspezifischen Konfiguration, die in vSphere with Tanzu zur Verfügung steht. Der VM-Dienst unterstützt beide Netzwerktypen, das vSphere-Netzwerk oder NSX. Wenn VMs bereitgestellt werden, teilt ein verfügbarer Netzwerkanbieter den VMs statische IP-Adressen zu. Weitere Informationen finden Sie unter Supervisor-Netzwerk in der Dokumentation zum Thema vSphere with Tanzu-Konzepte und -Planung.

VM-Dienst und Supervisor mit vSphere-Zonen

Wenn Sie VMs auf einem Supervisor mit drei Zonen erstellen, wird die VM-Instanz über alle verfügbaren Zonen hinweg repliziert. Zum Steuern der Platzierung der VMs über die YAML-Datei kann das DevOps-Team die Kubernetes-Bezeichnung topology.kubernetes.io/zone verwenden. Beispiel: topology.kubernetes.io/zone: zone-a02.

Workflow für die Bereitstellung und Überwachung einer VM

Als vSphere-Administrator legen Sie Leitlinien für die Richtlinie und Governance der VMs fest und stellen VM-Ressourcen wie VM-Klassen und VM-Vorlagen an DevOps-Ingenieure bereit. Nach der Bereitstellung einer VM können Sie sie mithilfe des vSphere Client überwachen.

Schritt Durchgeführt von Beschreibung
1 vSphere-Administrator Inhaltsbibliotheken erstellen und sie einem Namespace zuweisen
2 vSphere-Administrator Eine VM-Klasse erstellen und sie einem Namespace zuweisen

Konfigurieren Sie für die Verwendung von NVIDIA vGPU ein PCI-Gerät in der VM-Klasse. Weitere Informationen finden Sie unter Hinzufügen von PCI-Geräten zu einer VM-Klasse in vSphere with Tanzu.

3 DevOps-Ingenieur Eine VM in einem Kubernetes-Namespace bereitstellen

Informationen zu Tanzu Kubernetes Grid-Cluster-VMs finden Sie unter Verwenden von Tanzu Kubernetes Grid 2 mit vSphere with Tanzu.

4 vSphere-Administrator Bereitgestellte VMs überwachen