Verwenden Sie diesen Workflow, um einen TKG-Dienstcluster deklarativ mithilfe von kubectl-Befehlen und einer in der YAML definierten Clusterspezifikation bereitzustellen.
Dieser Workflow unterstützt die deklarative Bereitstellung eines TKG-Clusters mithilfe von kubectl und YAML.
Voraussetzungen
Überprüfen oder erfüllen Sie die folgenden Voraussetzungen, bevor Sie den Bereitstellungs-Workflow starten:
- Installieren Sie die neueste Supervisor-Version oder aktualisieren Sie Ihre Umgebung auf diese Version. Weitere Informationen hierzu finden Sie unter Ausführen von TKG-Dienstclustern.
- Erstellen oder aktualisieren Sie eine Inhaltsbibliothek mit den neuesten Tanzu Kubernetes-Versionen. Weitere Informationen hierzu finden Sie unter Verwalten von Kubernetes-Versionen für TKG-Dienst-Cluster.
- Erstellen und konfigurieren Sie einen vSphere-Namespace für das Hosting von TKG-Clustern. Weitere Informationen hierzu finden Sie unter Konfigurieren von vSphere-Namespaces für das Hosting von TKG-Dienst-Clustern.
Prozedur
- Installieren Sie den Kubernetes-CLI-Tools für vSphere.
- Authentifizieren Sie sich mithilfe von kubectl bei Supervisor.
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
Hinweis: FQDN für Supervisor kann nur verwendet werden, wenn er aktiviert ist. In der Dokumentation zur Supervisor-Konfiguration finden Sie ausführliche Informationen. - Überprüfen Sie, ob die Anmeldung beim Supervisor erfolgreich war.
Sinngemäß sollte die folgende Meldung angezeigt werden:
Logged in successfully. You have access to the following contexts: 192.197.2.65 tkg2-cluster-namespace
Dabei ist192.197.2.65
der Supervisor-Kontext undtkg2-cluster-namespace
der Kontext für den vSphere-Namespace, in dem Sie den TKG-Cluster bereitstellen möchten. - Stellen Sie sicher, dass der Ziel-vSphere-Namespace der aktuelle Kontext ist.
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE 192.197.2.65 192.197.2.65 wcp:10.197.154.65:[email protected] * tkg2-cluster-namespace 10.197.154.65 wcp:10.197.154.65:[email protected] tkg2-cluster-namespace
Wenn der Ziel- vSphere-Namespace nicht der aktuelle Kontext ist, wechseln Sie zu diesem.kubectl config use-context tkg2-cluster-namespace
- Listen Sie die VM-Klassen auf, die im vSphere-Namespace verfügbar sind.
kubectl get virtualmachineclass
Sie können nur VM-Klassen verwenden, die an den Ziel-Namespace gebunden sind. Wenn keine VM-Klassen angezeigt werden, stellen Sie sicher, dass die VM-Standardklassen mit dem vSphere-Namespace verknüpft wurden. Siehe auch Beheben von Fehlern bei VM-Klassen - Rufen Sie die verfügbaren Klassen persistenter Speicher-Volumes ab.
kubectl describe namespace VSPHERE-NAMESPACE-NAME
Der Befehl gibt Details zum Namespace zurück, einschließlich der Speicherklasse im Formattkg2-storage-policy.storageclass.storage.k8s.io/requests.storage
. Das erste Token der Zeichenfolge ist der Name der Speicherklasse, in diesem Beispieltkg2-storage-policy
. Der Befehlkubectl describe storageclasses
gibt auch verfügbare Speicherklassen zurück, erfordert jedoch vSphere-Administratorberechtigungen. - Listen Sie die verfügbaren Tanzu Kubernetes-Versionen auf.
Sie können einen der folgenden Befehle verwenden, um diesen Vorgang auszuführen:
kubectl get tkr
kubectl get tanzukubernetesreleases
Dieser Befehl gibt die TKRs zurück, die in diesem vSphere-Namespace zur Verfügung stehen, und zeigt deren Kompatibilität mit dem Supervisor an, auf dem Sie die Bereitstellung durchführen. Sie können nur die Versionen verwenden, die von diesem Befehl zurückgegeben werden. Wenn Sie keine oder nicht die gewünschten Versionen sehen, stellen Sie sicher, dass Sie folgende Schritte ausgeführt haben: a) eine TKR-Inhaltsbibliothek erstellt; b) die Inhaltsbibliothek mit den gewünschten OVA-Dateien synchronisiert; und c) die Inhaltsbibliothek mit dem vSphere-Namespace verknüpft, in dem Sie den TKG-Cluster bereitstellen. - Erstellen Sie die YAML-Datei für die Bereitstellung des TKG-Clusters.
- Ermitteln Sie den Typ des zu erstellenden Clusters und überprüfen Sie dessen API und Funktionen:
- TanzuKubernetesCluster: Verwenden der v1alpha3-API von TanzuKubernetesCluster
- Cluster: Verwenden der v1beta1-API von Clustern
- Beginnen Sie mit einer der Beispiel-YAMLs für die Bereitstellung des Clusters.
- Speichern Sie die YAML-Datei als
tkg2-cluster-1.yaml
oder ähnlich. - Füllen Sie die YAML mit den Informationen auf, die Sie aus der Ausgabe der vorherigen Befehle erhalten haben. Dazu zählen:
- Des Namens des Clusters, wie z. B.
tkg2-cluster-1
- De zielseitige vSphere-Namespace
- Gebundener VM-Klassen, wie z. B.
guaranteed-medium
- Speicherklasse für Clusterknoten und persistente Volumes
- Der Anzahl der Steuerungsebenen- und Worker-Knoten (Replikate)
- Der von der TKR-NAME-Zeichenfolge angegebenen Tanzu Kubernetes-Version, wie z. B.
v1.25.7+vmware.3-fips.1-tkg.1
- Des Namens des Clusters, wie z. B.
- Passen Sie die YAML des TGK-Clusters nach Bedarf an.
- Hinzufügen eines separaten Volumes für Komponenten mit hoher Änderungsrate, wie z. B.
containerd
- Festlegen einer Standardklasse für dauerhaften Speicher für Clusterknoten und dauerhafte Volumes
- Anpassen des Clusternetzwerks, einschließlich CNI, Pod und Dienst-CIDRs
- Hinzufügen eines separaten Volumes für Komponenten mit hoher Änderungsrate, wie z. B.
- Verwenden Sie eine YAML-Syntaxprüfung und stellen Sie sicher, dass die YAML gültig ist.
Das Ergebnis dieses Schritts ist eine gültige YAML für die Bereitstellung des TKG-Clusters. - Ermitteln Sie den Typ des zu erstellenden Clusters und überprüfen Sie dessen API und Funktionen:
- Stellen Sie den TKG-Cluster bereit und führen Sie den folgenden Befehl aus.
kubectl apply -f tkg2-cluster-1.yaml
Erwartetes Ergebnis:tanzukubernetescluster.run.tanzu.vmware.com/tkg2-cluster-1 created
- Überwachen Sie die Bereitstellung des TKG-Clusters.
kubectl get tanzukubernetesclusters
kubectl get tkc
Oder Sie erstellen einen Cluster mit der v1beta1-API:kubectl get cluster
Anfänglich lautet der Bereitschaftsstatus (READY) „False“, da der Cluster bereitgestellt wird. Nach einigen Minuten sollte der Bereitschaftsstatus „True“ lauten.NAME CONTROL PLANE WORKER TKR NAME AGE READY TKR COMPATIBLE UPDATES AVAILABLE tkg2-cluster-1 3 6 v1.25.7+vmware.3-fips.1-tkg.1 49m True True
Führen Sie zusätzliche Befehle aus, um Details zum Cluster anzuzeigen.kubectl get tanzukubernetescluster,cluster,virtualmachinesetresourcepolicy,virtualmachineservice,kubeadmcontrolplane,machinedeployment,machine,virtualmachine
kubectl describe tanzukubernetescluster tkg2-cluster-1
- Überwachen Sie die Bereitstellung der Clusterknoten mithilfe des vSphere Client.
In der vSphere-Bestandsliste für Hosts und Cluster sollte zu sehen sein, dass die Clusterknoten-VMs im zielseitigen vSphere-Namespace bereitgestellt werden.
- Sobald sich alle TKG-Clusterknoten im Zustand BEREIT befinden, melden Sie sich mit dem vSphere-Plug-In für kubectl beim Cluster an.
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN \ --vsphere-username USERNAME \ --tanzu-kubernetes-cluster-name CLUSTER-NAME \ --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
Beispiel:kubectl vsphere login --server=192.197.2.65 --vsphere-username [email protected] \ --tanzu-kubernetes-cluster-name tkg2-cluster-1 --tanzu-kubernetes-cluster-namespace tkg2-cluster-namespace
Hinweis: Eine erfolgreiche Ausführung des Anmeldebefehls findet erst statt, wenn die Steuerungsebenenknoten ausgeführt werden und das Authentifizierungsdienst-Plug-In gestartet wurde. Während der Erstellung der Worker-Knoten verläuft die Anmeldung unter Umständen instabil. Es wird empfohlen, dass Sie sich anmelden, sobald sich alle Clusterknoten im Zustand BEREIT befinden. - Wechseln Sie den Kontext zum TKG-Cluster, sodass dieser der aktuelle Kontext ist.
Nach erfolgreicher Anmeldung beim TKG-Cluster sollte eine Meldung ähnlich der folgenden angezeigt werden.
Logged in successfully. You have access to the following contexts: 192.197.2.65 tkg2-cluster-namespace tkg2-cluster-1
Dabei ist192.197.2.65
der Supervisor-Kontext,tkg2-cluster-namespace
der vSphere-Namespace-Kontext undtkg2-cluster-1
der TKG-Clusterkontext.Wechseln Sie zum TKG-Clusterkontext.kubect config use-context tkg2-cluster-1
- Überprüfen Sie die TKG-Clusterressourcen.
kubectl get nodes
kubectl get namespaces
kubectl get pods -A
kubectl cluster-info
kubectl api-resources
- Testen Sie den TKG-Cluster, indem Sie einen Test-Pod bereitstellen und überprüfen Sie, ob er wie erwartet funktioniert.
Weitere Informationen finden Sie unter Testen der TKG-Clusterbereitstellung mithilfe von kubectl.