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:

Prozedur

  1. Installieren Sie den Kubernetes-CLI-Tools für vSphere.
  2. 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.
  3. Ü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 ist 192.197.2.65 der Supervisor-Kontext und tkg2-cluster-namespace der Kontext für den vSphere-Namespace, in dem Sie den TKG-Cluster bereitstellen möchten.
  4. 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
  5. 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
  6. 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 Format tkg2-storage-policy.storageclass.storage.k8s.io/requests.storage. Das erste Token der Zeichenfolge ist der Name der Speicherklasse, in diesem Beispiel tkg2-storage-policy. Der Befehl kubectl describe storageclasses gibt auch verfügbare Speicherklassen zurück, erfordert jedoch vSphere-Administratorberechtigungen.
  7. 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.
  8. Erstellen Sie die YAML-Datei für die Bereitstellung des TKG-Clusters.
    1. Ermitteln Sie den Typ des zu erstellenden Clusters und überprüfen Sie dessen API und Funktionen:
    2. Beginnen Sie mit einer der Beispiel-YAMLs für die Bereitstellung des Clusters.
    3. Speichern Sie die YAML-Datei als tkg2-cluster-1.yaml oder ähnlich.
    4. 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
    5. 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
    6. 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.
  9. 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
  10. Ü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
  11. Ü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.
  12. 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.
  13. 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 ist 192.197.2.65 der Supervisor-Kontext, tkg2-cluster-namespace der vSphere-Namespace-Kontext und tkg2-cluster-1 der TKG-Clusterkontext.
    Wechseln Sie zum TKG-Clusterkontext.
    kubect config use-context tkg2-cluster-1
  14. Überprüfen Sie die TKG-Clusterressourcen.
    kubectl get nodes
    kubectl get namespaces
    kubectl get pods -A
    kubectl cluster-info
    kubectl api-resources
  15. 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.