In diesem Thema wird erläutert, wie Sie Arbeitslastcluster herunterfahren und neu starten und wie Sie sie löschen.
Möglicherweise müssen Sie Arbeitslastcluster herunterfahren und neu starten, um geplante Ausfälle für Netzwerkwartung oder geplante Netzwerkausfallzeiten zu berücksichtigen.
jq
lokal installiert.Führen Sie den folgenden Befehl aus, um Informationen zu Ihrer etcd
-Datenbank zu erfassen:
kubectl --kubeconfig /etc/kubernetes/admin.conf get pods `kubectl --kubeconfig /etc/kubernetes/admin.conf get pods -A | grep etc | awk '{print $2}'` -n kube-system -o=jsonpath='{.spec.containers[0].command}' | jq
Beispielausgabe:
[
"etcd",
"--advertise-client-urls=https://192.168.7.154:2379",
"--cert-file=/etc/kubernetes/pki/etcd/server.crt",
"--client-cert-auth=true",
"--data-dir=/var/lib/etcd",
"--initial-advertise-peer-urls=https://192.168.7.154:2380",
"--initial-cluster=workload-vsphere-tkg2-control-plane-fk5hw=https://192.168.7.154:2380",
"--key-file=/etc/kubernetes/pki/etcd/server.key",
"--listen-client-urls=https://127.0.0.1:2379,https://192.168.7.154:2379",
"--listen-metrics-urls=http://127.0.0.1:2381",
"--listen-peer-urls=https://192.168.7.154:2380",
"--name=workload-vsphere-tkg2-control-plane-fk5hw",
"--peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt",
"--peer-client-cert-auth=true",
"--peer-key-file=/etc/kubernetes/pki/etcd/peer.key",
"--peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt",
"--snapshot-count=10000",
"--trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt"
]
Für jeden Knoten der Steuerungsebene:
Führen Sie den ssh
-Befehl aus, um sich beim Knoten anzumelden.
Führen Sie den folgenden Befehl aus, um nach der zugehörigen ausführbaren etcdctl
-Datei zu suchen.
find / -type f -name "*etcdctl*" -print
Beispielausgabe:
/run/containerd/io.containerd.runtime.v1.linux/k8s.io/823581f975804b65048f4babe2015a95cfa7ed6f767073796afe47b9d03299fb/rootfs/usr/local/bin/etcdctl`
/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/19/fs/usr/local/bin/etcdctl
Erstellen Sie eine etcd
-Sicherungsdatei und überprüfen Sie sie.
Führen Sie den folgenden Befehl aus:
ETCD-EXE snapshot save LOCAL-BACKUP --endpoints=ENDPOINTS --cacert=CA --cert=CERT --key=KEY
Dabei gilt:
ETCD-EXE
ist der lokale Pfad zur ausführbaren etcdctl
-DateiLOCAL-BACKUP
ist die lokale Datei, in der gesichert werden soll, z. B. /tmp/etcdBackup1.db
ENDPOINTS
, CA
, CERT
und KEY
sind die oben aufgezeichneten Werte für --advertise-client-urls
, --peer-trusted-ca-file
, --cert-file
und --key-file
Beispiel:
/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/19/fs/usr/local/bin/etcdctl snapshot save /tmp/etcdBackup1.db \
--endpoints=https://192.168.7.154:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key
Überprüfen Sie, dass die Sicherungsdatei erstellt wurde:
ls -l LOCAL-BACKUP
Überprüfen Sie den Sicherungsinhalt, indem Sie einen Snapshot der Datei generieren:
ETCD-EXE --write-out=table snapshot status LOCAL-BACKUP
Führen Sie auf Ihrer Bootstrap-Maschine die folgende Befehlssequenz aus, um Clusterinformationen zu erfassen und in einer Datei zu speichern:
tanzu cluster list -A > CLUSTER-INFO-1
kubectl config get-contexts >> CLUSTER-INFO-1
kubectl config use-context tkg-mgmt-vsphere-20211111074850-admin@tkg-mgmt-vsphere-20211111074850 >> CLUSTER-INFO-1
kubectl get nodes -o wide >> CLUSTER-INFO-1
kubectl config use-context mycluster1-admin@mycluster1 >> CLUSTER-INFO-1
kubectl get nodes -o wide >> CLUSTER-INFO-1
cat CLUSTER-INFO-1
Dabei ist CLUSTER-INFO-1
eine lokale Textdatei, in der die Informationen gespeichert werden sollen, z. B. /tmp/SaveClusterInfo1.txt
.
Entleeren Sie alle Anwendungen auf den Worker-Knoten.
Beenden Sie alle virtuellen Maschinen in vCenter in der folgenden Reihenfolge:
Starten Sie alle virtuellen Maschinen auf vCenter in der folgenden Reihenfolge neu:
Führen Sie die folgende Befehlssequenz aus, um Clusterinformationen zu erfassen und in einer anderen Datei zu speichern:
tanzu cluster list -A --include-management-cluster -A > CLUSTER-INFO-2
kubectl config get-contexts >> CLUSTER-INFO-2
kubectl config use-context tkg-mgmt-vsphere-20211111074850-admin@tkg-mgmt-vsphere-20211111074850 >> CLUSTER-INFO-2
kubectl get nodes -o wide >> CLUSTER-INFO-2
kubectl config use-context mycluster1-admin@mycluster1 >> CLUSTER-INFO-2
kubectl get nodes -o wide >> CLUSTER-INFO-2
cat CLUSTER-INFO-2
Dabei ist CLUSTER-INFO-2
eine andere lokale Textdatei, in der die Informationen gespeichert werden sollen, z. B. /tmp/SaveClusterInfo2.txt
.
Vergleichen Sie die beiden Clusterinformationsdateien, um sicherzustellen, dass sie über dieselben Clusterinformationen verfügen, z. B.:
sdiff /tmp/SaveClusterInfo1.txt /tmp/SaveClusterInfo2.txt
Führen Sie zum Löschen eines Arbeitslastclusters den Befehl tanzu cluster delete
aus. Abhängig von den Clusterinhalten und der Cloudinfrastruktur müssen Sie möglicherweise clusterinterne Datenträger und Dienste löschen, bevor Sie den Cluster selbst löschen.
WichtigSie müssen Arbeitslastcluster explizit löschen. Arbeitslastcluster können nicht gelöscht werden, indem Sie ihren Namespace im Verwaltungscluster löschen.
Listen Sie die Cluster auf.
Um alle Arbeitslastcluster innerhalb des aktuellen Anmeldekontexts der Tanzu CLI aufzulisten, führen Sie den Befehl tanzu cluster list -A
aus.
tanzu cluster list -A
Löschen Sie Datenträger und Dienste.
Wenn der Cluster, den Sie löschen möchten, dauerhafte Datenträger oder Dienste wie Lastausgleichsdienste und Datenbanken enthält, müssen Sie sie möglicherweise manuell löschen, bevor Sie den Cluster selbst löschen. Was Sie vorab löschen müssen, hängt von Ihrer Cloudinfrastruktur ab:
So löschen Sie den Diensttyp LoadBalancer (Dienst) in einem Cluster:
Legen Sie kubectl
auf den Kontext des Clusters fest.
kubectl config set-context my-cluster@user
Rufen Sie die Liste der Dienste des Clusters ab.
kubectl get service
Löschen Sie jeden Diensttyp LoadBalancer
.
kubectl delete service <my-svc>
So löschen Sie Objekte dauerhafter Datenträger (PV) und Anforderungen dauerhafter Datenträger (PVC) in einem Cluster:
Führen Sie kubectl config set-context my-cluster@user
aus, um kubectl
auf den Clusterkontext festzulegen.
Führen Sie kubectl get pvc
aus, um die Anforderungen dauerhafter Datenträger (PVCs) des Clusters abzurufen.
Für jede PVC:
Führen Sie kubectl describe pvc <my-pvc>
aus, um den PV zu identifizieren, an den sie gebunden ist. Der PV wird in der Befehlsausgabe als Volume aufgeführt, nach Status: Gebunden (Bound).
Führen Sie kubectl describe pv <my-pv>
aus, um zu ermitteln, ob der gebundene PV Reclaim Policy
Retain
oder Delete
ist.
Führen Sie kubectl delete pvc <my-pvc>
aus, um die PVC zu löschen.
Wenn die PV-Rückforderungsrichtlinie Retain
ist, führen Sie kubectl delete pv <my-pvc>
aus, melden Sie sich dann bei Ihrem Cloud-Portal an und löschen Sie das PV-Objekt dort. Löschen Sie beispielsweise einen vSphere CNS-Datenträger aus Ihrem Datenspeicherbereich > Überwachen (Monitor) > Cloudnativer Speicher (Cloud Native Storage) > Container-Datenträger (Container Volumes). Weitere Informationen zu vSphere CNS finden Sie unter Erste Schritte mit Cloud Native Storage in vSphere.
kubectl delete
.Andere Dienste: Jedes Subnetz und jeder AWS-gestützte Dienst in der VPC des Clusters, wie z. B. RDS oder VPC, und zugehörige Ressourcen wie:
Löschen Sie diese Ressourcen in der AWS-Benutzeroberfläche wie oben beschrieben oder mit der aws
-CLI.
Dauerhafte Datenträger und Anforderungen dauerhafter Datenträger: Löschen Sie diese Ressourcen mit dem Befehl kubectl delete
wie unter Löschen von Anforderungen dauerhafter Datenträger und von dauerhaften Datenträgern beschrieben.
Beim Löschen eines Clusters wird alles gelöscht, was TKG in der Ressourcengruppe des Clusters erstellt hat.
Migrieren Sie bei Bedarf Arbeitslasten von den Clustern, z. B. mithilfe von Velero, wie unter Clustermigration und Ressourcenfilterung in der Velero-Dokumentation beschrieben.
Löschen Sie die Cluster.
Um einen Cluster zu löschen, führen Sie tanzu cluster delete
aus.
tanzu cluster delete my-cluster
Wenn der Cluster in einem anderen Namespace als default
ausgeführt wird, müssen Sie die Option --namespace
angeben, um diesen Cluster zu löschen.
tanzu cluster delete my-cluster --namespace=my-namespace
Um den Überprüfungsschritt yes/no
zu überspringen, wenn Sie tanzu cluster delete
ausführen, geben Sie die Option --yes
an.
tanzu cluster delete my-cluster --namespace=my-namespace --yes
Um einen Cluster unter AWS zu löschen, muss als Variable AWS_REGION
die Region festgelegt werden, in der der Cluster ausgeführt wird. Sie können AWS_REGION
in der lokalen Umgebung oder im Anmeldedatenprofil festlegen, wie unter Konfigurieren der AWS-Kontoanmeldedaten beschrieben. Um den Cluster in einer anderen Region zu löschen, setzen Sie die Einstellung dem Befehl tanzu cluster delete
voran:
AWS_REGION=eu-west-1 tanzu cluster delete my-cluster
WichtigÄndern Sie den Kontext nicht und bearbeiten Sie die Datei
.kube-tkg/config
nicht, während Tanzu Kubernetes Grid-Vorgänge ausgeführt werden.