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

Der Workflow bietet ein End-to-End-Verfahren für die Clusterbereitstellung. Jeder Schritt enthält Links für weitere Informationen über die jeweilige Aufgabe.

Voraussetzungen

Erfüllen Sie die folgenden Voraussetzungen

Prozedur

  1. Überprüfen Sie, ob die oben in diesem Thema aufgeführten Voraussetzungen erfüllt sind.
  2. Laden Sie die Kubernetes-CLI-Tools für vSphere herunter und installieren Sie sie.
  3. Authentifizieren Sie sich mit dem vSphere-Plug-In für kubectl beim Supervisor-Cluster.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  4. Ü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.
  5. 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
  6. Listen Sie die VM-Klassenbindungen auf, die im Ziel-vSphere-Namespace verfügbar sind.
    kubectl get virtualmachineclassbindings
    Sie können nur VM-Klassen verwenden, die an den Ziel-Namespace gebunden sind.
    Weitere Informationen finden Sie unter VM-Klassen für Tanzu Kubernetes-Cluster.
  7. Rufen Sie die verfügbaren Klassen persistenter Speicher-Volumes ab.
    kubectl describe storageclasses
  8. Listen Sie die verfügbaren Tanzu Kubernetes-Versionen auf.
    Sie können einen der folgenden Befehle verwenden:
    kubectl get tkr
    kubectl get tanzukubernetesreleases
  9. Erstellen Sie die YAML-Datei für die Bereitstellung eines Tanzu Kubernetes-Clusters.
    1. Beginnen Sie mit einer der YAML-Beispieldateien.
    2. Füllen Sie die Cluster-YAML anhand der Informationen auf, die Sie durch die Ausgabe der vorhergehenden Befehle erhalten haben, wie zum Beispiel:
      • Ziel-vSphere-Namespace: tkgs-ns
      • Getrennte Volumes für Knotenkomponenten mit hoher Änderungsrate: etcd und containerd
      • Speicherklasse für Clusterknoten und Arbeitslasten: vwt-storage-policy
      • Gebundene VM-Klassen: guaranteed-medium und guaranteed-small
      • TKR-NAME: v1.21.6---vmware.1-tkg.1.b3d708a
      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 diesem Beispiel wird das standardmäßige Cluster-Netzwerk verwendet, d. h. die Antrea-CNI und standardmäßige CIDR-Bereiche für Cluster-Pods und -Dienste.
    3. Passen Sie den Cluster nach Bedarf an, indem Sie die vollständige Liste der Konfigurationsparameter heranziehen.
    4. Speichern Sie die Datei als tkgs-cluster-1.yaml oder ähnlich.
  10. 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
  11. Ü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
  12. Ü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.
  13. 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.
  14. 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
  15. Ü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.
  16. 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.
  17. Ü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
  18. Überprüfen Sie die Clusterbereitstellung mit zusätzlichen kubectl-Befehlen.
    kubectl get namespaces
    kubectl get pods -A
    kubectl cluster-info
    kubectl api-resources
  19. 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.
  20. Stellen Sie eine Beispiel-Arbeitslast bereit und überprüfen Sie die Clustererstellung.
    Weitere Informationen finden Sie unter Bereitstellen von Arbeitslasten auf Tanzu Kubernetes-Clustern.
  21. 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.