In diesem Thema wird erläutert, wie Sie Tanzu Kubernetes Grid (TKG)-Arbeitslastcluster mithilfe einer flachen Konfigurationsdatei oder einer Objektspezifikation im Kubernetes-Stil konfigurieren. Spezifische Anweisungen für IaaS finden Sie unter:
Wie Sie einen Arbeitslastcluster konfigurieren, hängt vom Clustertyp ab, wie in den folgenden Abschnitten beschrieben.
Klassenbasierte Cluster (des Standardtyps) verwenden eine Objektspezifikation im Kubernetes-Stil für das Cluster
-Objekt. Um einen klassenbasierten Cluster zu erstellen, übergeben Sie entweder diese Objektspezifikation oder eine Clusterkonfigurationsdatei mit einer flachen Struktur, die Variablen in Großbuchstaben und mit Unterstrichen wie CLUSTER_NAME
festlegt, an tanzu cluster create
.
ClusterBootstrap
und Objekte, auf die sie verweist, erforderlich.(Legacy-Typen) Planbasierte und TKC-Cluster verwenden eine Clusterkonfigurationsdatei mit flacher Struktur, die Variablen in Großbuchstaben und mit Unterstrichen wie CLUSTER_NAME
festlegt. Um einen Legacy-Cluster zu erstellen, übergeben Sie diese Konfigurationsdatei an tanzu cluster create
.
ytt
finden Sie unter Installieren der Carvel-Tools.Weitere Informationen zu den oben genannten Clustertypen und den verwendeten Cluster-API-Anbietern finden Sie unter:
kubectl
.Informationen dazu, welche Konfigurationsdatei Sie für Ihren Arbeitslastcluster auswählen sollten, finden Sie in der folgenden Tabelle.
Sie können eine … mit Tanzu CLI verwenden | um Arbeitslastcluster von folgendem Typ zu erstellen… | in der Infrastruktur… |
---|---|---|
Clusterkonfigurationsdatei mit flacher Struktur |
|
|
Objektspezifikation im Kubernetes-Stil | Klassenbasierte Cluster | vSphere 8 mit Supervisor: vSphere 7 und 8 mit einem eigenständigen Verwaltungscluster; AWS; und Azure |
Sie können eine Clusterkonfigurationsdatei verwenden, um die folgenden Clustertypen zu konfigurieren:
Klassenbasierte Cluster: Dazu gehören Bereitstellungen für:
Wenn Sie eine klassenbasierte Arbeitslast in vSphere 8 mit Supervisor bereitstellen möchten, müssen Sie sie über eine Objektspezifikation bereitstellen, wie unter Konfigurieren eines mit Supervisor bereitgestellten klassenbasierten Clusters (nur vSphere 8) beschrieben.
(Legacy) Planbasierte und TKC-Cluster: Dazu gehören Bereitstellungen für:
Bevor Sie einen Arbeitslastcluster in vSphere, AWS oder Azure bereitstellen, erstellen Sie eine Konfigurationsdatei für den Cluster. Wenn Sie diese Datei an die Option --file
von tanzu cluster create
übergeben, verwendet die Tanzu CLI die in der Datei definierten Konfigurationsinformationen, um eine Verbindung zur Zielplattform herzustellen und die vom Cluster verwendeten Ressourcen zu erstellen.
Um eine Clusterkonfigurationsdatei zu erstellen, können Sie eine vorhandene Konfigurationsdatei für eine vorherige Bereitstellung kopieren und aktualisieren. Alternativ können Sie eine Datei mithilfe einer leeren Vorlage von Grund auf neu erstellen:
Informationen zum Festlegen der für Ihre Infrastruktur relevanten Konfigurationsinformationen finden Sie unter:
Eine vollständige Liste der Optionen, die Sie in der Clusterkonfigurationsdatei angeben können, finden Sie unter Referenz für die Variablen der Konfigurationsdatei.
Wenn Sie einen Arbeitslastcluster bereitstellen, stimmt die Konfiguration für den Cluster größtenteils mit der Konfiguration des eigenständigen Verwaltungsclusters überein, den Sie zum Bereitstellen des Clusters verwenden. Aus diesem Grund besteht die einfachste Möglichkeit, eine Konfigurationsdatei für einen Arbeitslastcluster zu erstellen, darin, mit einer Kopie der Konfigurationsdatei des eigenständigen Verwaltungsclusters zu beginnen.
Suchen Sie die YAML-Konfigurationsdatei für den Verwaltungscluster:
--file
beim Ausführen von tanzu mc create --ui
nicht angegeben haben, wird die Konfigurationsdatei in ~/.config/tanzu/tkg/clusterconfigs/
gespeichert. Die Datei hat einen zufällig generierten Namen, z. B. bm8xk9bv1v.yaml
.--file
angegeben haben, wird die Konfiguration des Verwaltungsclusters aus der von Ihnen angegebenen Datei übernommen.--file
angegeben haben, oder vom Standardspeicherort ~/.config/tanzu/tkg/cluster-config.yaml
übernommen.Erstellen Sie eine Kopie der Konfigurationsdatei des Verwaltungsclusters und speichern Sie sie unter einem neuen Namen. Speichern Sie die Datei beispielsweise unter my-aws-cluster.yaml
, my-azure-cluster.yaml
oder my-vsphere-cluster.yaml
.
Aktualisieren Sie die Einstellungen in der Clusterkonfigurationsdatei. Wenn Sie einen Arbeitslastcluster für die Verwendung eines anderen Betriebssystems als dem Standard-Ubuntu 20.04 konfigurieren möchten, müssen Sie die Werte OS_NAME
- und OS_VERSION
festlegen. Die Installationsprogramm-Schnittstelle enthält keine Werte für das Betriebssystem der Knoten-VM in den Konfigurationsdateien des Verwaltungsclusters, die in ~/.config/tanzu/tkg/clusterconfigs
gespeichert werden.
Speichern Sie die Datei.
Informationen zur Vorbereitung einer Clusterkonfigurationsdatei für einen TKC-Cluster auf vSphere 8 mit Supervisor finden Sie unter Konfigurieren eines von Supervisor bereitgestellten TKC-Clusters (Legacy).
Sie können eine Objektspezifikationsdatei im Kubernetes-Stil verwenden, um einen klassenbasierten Arbeitslastcluster in folgenden Umgebungen bereitzustellen:
Eine Objektspezifikationsdatei dient demselben Zweck wie eine Clusterkonfigurationsdatei. Wenn Sie eine Objektspezifikation an die Option --file
von tanzu cluster create
übergeben, erstellt die Tanzu CLI den Cluster mithilfe der in der Objektspezifikation definierten Konfigurationsinformationen.
Wie bei anderen Kubernetes-Objekten können Sie einen klassenbasierten Arbeitslastcluster konfigurieren, indem Sie Objektspezifikationen erstellen und bearbeiten. Für Clusterobjekte sind dies:
Cluster
-Objekt: Konfiguriert die meisten Clusteroptionen, z. B. die Clustertopologie. Sie können diese Objektspezifikation ändern und erneut anwenden, um die Konfiguration eines laufenden Clusters zu ändern.ClusterBootstrap
-Objekt: Konfiguriert nicht standardmäßige Optionen, die nur angewendet werden, wenn der Cluster zum ersten Mal erstellt wird, z. B. die Container-Netzwerkschnittstelle (Container Network Interface, CNI) und die Container-Speicherschnittstelle (Container Storage Interface, CSI), die in einem laufenden Cluster nicht neu konfiguriert werden können. Weitere Informationen finden Sie unter Konfigurieren von einmaligen Infrastruktureinstellungen.So erstellen Sie Ihre erste Objektspezifikationsdatei:
Wenn Sie einen klassenbasierten Arbeitslastcluster für vSphere ohne Supervisor, AWS oder Azure bereitstellen, können Sie die Tanzu CLI verwenden, um eine Clusterkonfigurationsdatei in eine Objektspezifikationsdatei zu konvertieren, ohne den Cluster bereitzustellen:
(Globale Konfiguration) Verwenden Sie die Funktion auto-apply-generated-clusterclass-based-configuration
der Tanzu CLI. Diese Funktion ist standardmäßig auf false
gesetzt. Wenn auto-apply-generated-clusterclass-based-configuration
auf false
festgelegt ist und Sie tanzu cluster create
mit dem Flag --file
ausführen, konvertiert der Befehl Ihre Clusterkonfigurationsdatei in eine Objektspezifikationsdatei und wird beendet, ohne dass der Cluster erstellt wird. Nach der Überprüfung der Konfiguration führen Sie tanzu cluster create
mit der von der Tanzu CLI generierten Objektspezifikationsdatei wie unter Erstellen eines klassenbasierten Clusters anhand der Objektspezifikation beschrieben erneut aus. Wenn Sie die Standardkonfiguration aktualisiert haben, führen Sie folgenden Befehl aus, um sie auf false
zurückzusetzen:
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
(Einzelner Cluster) Übergeben Sie die Option --dry-run
an tanzu cluster create
und speichern Sie die Ausgabe in einer Datei. Verwenden Sie dieselben Optionen und die gleiche Konfiguration --file
, die Sie bei Erstellung des Clusters verwenden würden, z. B.:
tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
Sie können diese Objektspezifikation dann verwenden, um einen Cluster wie unter Erstellen eines klassenbasierten Clusters anhand der Objektspezifikation unten beschrieben bereitzustellen.
Wenn Sie einen klassenbasierten Arbeitslastcluster in vSphere 8 mit Supervisor bereitstellen, erstellen oder adaptieren Sie eine Cluster
-Objektspezifikation, wie unter Konfigurieren eines vom Supervisor bereitgestellten klassenbasierten Supervisor-Clusters (nur vSphere 8) beschrieben. Die Dokumentation zu vSphere 8 enthält ein Beispiel für Cluster
-Objektspezifikationen, die als Ausgangspunkt verwendet werden können, z. B. v1beta1-Beispiel: Standardcluster.
Sie können die gängigsten Clustereinstellungen in der Cluster
-Objektspezifikation konfigurieren. Einige Clusterkomponenten stammen jedoch aus dem Tanzu Kubernetes-Release (TKr), auf dem die Knoten des Clusters basieren. Das TKr gibt beispielsweise die von einem Cluster verwendeten CNI-, CSI- und Pinniped-Versionen an.
Diese Optionen auf Infrastrukturebene werden zum Zeitpunkt der Clustererstellung vom ClusterBootstrap
-Objekt angewendet und können in einem laufenden Cluster nicht geändert werden. Die allgemeine Vorgehensweise zum Konfigurieren dieser Optionen vor dem Erstellen eines Clusters lautet:
Erstellen Sie Objektspezifikationen für das ClusterBootstrap
-Objekt und alle benutzerdefinierten Objekte, auf die es verweist, z. B. ein CalicoConfig
-Objekt.
Erstellen Sie eine Objektspezifikation für das Cluster
-Objekt selbst.
Geben Sie in den metadata
für alle Objektspezifikationen den Namen und den Namespace für den Cluster ein, den Sie erstellen, z. B.:
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
name: MY-CLUSTER
namespace: MY-NAMESPACE
Für die Anpassung sind möglicherweise zusätzliche Metadaten erforderlich, wie z. B. Anmerkungen.
Verketten Sie alle Objektspezifikationen, einschließlich der Cluster
-Definition, in einer einzigen Datei. Trennen Sie die Spezifikationen durch Zeilen, die aus drei Bindestrichen (---
) bestehen.
Übergeben Sie die Objektspezifikation an die Option --file
von kubectl apply
z. B.:
kubectl config use-context CONTEXT-NAME
kubectl apply -f my-custom-cluster-objects.yaml
Alternative Methode: Alternativ zu den letzten beiden Schritten können Sie kubectl apply -f
für alle Objektspezifikationen mit Ausnahme des Cluster
-Objekts ausführen und dann tanzu cluster create --file
mit der Cluster
-Objektspezifikation ausführen.
Ein konkretes Beispiel für diesen Vorgang finden Sie unter Cluster mit einer nicht standardmäßigen CNI erstellen, in dem die CNI eines Clusters auf Calico festgelegt wird.
kubectl
und kubeconfig
Tanzu Kubernetes Grid legt den kubectl
-Kontext nicht automatisch auf einen Arbeitslastcluster fest, wenn Sie ihn erstellen. Sie müssen den kubectl
-Kontext manuell auf einen Arbeitslastcluster festlegen, indem Sie den Befehl kubectl config use-context
verwenden.
Wenn Sie die Option KUBECONFIG
zum Speichern der kubeconfig
für einen Cluster in einer bestimmten Datei nicht angeben, werden alle von Ihnen bereitgestellten Arbeitslastcluster standardmäßig einer gemeinsam genutzten Datei .kube/config
hinzugefügt. Wenn Sie die gemeinsam genutzte Datei .kube/config
löschen und weiterhin über die Datei .kube-tkg/config
für den Verwaltungscluster verfügen, können Sie die .kube/config
der Arbeitslastcluster mit dem Befehl tanzu cluster kubeconfig get CLUSTER-NAME
wiederherstellen.
Ändern Sie den Kontext nicht und bearbeiten Sie die Datei .kube-tkg/config
oder .kube/config
nicht, während Tanzu Kubernetes Grid-Vorgänge ausgeführt werden.
Fahren Sie mit dem Thema Clusterkonfiguration für Ihre Infrastruktur fort: