Sie stellen Tanzu Kubernetes-Cluster bereit, indem Sie die deklarative API des Tanzu Kubernetes Grid-Dienst mithilfe von kubectl und einer in YAML definierten Clusterspezifikation aufrufen. Nachdem Sie einen Cluster bereitgestellt haben, verwenden Sie ihn und stellen ihm Arbeitslasten mithilfe von kubectl bereit.

Dieser Workflow unterstützt die Tanzu Kubernetes Grid-Dienst v1alpha2-API. Wenn Sie die v1alpha1-API verwenden, finden Sie weitere Informationen in diesem Workflow.

Voraussetzungen

Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, bevor Sie den Workflow starten:

Prozedur

  1. Laden Sie die Kubernetes-CLI-Tools für vSphere herunter und installieren Sie sie.
  2. Authentifizieren Sie sich mit dem vSphere-Plug-In für kubectl beim Supervisor-Cluster.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  3. Überprüfen Sie, ob die Anmeldung beim Supervisor-Cluster erfolgreich war.
    Sinngemäß sollte die folgende Meldung angezeigt werden:
    Logged in successfully.
    
    You have access to the following contexts:
       192.197.2.65
       tkgs-ns
    Dabei ist 192.197.2.65 der Supervisor-Cluster-Kontext und tkgs-ns der Kontext für den vSphere-Namespace, in dem Sie den Tanzu Kubernetes-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:192.197.2.65:user@vsphere.local
    *         tkgs-ns         192.197.2.65    wcp:192.197.2.65:user@vsphere.local   tkgs-ns
    Wenn der Ziel- vSphere-Namespace nicht der aktuelle Kontext ist, wechseln Sie zu diesem.
    kubectl config use-context tkgs-ns
  5. Listen Sie die VM-Klassenbindungen auf, die im Ziel-vSphere-Namespace verfügbar sind.
    kubectl get virtualmachineclassbindings
    Sie können nur die VM-Klassen verwenden, die an den Ziel-Namespace gebunden sind. Wenn keine VM-Klassen angezeigt werden, stellen Sie sicher, dass dem vSphere-Namespace die VM-Standardklassen hinzugefügt wurden.
  6. Rufen Sie die verfügbaren Klassen persistenter Speicher-Volumes ab.
    kubectl describe storageclasses
  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
    Sie können nur die Versionen verwenden, die von diesem Befehl zurückgegeben werden. Wenn keine Versionen oder nur unerwünschte Versionen angezeigt werden, stellen Sie sicher, dass Sie die gewünschten OVA-Dateien mit der Inhaltsbibliothek synchronisiert haben.
  8. Erstellen Sie die YAML-Datei zur Bereitstellung des Tanzu Kubernetes-Clusters.
    1. Überprüfen Sie die Spezifikation der v1alpha2-API.
    2. Starten Sie mit einer der YAML-Beispieldateien für die Bereitstellung eines Clusters. Verwenden Sie je nach Ihren Anforderungen entweder die Datei vom Typ Standard oder die Datei vom Typ Benutzerdefiniert.
    3. Speichern Sie die YAML-Datei als tkgs-cluster-1.yaml oder ähnlich.
    4. Befüllen Sie Ihre YAML-Datei basierend auf Ihren Anforderungen und unter Verwendung der Informationen, auf und verwenden Sie die Informationen, die Sie aus der Ausgabe der vorhergehenden Befehle zusammengetragen haben, einschließlich:
      • Des Namens des Clusters, wie z. B. tkgs-cluster-1
      • Des zielseitigen vSphere-Namespace, wie z. B. tkgs-ns
      • Gebundener VM-Klassen, wie z. B. guaranteed-medium und guaranteed-small
      • Speicherklassen für Clusterknoten und Arbeitslasten, wie z. B. vwt-storage-policy
      • Der Anzahl der Steuerungsebenen- und Worker-Knoten (Replikate)
      • Der von der TKR-NAME-Zeichenfolge angegebenen Tanzu Kubernetes-Version, wie z. B. v1.21.6---vmware.1-tkg.1.b3d708a
    5. Passen Sie Ihre YAML-Datei nach Bedarf an. Beispiel:
      • Hinzufügen eines separaten Volumes für Komponenten mit hoher Änderungsrate, wie z. B. etcd und containerd
      • Angeben einer dauerhaften Standardspeicherklasse für Clusterknoten
      • Anpassen des Clusternetzwerks, einschließlich CNI, Pod und Dienst-CIDRs
    Das Ergebnis dieses Schritts ist eine gültige YAML für die Bereitstellung Ihres TKGS-Clusters. Beispiel:
    apiVersion: run.tanzu.vmware.com/v1alpha2
    kind: TanzuKubernetesCluster
    metadata:
      name: tkgs-cluster-1
      namespace: tkgs-ns
    spec:
      topology:
        controlPlane:
          replicas: 3
          vmClass: guaranteed-medium
          storageClass: vwt-storage-policy
          volumes:
            - name: etcd
              mountPath: /var/lib/etcd
              capacity:
                storage: 4Gi
          tkr:
            reference:
              name: v1.21.6---vmware.1-tkg.1.b3d708a
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          vmClass: guaranteed-medium
          storageClass: vwt-storage-policy
          volumes:
            - name: containerd
              mountPath: /var/lib/containerd
              capacity:
                storage: 16Gi
          tkr:
            reference:
              name: v1.21.6---vmware.1-tkg.1.b3d708a
        - name: worker-nodepool-a2
          replicas: 2
          vmClass: guaranteed-small
          storageClass: vwt-storage-policy
          tkr:
            reference:
              name: v1.21.6---vmware.1-tkg.1.b3d708a
      settings:
        storage:
          defaultClass: vwt-storage-policy
    Hinweis: In obigem Beispiel wird das standardmäßige Cluster-Netzwerk verwendet, d. h. die Antrea-CNI und standardmäßige CIDR-Bereiche für Cluster-Pods und -dienste.
  9. Stellen Sie den Cluster bereit, indem Sie den folgenden kubectl-Befehl ausführen.
    kubectl apply -f tkgs-cluster-1.yaml
    Erwartetes Ergebnis:
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 created
  10. Überwachen Sie die Bereitstellung von Clusterknoten mithilfe von kubectl.
    kubectl get tanzukubernetesclusters
    Anfänglich ist der Cluster nicht bereit, da er noch bereitgestellt wird.
    NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE    READY   TKR COMPATIBLE   UPDATES AVAILABLE
    tkgs-cluster-1   3               5        v1.21.6---vmware.1-tkg.1.b3d708a   2m4s   False   True
    Nach einigen Minuten sollte der Bereitschaftsstatus (READY) „True“ lauten.
    NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE   READY   TKR COMPATIBLE   UPDATES AVAILABLE
    tkgs-cluster-1   3               5        v1.21.6---vmware.1-tkg.1.b3d708a   13m   True    True
  11. Überwachen Sie die Bereitstellung der Clusterknoten mithilfe des vSphere Client.
    In der vSphere-Bestandsliste Hosts und Cluster sollte zu sehen sein, dass die VM-Knoten im Ziel- vSphere-Namespace bereitgestellt werden.
  12. Führen Sie weitere kubectl-Befehle zum Überprüfen der Clusterbereitstellung aus.
    kubectl get tanzukubernetescluster,cluster-api,virtualmachinesetresourcepolicy,virtualmachineservice,virtualmachine
    Informationen zur Fehlerbehebung finden Sie unter Fehlerbehebung bei Tanzu Kubernetes-Clustern.
  13. Melden Sie sich mit dem vSphere-Plug-In für kubectl beim Cluster an.
    kubectl vsphere login --server=IP-ADDRESS --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 user@vsphere.local \
    --tanzu-kubernetes-cluster-name tkgs-cluster-1 --tanzu-kubernetes-cluster-namespace tkgs-ns
  14. Überprüfen Sie, ob die Anmeldung beim Tanzu Kubernetes-Cluster erfolgreich war.
    Sinngemäß sollte die folgende Meldung angezeigt werden.
    Logged in successfully.
    
    You have access to the following contexts:
       192.197.2.65
       tkgs-cluster-1
       tkgs-ns
    Dabei ist 192.197.2.65 der Supervisor-Cluster-Kontext, tkgs-ns der vSphere-Namespace-Kontext und tkgs-cluster-1 der Tanzu Kubernetes-Clusterkontext.
  15. Listen Sie mithilfe von kubectl verfügbare Clusterkontexte auf.
    kubectl config get-contexts
    Beispiel:
    CURRENT   NAME             CLUSTER        AUTHINFO                                      NAMESPACE
              192.197.2.65     192.197.2.65   wcp:192.197.2.65:administrator@vsphere.local
    *         tkgs-cluster-1   192.197.2.67   wcp:192.197.2.67:administrator@vsphere.local
              tkgs-ns          192.197.2.65   wcp:192.197.2.65:administrator@vsphere.local   tkgs-ns
    Verwenden Sie bei Bedarf kubect config use-context tkgs-cluster-1, um zum Tanzu Kubernetes-Cluster zu wechseln, sodass es sich um den aktuellen Kontext handelt.
  16. Überprüfen Sie die Clusterbereitstellung mit dem folgenden kubectl-Befehl.
    kubectl get nodes
    Beispiel:
    NAME                                                       STATUS   ROLES                  AGE   VERSION
    tkgs-cluster-1-control-plane-6ln2h                         Ready    control-plane,master   30m   v1.21.6+vmware.1
    tkgs-cluster-1-control-plane-6q67n                         Ready    control-plane,master   33m   v1.21.6+vmware.1
    tkgs-cluster-1-control-plane-jw964                         Ready    control-plane,master   37m   v1.21.6+vmware.1
    tkgs-cluster-1-worker-nodepool-a1-4vvkb-65494d66d8-h5fp8   Ready    <none>                 32m   v1.21.6+vmware.1
    tkgs-cluster-1-worker-nodepool-a1-4vvkb-65494d66d8-q4g24   Ready    <none>                 33m   v1.21.6+vmware.1
    tkgs-cluster-1-worker-nodepool-a1-4vvkb-65494d66d8-vdcn4   Ready    <none>                 33m   v1.21.6+vmware.1
    tkgs-cluster-1-worker-nodepool-a2-2n22f-bd59d7b96-nh4dg    Ready    <none>                 34m   v1.21.6+vmware.1
    tkgs-cluster-1-worker-nodepool-a2-2n22f-bd59d7b96-vvfmf    Ready    <none>                 33m   v1.21.6+vmware.1
  17. Überprüfen Sie die Clusterbereitstellung mit zusätzlichen kubectl-Befehlen.
    kubectl get namespaces
    kubectl get pods -A
    kubectl cluster-info
    kubectl api-resources
  18. Definieren Sie die entsprechende Pod-Sicherheitsrichtlinie.
    Für Tanzu Kubernetes-Cluster ist der PodSecurityPolicy-Zugangscontroller standardmäßig aktiviert. Weitere Informationen finden Sie unter Verwenden von Pod-Sicherheitsrichtlinien mit Tanzu Kubernetes-Clustern.
    Je nach Arbeitslast und Benutzer müssen Sie Bindungen für die vom System bereitgestellte PodSecurityPolicy-Richtlinie oder eine benutzerdefinierte PodSecurityPolicy-Richtlinie erstellen. Weitere Informationen finden Sie unter Beispiel für Rollenbindungen für die Pod-Sicherheitsrichtlinie.
  19. Stellen Sie eine Beispiel-Arbeitslast bereit und überprüfen Sie die Clustererstellung.
    Weitere Informationen finden Sie unter Bereitstellen von Arbeitslasten auf Tanzu Kubernetes-Clustern.
  20. Nehmen Sie den Cluster durch den Einsatz von TKG-Erweiterungen in Betrieb.
    Weitere Informationen finden Sie unter Bereitstellen von TKG-Paketen auf Tanzu Kubernetes-Clustern.