TKG-Dienst bietet Self-Service-Lebenszyklusverwaltung von Kubernetes-Arbeitslastclustern. Der TKG-Dienst mit Supervisor ist für die vSphere-Umgebung optimiert und lässt sich in die zugrunde liegende Infrastruktur, einschließlich vCenter, ESXi, virtuelle Netzwerke und Cloud Native Storage, integrieren. Mit dem TKG-Dienst können Sie konforme Kubernetes-Cluster bereitstellen und Upstream-Parallelität beibehalten.
Arbeitslastverwaltung
Die Arbeitslastverwaltung ist eine VMware-Lösung, die eine Kubernetes-Steuerungsebene in der nativen vSphere-Infrastruktur bereitstellt. Durch die Aktivierung der Arbeitslastverwaltung können Sie einen oder mehrere Supervisoren in Ihrer vSphere-Umgebung bereitstellen. Die Arbeitslastverwaltung ist im Lieferumfang von vCenter Server enthalten, aber separat lizenziert.
Supervisor
Supervisor ist ein Kubernetes-Cluster, der als Steuerungsebene für die Verwaltung von Arbeitslastclustern dient. Sie konfigurieren Supervisor zur Unterstützung von Entwicklern, die Tanzu Kubernetes Grid-Cluster bereitstellen und betreiben.
Supervisor-Bereitstellung: vSphere-Cluster
- Mehrere ESXi Hosts, die über einen vSphere Distributed Switch (VDS) verbunden sind
- Freigegebener Speicher ist konfiguriert, wie vSAN oder NFS
- vSphere HA und vollautomatisierte DRS sind aktiviert
- Lifecycle Manager ist aktiviert
- Netzwerk ist konfiguriert, entweder NSX mit eingebettetem Lastausgleichsdienst oder VDS mit externem Lastausgleichsdienst
Supervisor-Bereitstellung: vSphere-Zonen
In vSphere 8 werden vSphere-Zonen eingeführt. Sie können vSphere-Cluster zu vSphere-Zonen zuweisen, um Hochverfügbarkeit und Fault Tolerance für Supervisor bereitzustellen. Durch die Supervisor-Bereitstellung in verschiedenen vSphere-Zonen können Sie TKG-Cluster in bestimmten Verfügbarkeitszonen bereitstellen.
Bei einer Bereitstellung von Supervisor auf einem einzelnen vSphere-Cluster besteht eine 1:1-Beziehung zwischen dem Supervisor und dem vSphere-Cluster. Bei einer Zonenbereitstellung mit Supervisor erstreckt sich der Supervisor über drei vSphere-Cluster, um Hochverfügbarkeit und Fehlerdomänen für TKG-Cluster auf Supervisor bereitzustellen.
Ein vSphere-Administrator erstellt die drei vSphere-Zonen und ordnet sie einem vSphere-Cluster zu. Für eine Supervisor-Bereitstellung in drei vSphere-Zonen gelten neben den Anforderungen für vSphere-Cluster u. a. folgende spezielle Anforderungen:
- Drei vSphere-Zonen, die über einen vSphere Distributed Switch (VDS) verbunden sind
- Jede vSphere-Zone enthält einen einzelnen vSphere-Cluster
- Ein Supervisor muss für genau drei vSphere-Zonen bereitgestellt werden
- Eine vSphere-Speicherrichtlinie ist auf der vSphere-Zone verfügbar
vSphere-Namespace
Ein vSphere-Namespace ist ein Namespace auf dem Supervisor, in dem ein oder mehrere Tanzu Kubernetes Grid-Cluster bereitgestellt werden. Für jede vSphere-Namespace konfigurieren Sie rollenbasierte Zugriffssteuerung, dauerhaften Speicher, Ressourcengrenzwerte, eine Image-Bibliothek und VM-Klassen.
TKG-Dienst
TKG-Dienst ist eine Implementierung des Open Source-Cluster-API-Projekts, das einen Satz benutzerdefinierter Ressourcen und Controller definiert, um den Lebenszyklus von Kubernetes-Clustern zu verwalten. Tanzu Kubernetes Grid ist eine Komponente von Supervisor.
TKG-Dienst stellt drei Ebenen von Controllern zur Verfügung, um den Lebenszyklus von TKG-Clustern zu verwalten. Dazu zählen VM-Dienst, Cluster-API und Cloud-Anbieter-Plug-In.
- VM-Operator
- Der VM-Dienst-Controller stellt eine deklarative API im Kubernetes-Stil für die Verwaltung von VMs und zugeordneten vSphere-Ressourcen bereit. Der VM-Dienst führt das Konzept „Klassen virtueller Maschinen“ ein, die abstrakte wiederverwendbare Hardwarekonfigurationen darstellen. TKG-Dienst verwendet den VM-Dienst, um den Lebenszyklus der Steuerungsebene und der Worker-Knoten-VMs zu verwalten, die einen Arbeitslastcluster hosten.
- Cluster-API
- Der Cluster-API-Controller stellt deklarative APIs im Kubernetes-Stil für die Erstellung, Konfiguration und Verwaltung von Clustern bereit. Die Eingaben für die Cluster-API umfassen eine Ressource, die den Cluster beschreibt, eine Gruppe von Ressourcen, die die virtuellen Maschinen beschreiben, aus denen sich der Cluster zusammensetzt, sowie eine Reihe von Ressourcen, die Cluster-Add-Ons beschreiben.
- Cloud-Anbieter-Plug-In
- Der TKG-Dienst stellt Arbeitslastcluster bereit, die die Komponenten enthalten, die für die Integration der zugrunde liegenden vSphere-Namespace-Ressourcen erforderlich sind. Zu diesen Komponenten gehört ein Cloud-Anbieter-Plug-In, das in den Supervisor integriert wird. TKG verwendet das Cloud-Anbieter-Plug-In, um Anforderungen bezüglich dauerhafter Volumes an den Supervisor zu übergeben, der in den VMware Cloud Native Storage (CNS) integriert ist.
Tanzu Kubernetes-Versionen
Eine Tanzu Kubernetes-Version bietet die von VMware signierte und unterstützte Kubernetes-Softwareverteilung und Add-Ons für die Verwendung mit Tanzu Kubernetes Grid-Clustern.
Jede Tanzu Kubernetes-Version wird als VM-Vorlage (OVA-Datei) verteilt. Der Tanzu Kubernetes Grid verwendet das OVA-Format, um die Knoten der virtuellen Maschine für TKG-Cluster zu erstellen. Tanzu Kubernetes-Versionen werden entsprechend der Kubernetes-Versionsverwaltung versioniert und enthalten Betriebssystemanpassungen und Optimierungen für die vSphere-Infrastruktur.
Eine Liste der Tanzu Kubernetes-Versionen und Informationen zur Kompatibilität mit dem Supervisor finden Sie in den Versionshinweisen der Tanzu Kubernetes-Versionen. Weitere Informationen finden Sie auch in der vSphere IaaS control plane-Supportrichtlinie.
- Inhaltsbibliothek
-
Tanzu Kubernetes-Versionen werden TKG-Clustern mithilfe einer vCenter-Inhaltsbibliothek zur Verfügung gestellt. Sie können eine abonnierte Inhaltsbibliothek erstellen und automatisch TKRs empfangen, wenn sie von VMware zur Verfügung gestellt werden, oder eine lokale Inhaltsbibliothek verwenden und TKRs manuell hochladen.
TKG-Dienst-Cluster Komponenten
Die Komponenten, die in einem TKG-Dienst-Cluster ausgeführt werden, umfassen vier Bereiche des Produkts: Authentifizierung, Speicher, Netzwerk und Lastausgleich.
- Authentifizierungs-Webhook
-
Der Authentifizierungs-Webhook wird als Pod innerhalb des Clusters ausgeführt, um Benutzerauthentifizierungstoken zu validieren.
TKG-Cluster unterstützen die Authentifizierung auf zwei Arten: über vCenter Single Sign-On und über einen externen Identitätsanbieter, der das Open ID Connect (OIDC)-Protokoll unterstützt.
TKG führt den Pinniped-OIDC-Client auf Supervisor und auf TKG-Clusterknoten aus. Durch die Konfiguration eines externen OIDC-Anbieters für Supervisor werden die Pinniped-Komponenten automatisch konfiguriert.
TKG unterstützt verschiedene Clients für die Authentifizierung mit Supervisor. Dazu zählen das vSphere-Plug-In für kubectl und die Tanzu-CLI.
- Container-Speicherschnittstelle (CSI)
-
Ein paravirtuelles CSI-Plug-In ist ein Kubernetes-Pod, der in einem TKG-Cluster ausgeführt wird und in VMware Cloud Native Storage (CNS) über Supervisor integriert wird. Ein Kubernetes-Pod, der in einem TKG-Cluster ausgeführt wird, kann drei Arten von virtuellen Festplatten mounten: flüchtig, dauerhaftes Volume und Container-Image.
Flüchtige Speicherung
Ein Pod benötigt flüchtigen Speicher, um flüchtige Daten wie Kubernetes-Objekte als Protokolle, Volumes und Konfigurationszuordnungen zu speichern. Die flüchtige Speicherung wird beibehalten, solange der Pod vorhanden ist. Flüchtige Daten bleiben auch nach einem Neustart des Containers erhalten, aber sobald der Pod gelöscht wird, wird die virtuelle Festplatte, auf der die flüchtigen Daten gespeichert sind, nicht mehr angezeigt.
Dauerhafte Speicherung
TKG nutzt das vSphere-Speicherrichtlinien-Framework für die Definition von Speicherklassen und die Reservierung dauerhafter Volumes. TKG-Cluster übergeben Anforderungen bezüglich dauerhafter Volumes an den Supervisor, der in den VMware Cloud Native Storage (CNS) integriert ist. Dauerhafte Volumes werden auf Clusterknoten dynamisch mithilfe einer Speicherklasse oder manuell bereitgestellt.
Container-Image-Speicherung
Container innerhalb eines Kubernetes-Pods verwenden Images, die die auszuführende Software enthalten. Der Pod mountet Images, die von ihren Containern als virtuelle Image-Festplatten verwendet werden. Wenn der Pod seinen Lebenszyklus abgeschlossen hat, werden die virtuellen Image-Festplatten vom Pod getrennt. Kubelet ist dafür verantwortlich, Container-Images aus der Image-Registrierung abzurufen und sie in virtuelle Festplatten umzuwandeln, um sie innerhalb des Pods auszuführen.
- Container Network Interface (CNI)
-
Das Container Network Interface-Plug-In ist ein CNI-Plug-In, das Pod-Netzwerke bereitstellt.
TKG-Cluster unterstützen die folgenden Container Network Interface (CNI)-Optionen: Antrea (Standard) und Calico. Darüber hinaus stellt TKG die Antrea-NSX-geroutete CNI für die Implementierung routingfähiger Pods-Netzwerke bereit.
In der Tabelle werden Netzwerkfunktionen von TKG-Clustern und deren Implementierung zusammengefasst.
Tabelle 1. TKG-Dienst-Cluster-Netzwerk Endpoint Anbieter Beschreibung Pod-Konnektivität Antrea oder Calico Containernetzwerkschnittstelle für Pods. Antrea verwendet Open vSwitch. Calico verwendet die Linux-Bridge mit BGP. Diensttyp: ClusterIP Antrea oder Calico Standardmäßiger Kubernetes-Diensttyp, auf den nur innerhalb des Clusters zugegriffen werden kann. Diensttyp: NodePort Antrea oder Calico Ermöglicht externen Zugriff über einen Port, der vom Kubernetes-Netzwerk-Proxy auf jedem Worker-Knoten geöffnet wird. Netzwerkrichtlinie Antrea oder Calico Steuert den Datenverkehr, der von und zu ausgewählten Pods und Netzwerk-Endpoints zulässig ist. Antrea verwendet Open vSwitch. Calico verwendet Linux-IP-Tabellen. - Cloud-Anbieterimplementierung
-
Mit der Cloud-Anbieterimplementierung können Sie Kubernetes-Lastausgleichsdienste und Ingress-Dienste erstellen.
Tabelle 2. TKG-Lastausgleich Endpoint Anbieter Beschreibung Diensttyp: LoadBalancer Der eingebettete Lastausgleichsdienst (Teil des NSX-Netzwerk-Stacks)
NSX Advanced Load Balancer (separate Installation für die Verwendung mit VDS-Netzwerk)
HAProxy (separate Installation für die Verwendung mit VDS-Netzwerk)
Für den eingebetteten NSX-Lastausgleichsdienst ein virtueller Server pro Diensttypdefinition.
Weitere Informationen zu NSX Advanced Load Balancer finden Sie in diesem Abschnitt dieser Dokumentation.
Weitere Informationen zu HAProxy finden Sie in diesem Abschnitt dieser Dokumentation.
Hinweis: Einige Lastausgleichsfunktionen sind möglicherweise nicht für jeden unterstützten Lastausgleichstyp verfügbar, z. B. statische IPs.Cluster-Ingress Ingress-Controller eines Drittanbieters Bietet Routing für eingehenden Pod-Datenverkehr. Sie können jeden Ingress-Controller von Drittanbietern verwenden, wie z. B. Contour.
TKG-Dienst-Cluster-APIs
- API-Version
v1alpha3
für Tanzu Kubernetes-Cluster - API-Version
v1beta1
für Cluster basierend auf einer ClusterClass
Mit der v1alpha3-API können Sie konforme Kubernetes-Cluster des Typs TanzuKubernetesCluster
erstellen. Dieser Clustertyp ist mit gängigen Standardeinstellungen für die schnelle Bereitstellung vorkonfiguriert und kann angepasst werden. Mit der v1beta1-API können Sie basierend auf einer von VMware bereitgestellten standardmäßigen ClusterClass
konforme Kubernetes-Cluster des Typs Cluster
erstellen.
TKG-Dienst-Cluster-Clients
- vSphere Client zum Konfigurieren von Supervisor und Überwachen von bereitgestellten TKG-Clustern.
- vSphere-Plug-In für kubectl für die Authentifizierung mit Supervisor und TKG-Clustern mithilfe von vCenter Single Sign-On.
- kubectl zur deklarativen Bereitstellung und Verwaltung des Lebenszyklus von TKG-Clustern und zur Interaktion mit Supervisor.
- vSphere Docker Credential Helper, um Images in eine und aus einer Container-Registry zu übertragen.
- Tanzu-CLI für die Bereitstellung von Clustern mit Befehlen und für die Installation von Tanzu-Paketen.
- Tanzu Mission Control-Webschnittstelle für die Verwaltung von TKG-Clustern.