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
- Laden Sie die Kubernetes-CLI-Tools für vSphere herunter und installieren Sie sie.
- Authentifizieren Sie sich mit dem vSphere-Plug-In für kubectl beim Supervisor-Cluster.
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- Ü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.
- Stellen Sie sicher, dass der Ziel-vSphere-Namespace der aktuelle Kontext ist.
kubectl config get-contexts
Wenn der Ziel-
vSphere-Namespace nicht der aktuelle Kontext ist, wechseln Sie zu diesem.
kubectl config use-context tkgs-ns
- 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.
- Rufen Sie die verfügbaren Klassen persistenter Speicher-Volumes ab.
kubectl describe storageclasses
- 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.
- Erstellen Sie die YAML-Datei zur Bereitstellung des Tanzu Kubernetes-Clusters.
- Überprüfen Sie die Spezifikation der v1alpha2-API.
- 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.
- Speichern Sie die YAML-Datei als
tkgs-cluster-1.yaml
oder ähnlich.
- 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
- 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.
- 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
- Ü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
- Ü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.
- Führen Sie weitere
kubectl
-Befehle zum Überprüfen der Clusterbereitstellung aus.
kubectl get tanzukubernetescluster,cluster-api,virtualmachinesetresourcepolicy,virtualmachineservice,virtualmachine
- 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 [email protected] \
--tanzu-kubernetes-cluster-name tkgs-cluster-1 --tanzu-kubernetes-cluster-namespace tkgs-ns
- Ü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.
- Listen Sie mithilfe von
kubectl
verfügbare Clusterkontexte auf.
kubectl config get-contexts
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.
- Überprüfen Sie die Clusterbereitstellung mit dem folgenden kubectl-Befehl.
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
- Überprüfen Sie die Clusterbereitstellung mit zusätzlichen kubectl-Befehlen.
kubectl get namespaces
kubectl get pods -A
kubectl cluster-info
kubectl api-resources
- Definieren Sie die entsprechende Pod-Sicherheitsrichtlinie.
- Stellen Sie eine Beispiel-Arbeitslast bereit und überprüfen Sie die Clustererstellung.
- Nehmen Sie den Cluster durch den Einsatz von TKG-Erweiterungen in Betrieb.