In diesem Thema wird erläutert, wie Sie Arbeitslastcluster mit der Tanzu CLI erstellen.
In den folgenden Verfahren wird erläutert, wie Sie einen Arbeitslastcluster aus einer Clusterkonfigurationsdatei bereitstellen. Aus einer Clusterkonfigurationsdatei können Sie die folgenden Clustertypen erstellen:
Klassenbasierte Cluster: Befolgen Sie die Schritte unter Erstellen eines klassenbasierten Clusters weiter unten, wenn Sie Ihren Arbeitslastcluster in folgenden Anwendungen bereitstellen:
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 vom Supervisor bereitgestellten, klassenbasierten Clusters beschrieben. Weitere Informationen zu Clusterkonfigurationsdateien und Objektspezifikationen finden Sie unter Konfigurationsdateien.
(Legacy) Planbasierte und TKC-Cluster: Befolgen Sie die Schritte unter (Legacy) Erstellen eines planbasierten oder TKC-Clusters unten.
Weitere Informationen zu diesen Clustertypen finden Sie unter Arbeitslastcluster-Typen in Informationen zu Tanzu Kubernetes Grid.
Im folgenden Verfahren wird erläutert, wie Sie einen klassenbasierten Arbeitslastcluster aus einer Clusterkonfigurationsdatei bereitstellen. Der resultierende Cluster wird durch ein Cluster
-Objekt in Kubernetes dargestellt.
WichtigVMware empfiehlt, eine dedizierte Konfigurationsdatei für jeden von Ihnen bereitgestellten Cluster zu verwenden und beizubehalten.
Suchen Sie die Konfigurationsdatei, die Sie im Rahmen der Voraussetzungen oben vorbereitet haben.
Erstellen Sie den Cluster. Sie können einen Cluster in einem oder zwei Schritten erstellen, je nachdem, ob Sie seine Objektspezifikation vor der Erstellung des Objekts untersuchen oder bearbeiten möchten:
--file
von tanzu cluster create
. Der Befehl wendet sie dann automatisch an.--file
von tanzu cluster create
. Anschließend konvertiert der Befehl die Datei in eine Cluster
-Objektspezifikation und wird beendet, ohne den Cluster zu erstellen. Nach der Untersuchung oder Bearbeitung der Spezifikation erstellen Sie den Cluster, indem Sie tanzu cluster create
erneut ausführen.HinweisIn TKG v2.3.1 auf AWS und Azure müssen Sie zum Erstellen eines Clusters aus einer Objektspezifikation den einstufigen Prozess verwenden oder die AZ-Validierung explizit überspringen, wie in Auf AWS und Azure schlägt das Erstellen eines Arbeitslastclusters mit Objektspezifikation mit einem Zonen-/Regionsfehler fehl (On AWS and Azure, creating workload cluster with object spec fails with zone/region error) in Versionshinweise zu VMware Tanzu Kubernetes Grid v2.3 beschrieben.
Legen Sie auto-apply-generated-clusterclass-based-configuration
auf true
fest, sofern dies noch nicht geschehen ist. Dadurch wird die Tanzu CLI so konfiguriert, dass immer klassenbasierte Cluster mithilfe des einstufigen Prozesses erstellt werden. Weitere Informationen zu auto-apply-generated-clusterclass-based-configuration
, finden Sie unter Funktionen in Tanzu CLI-Architektur und -Konfiguration.
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration true
Führen Sie tanzu cluster create
aus und geben Sie den Pfad zur Clusterkonfigurationsdatei in der Option --file
an. Wenn Sie beispielsweise die Konfigurationsdatei my-workload-cluster.yaml
im Standardordner clusterconfigs
gespeichert haben, führen Sie den folgenden Befehl aus, um einen Cluster mit einem Namen zu erstellen, den Sie in der Konfigurationsdatei angegeben haben:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Wenn Sie in der Cluster-Konfigurationsdatei keinen Namen angegeben haben oder einen Cluster mit einem anderen Namen als dem von Ihnen angegebenen erstellen möchten, geben Sie den Clusternamen im Befehl tanzu cluster create
an. Um beispielsweise einen Cluster mit dem Namen another-workload-cluster
aus der Konfigurationsdatei my-workload-cluster.yaml
zu erstellen, führen Sie den folgenden Befehl aus:
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Legen Sie die Funktion auto-apply-generated-clusterclass-based-configuration
auf false
fest, sofern dies noch nicht geschehen ist. Dadurch wird die Tanzu CLI so konfiguriert, dass immer klassenbasierte Cluster mithilfe des zweistufigen Prozesses erstellt werden. false
ist die Standardeinstellung. Wenn Sie die Standardkonfiguration geändert 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
Weitere Informationen zu auto-apply-generated-clusterclass-based-configuration
, finden Sie unter Funktionen in Tanzu CLI-Architektur und -Konfiguration.
Um die Objektspezifikation zu generieren, führen Sie tanzu cluster create
aus und geben Sie den Pfad zur Cluster-Konfigurationsdatei in der Option --file
an. Der Befehl speichert die resultierende Objektspezifikation im Ordner ~/.config/tanzu/tkg/clusterconfigs
, gibt den Speicherort aus und wird dann beendet.
Wenn Sie beispielsweise die Cluster-Konfigurationsdatei my-workload-cluster.yaml
im Standardordner clusterconfigs
gespeichert haben, führen Sie den folgenden Befehl aus, um die Objektspezifikation zu generieren:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Wenn Sie in der Konfigurationsdatei keinen Namen für Ihren Cluster angegeben haben oder einen Cluster mit einem anderen Namen als dem von Ihnen angegebenen erstellen möchten, geben Sie den Clusternamen im Befehl tanzu cluster create
an. Beispiel:
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Untersuchen oder bearbeiten Sie die durch tanzu cluster create
generierte Objektspezifikationsdatei.
Führen Sie tanzu cluster create
erneut aus und geben Sie den Pfad zu der Objektspezifikation in der Option --file
an. Beispiel:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml
Schließen Sie alle im ersten Schritt verwendeten Flags ein, einschließlich des Flags --tkr
, wenn Sie einen Cluster erstellen, der eine andere Kubernetes-Version als der Verwaltungscluster ausführt. Beispiel:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml -v 6 --tkr v1.24.17---vmware.1-tkg.2
Um die Objektspezifikation zu generieren, führen Sie tanzu cluster create
mit der Option --dry-run
aus. Die Option --dry-run
setzt die Einstellung auto-apply-generated-clusterclass-based-configuration
außer Kraft.
tanzu cluster create CLUSTER-NAME --dry-run --file PATH-TO-CLUSTER-CONFIG-FILE.yaml > PATH-TO-OBJECT-SPEC-FILE.yaml
Dabei gilt:
CLUSTER-NAME
ist der Name des Clusters. Sie können CLUSTER-NAME
weglassen, wenn Sie den Namen in der Cluster-Konfigurationsdatei angegeben haben.PATH-TO-CLUSTER-CONFIG-FILE
ist der Pfad zur Cluster-Konfigurationsdatei, die Sie in Schritt 1 ermittelt haben.PATH-TO-OBJECT-SPEC-FILE
ist der Speicherort, in dem Sie die resultierende Objektspezifikationsdatei speichern möchten.Um beispielsweise die resultierende Objektspezifikation in einer Datei mit dem Namen my-workload-cluster-spec.yaml
zu speichern, führen Sie folgenden Befehl aus:
tanzu cluster create my-cluster --dry-run --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml > my-workload-cluster-spec.yaml
Untersuchen oder bearbeiten Sie die Objektspezifikationsdatei, die von der Option --dry-run
im vorherigen Schritt generiert wurde. Im obigen Beispiel lautet der Name der Spezifikationsdatei my-workload-cluster-spec.yaml
.
Nachdem Sie Ihre Objektspezifikationsdatei untersucht oder bearbeitet haben, führen Sie tanzu cluster create
ohne die Option --dry-run
erneut aus. Geben Sie in der Option --file
den Pfad zur Objektspezifikationsdatei an. Beispiel:
tanzu cluster create my-cluster --file my-workload-cluster-spec.yaml
Schließen Sie alle im ersten Schritt verwendeten Flags ein, einschließlich des Flags --tkr
, wenn Sie einen Cluster erstellen, der eine andere Kubernetes-Version als der Verwaltungscluster ausführt. Beispiel:
tanzu cluster create --file my-workload-cluster-spec.yaml -v 6 --tkr v1.24.17---vmware.1-tkg.2
HinweisBeim Erstellen klassenbasierter Cluster verwendet die Tanzu CLI keine
ytt
-Anpassungen, die in Konfiguration von Legacy-Clustern mit ytt beschrieben sind. Wenn die CLI diese auf Ihrem Computer erkennt, wird ein FehlerIt seems like you have done some customizations to the template overlays.
ausgegeben.
Nachdem der Cluster erstellt wurde, führen Sie den Befehl tanzu cluster get
aus, um Informationen zum Cluster anzuzeigen:
tanzu cluster get CLUSTER-NAME
Die Ausgabe listet Informationen über den Status der Steuerungsebenen- und Worker-Knoten, die vom Cluster ausgeführte Kubernetes-Version und die Namen der Knoten auf.
Im folgenden Verfahren wird erläutert, wie Sie einen planbasierten oder TKC-Cluster aus einer Konfigurationsdatei bereitstellen:
AWSCluster
-, AzureCluster
- oder VSphereCluster
-Objekt in Kubernetes dargestellt.TanzuKubernetesCluster
-Objekt in Kubernetes dargestellt.So erstellen Sie den Cluster:
Setzen Sie die Funktion allow-legacy-cluster
in der Tanzu CLI auf true
:
tanzu config set features.cluster.allow-legacy-cluster true
Erstellen Sie den Cluster.
Führen Sie den Befehl tanzu cluster create
aus und geben Sie den Pfad zur Konfigurationsdatei in der Option --file
an. Wenn Sie beispielsweise die Arbeitslastkonfigurationsdatei my-workload-cluster.yaml
im Standardordner clusterconfigs
gespeichert haben, führen Sie den folgenden Befehl aus, um einen Cluster mit einem Namen zu erstellen, den Sie in der Konfigurationsdatei angegeben haben:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Wenn Sie in der Konfigurationsdatei keinen Namen angegeben haben oder einen Cluster mit einem anderen Namen als dem von Ihnen angegebenen erstellen möchten, geben Sie den Clusternamen im Befehl tanzu cluster create
an. Um beispielsweise einen Cluster mit dem Namen another-workload-cluster
aus der Konfigurationsdatei my-workload-cluster.yaml
zu erstellen, führen Sie den folgenden Befehl aus:
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Nachdem der Cluster erstellt wurde, führen Sie den Befehl tanzu cluster get
aus, um Informationen zum Cluster anzuzeigen:
tanzu cluster get CLUSTER-NAME
Die Ausgabe listet Informationen über den Status der Steuerungsebenen- und Worker-Knoten, die vom Cluster ausgeführte Kubernetes-Version und die Namen der Knoten auf.
Erstellen oder kopieren Sie eine Konfigurationsdatei für den Arbeitslastcluster, wie unter Konfigurieren eines von Supervisor bereitgestellten TKC-Clusters (Legacy).
Nachdem Sie die Tanzu CLI mit dem Supervisor verbunden haben, rufen Sie den zielseitigen vSphere-Namespace ab:
tanzu namespaces get
Bestimmen Sie das versionierte Tanzu Kubernetes-Release (TKr) für den Cluster:
Rufen Sie die Liste der TKrs ab, die im Supervisor-Cluster verfügbar sind:
tanzu kubernetes-release get
Notieren Sie sich in der Befehlsausgabe den gewünschten Wert, der unter NAME
gelistet ist, zum Beispiel v1.26.8---vmware.2-tkg.1
. Der tkr
NAME
ist identisch mit der VERSION
, jedoch wurde +
in ---
geändert.
Stellen Sie den Cluster bereit, indem Sie tanzu cluster create
mit dem Wert TKR-NAME
und folgendem Konfigurationsdateinamen ausführen:
tanzu cluster create CLUSTER-NAME --file CONFIGURATION-FILE --tkr=TKR-NAME
Dabei gilt:
CLUSTER-NAME
ist ein beliebiger Name, den Sie für den Cluster angeben. Dieser Befehlszeilenwert überschreibt alle CLUSTER_NAME
-Einstellungen in der Konfigurationsdatei.CONFIGURATION-FILE
ist der lokale Pfad zur Clusterkonfigurationsdatei, zum Beispiel ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
.TKR-NAME
ist der Name des oben abgerufenen TKr.Nachdem der Cluster erstellt wurde, führen Sie tanzu cluster get
aus, um den aktuellen Status des Clusters anzuzeigen:
tanzu cluster get CLUSTER-NAME
Konfigurieren Sie die IP-Adressen der zugehörigen Steuerungsebenenknoten und des zugehörigen Endpoints als statisch (siehe Beschreibung unter Konfigurieren von DHCP-Reservierungen für Knoten und DNS-Datensätzen für Endpoints (nur vSphere)).
In den folgenden Verfahren wird erläutert, wie Sie einen klassenbasierten Arbeitslastcluster mithilfe einer Objektspezifikation im Kubernetes-Stil erstellen:
HinweisIn TKG v2.3.1 auf AWS und Azure müssen Sie zum Erstellen eines Clusters aus einer Objektspezifikation den einstufigen Prozess verwenden oder die AZ-Validierung explizit überspringen, wie in Auf AWS und Azure schlägt das Erstellen eines Arbeitslastclusters mit Objektspezifikation mit einem Zonen-/Regionsfehler fehl (On AWS and Azure, creating workload cluster with object spec fails with zone/region error) in Versionshinweise zu VMware Tanzu Kubernetes Grid v2.3 beschrieben.
Führen Sie die folgenden Schritte aus, um eine Objektspezifikationsdatei im Kubernetes-Stil für einen klassenbasierten Arbeitslastcluster zu erstellen.
Wenn Sie die Standardkonfiguration der Funktion auto-apply-generated-clusterclass-based-configuration
aktualisiert haben, setzen Sie sie auf false
zurück und führen dann tanzu cluster create
mit dem Flag --file
aus. So setzen Sie auto-apply-generated-clusterclass-based-configuration
auf false
:
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
Wenn diese Funktion auf false
festgelegt ist und Sie tanzu cluster create
mit dem Flag --file
erstellen, 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
erneut mit der Objektspezifikationsdatei aus, die von der Tanzu CLI generiert wurde.
Um die Spezifikationsdatei für einen einzelnen Cluster zu erstellen, ü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
Die Option --dry-run
setzt die Einstellung auto-apply-generated-clusterclass-based-configuration
außer Kraft.
Ein Beispiel für eine Objektspezifikationsdatei finden Sie unter Beispiel für Cluster
-Objekt und zugehörige untergeordnete Objekte.
Cluster
-Objektspezifikation wie unter
Konfigurieren eines klassenbasierten Supervisor-Clusters beschrieben an.
Cluster
-Objektspezifikationen, die als Ausgangspunkt verwendet werden können, z. B. v1beta1-Beispiel: Standardcluster.topology
der Spezifikationsdatei fest.Cluster
-Objekt selbst festgelegt werden können, z. B. einmalige Einstellungen für Containerschnittstellen in der Clusterinfrastruktur, finden Sie unter Konfigurieren von einmaligen Infrastruktureinstellungen.Um einen klassenbasierten Arbeitslastcluster aus einer Objektspezifikation bereitzustellen, übergeben Sie die Objektspezifikation an die Option --file
von tanzu cluster create
. Beispiel:
tanzu cluster create my-cluster --file my-cluster-spec.yaml
HinweisBeim Erstellen klassenbasierter Cluster verwendet die Tanzu CLI keine
ytt
-Anpassungen, die in Konfiguration von Legacy-Clustern mit ytt beschrieben sind. Wenn die CLI diese auf Ihrem Computer erkennt, wird ein FehlerIt seems like you have done some customizations to the template overlays.
ausgegeben.
In Arbeitslastclustern, die von einem Verwaltungscluster verwaltet werden, der mit tanzu management-cluster create
oder tanzu mc create
anstelle eines vSphere with Tanzu-Supervisor-Clusters erstellt wurde, können durch die Bereitstellung von Harbor oder anderen Diensten alle Arbeitslasten eine einzelne Dienstinstanz gemeinsam nutzen.
Jede Tanzu Kubernetes Grid-Instanz kann über lediglich einen Cluster mit gemeinsam genutzten Diensten verfügen.
Durch die Bereitstellung von Harbor in einem Cluster mit gemeinsam genutzten Diensten können alle Arbeitslastcluster, die vom selben Verwaltungscluster verwaltet werden, eine einzelne Harbor-Instanz gemeinsam nutzen. Anweisungen zum Bereitstellen von Harbor finden Sie unter Installieren von Harbor für die Dienstregistrierung.
So erstellen Sie einen Cluster mit gemeinsam genutzten Diensten:
Erstellen Sie eine YAML-Datei der Clusterkonfiguration für den Cluster. Es wird empfohlen, den prod
-Cluster-Plan anstelle des dev
-Plans zu verwenden. Beispiel:
INFRASTRUCTURE_PROVIDER: vsphere
CLUSTER_NAME: YOUR-CLUSTER-NAME
CLUSTER_PLAN: prod
Wobei YOUR-CLUSTER-NAME
den für den Cluster ausgewählten Namen darstellt. Beispiel: tkg-services
.
(Nur vSphere) Wenn Sie den Kube-Vip-Standardlastausgleichsdienst für die Steuerungsebenen-API des Clusters verwenden, müssen Sie den zugehörigen Endpoint angeben, indem Sie VSPHERE_CONTROL_PLANE_ENDPOINT
festlegen. Stellen Sie sicher, dass sich diese VIP-Adresse nicht im DHCP-Bereich, sondern im selben Subnetz wie der DHCP-Bereich befindet. Wenn Sie der VIP-Adresse einen vollqualifizierten Domänennamen (FQDN) zugeordnet haben, können Sie anstelle der VIP-Adresse den FQDN angeben.
Wenn Sie NSX Advanced Load Balancer (ALB) verwenden, legen Sie keinen VSPHERE_CONTROL_PLANE_ENDPOINT
fest, es sei denn, der Steuerungsebenen-Endpoint muss eine bestimmte Adresse sein. Ist dies jedoch der Fall, verwenden Sie eine statische Adresse innerhalb des VIP-Netzwerkbereichs des NSX ALB-IPAM-Profils, den Sie manuell zum statischen IP-Pool hinzugefügt haben, oder einen FQDN, der der statischen Adresse zugeordnet ist.
Beispiel:
VSPHERE_CONTROL_PLANE_ENDPOINT: 10.10.10.10
Erstellen Sie den Cluster für gemeinsam genutzte Dienste gemäß der obigen Beschreibung unter Erstellen eines Clusters aus einer Konfigurationsdatei.
Legen Sie den Kontext von kubectl
auf den Kontext Ihres Verwaltungsclusters fest. Beispiel:
kubectl config use-context mgmt-cluster-admin@mgmt-cluster
In diesem Beispiel ist mgmt-cluster
der Name des Verwaltungsclusters.
Fügen Sie dem Cluster für gemeinsam genutzte Dienste die Bezeichnung tanzu-services
als entsprechende Clusterrolle hinzu. Diese Bezeichnung gibt den Cluster für gemeinsam genutzte Dienste beim Verwaltungscluster und den Arbeitslastclustern an. Beispiel:
kubectl label cluster.cluster.x-k8s.io/tkg-services cluster-role.tkg.tanzu.vmware.com/tanzu-services="" --overwrite=true
In diesem Beispiel ist tkg-services
der Name des Clusters für gemeinsam genutzte Dienste. Die Bestätigung cluster.cluster.x-k8s.io/tkg-services labeled
sollte angezeigt werden.
Stellen Sie sicher, dass die Bezeichnung korrekt angewendet wurde, indem Sie folgenden Befehl ausführen:
tanzu cluster list --include-management-cluster
Dem Cluster für gemeinsam genutzte Dienste sollte die Rolle tanzu-services
zugewiesen worden sein. Beispiel:
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN TKR
another-cluster default running 1/1 1/1 v1.26.8+vmware.1 <none> dev v1.26.8---vmware.2-tkg
tkg-services default running 3/3 3/3 v1.26.8+vmware.1 tanzu-services prod v1.26.8---vmware.2-tkg
mgmt-cluster tkg-system running 1/1 1/1 v1.26.8+vmware.1 management dev v1.26.8---vmware.2-tkg
Rufen Sie die admin
-Anmeldedaten des Cluster für gemeinsam genutzte Dienste ab. Beispiel:
tanzu cluster kubeconfig get tkg-services --admin
Legen Sie den Kontext von kubectl
auf den Cluster für gemeinsam genutzte Dienste fest. Beispiel:
kubectl config use-context tkg-services-admin@tkg-services