Cette rubrique explique comment arrêter et redémarrer les clusters de charge de travail, et comment les supprimer.
Vous devrez peut-être arrêter et redémarrer les clusters de charge de travail pour gérer les interruptions de service prévues pour la maintenance du réseau ou l'interruption planifiée du réseau.
jq
installé localement.Exécutez la commande suivante pour collecter des informations sur votre base de données etcd
:
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
Exemple de sortie :
[
"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"
]
Pour chaque nœud de plan de contrôle :
Exécutez la commande ssh
pour vous connecter au nœud.
Exécutez la commande suivante pour localiser son fichier etcdctl
exécutable.
find / -type f -name "*etcdctl*" -print
Exemple de sortie :
/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
Créez un fichier de sauvegarde etcd
et vérifiez.
Exécutez la commande suivante :
ETCD-EXE snapshot save LOCAL-BACKUP --endpoints=ENDPOINTS --cacert=CA --cert=CERT --key=KEY
Où :
ETCD-EXE
est le chemin d'accès local au fichier etcdctl
exécutableLOCAL-BACKUP
est le fichier local vers lequel effectuer la sauvegarde, par exemple /tmp/etcdBackup1.db
ENDPOINTS
, CA
, CERT
et KEY
sont les valeurs --advertise-client-urls
, --peer-trusted-ca-file
, --cert-file
et --key-file
enregistrées ci-dessusPar exemple :
/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
Vérifiez que le compartiment a été créé :
ls -l LOCAL-BACKUP
Vérifiez le contenu de la sauvegarde en générant un snapshot à partir du fichier :
ETCD-EXE --write-out=table snapshot status LOCAL-BACKUP
À partir de votre machine de démarrage, exécutez la séquence de commandes suivante pour collecter des informations sur le cluster et les enregistrer dans un fichier :
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
Où CLUSTER-INFO-1
est un fichier texte local dans lequel enregistrer les informations, par exemple /tmp/SaveClusterInfo1.txt
.
Purgez toutes les applications sur les nœuds worker.
Arrêtez toutes les machines virtuelles sur vCenter dans l'ordre suivant :
Redémarrez toutes les machines virtuelles sur vCenter dans l'ordre suivant :
Exécutez la séquence de commandes suivante pour collecter des informations sur le cluster et les enregistrer dans un fichier différent :
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
Où CLUSTER-INFO-2
est un autre fichier texte local dans lequel enregistrer les informations, par exemple /tmp/SaveClusterInfo2.txt
.
Comparez les deux fichiers d'informations sur le cluster pour vérifier qu'ils disposent des mêmes informations sur le cluster, par exemple :
sdiff /tmp/SaveClusterInfo1.txt /tmp/SaveClusterInfo2.txt
Pour supprimer un cluster de charge de travail, exécutez la commande tanzu cluster delete
. En fonction du contenu du cluster et de l'infrastructure cloud, vous devrez peut-être supprimer des volumes et des services dans le cluster avant de supprimer le cluster.
ImportantVous devez supprimer les clusters de charge de travail explicitement. Vous ne pouvez pas le faire en supprimant leur espace de noms dans le cluster de gestion.
Répertoriez les clusters.
Pour répertorier tous les clusters de charge de travail dans le contexte de connexion actuel de la CLI Tanzu, exécutez la commande tanzu cluster list -A
.
tanzu cluster list -A
Supprimez des volumes et des services.
Si le cluster que vous souhaitez supprimer contient des volumes persistants ou des services tels que des équilibrages de charge et des bases de données, vous devrez peut-être les supprimer manuellement avant de supprimer le cluster lui-même. Ce que vous devez supprimer préalablement dépend de votre infrastructure de cloud :
Pour supprimer le type de service LoadBalancer (Service) dans un cluster :
Définissez kubectl
dans le contexte du cluster.
kubectl config set-context my-cluster@user
Récupérez la liste des services du cluster.
kubectl get service
Supprimez chaque type de service LoadBalancer
.
kubectl delete service <my-svc>
Pour supprimer des objets de volume persistant (PV) et de réclamation de volume persistant (PVC) dans un cluster :
Exécutez kubectl config set-context my-cluster@user
pour définir kubectl
sur le contexte du cluster.
Exécutez kubectl get pvc
pour récupérer les réclamations de volume persistant (PVC) du cluster.
Pour chaque réclamation de volume persistant :
Exécutez kubectl describe pvc <my-pvc>
pour identifier le volume persistant auquel il est lié. Le volume persistant est répertorié dans la sortie de la commande comme Volume, après État : Lié.
Exécutez kubectl describe pv <my-pv>
pour déterminer si sa Reclaim Policy
de volume persistant lié est Retain
ou Delete
.
Exécutez kubectl delete pvc <my-pvc>
pour supprimer la réclamation de volume persistant.
Si la stratégie de récupération de volume persistant est Retain
, exécutez kubectl delete pv <my-pvc>
, puis connectez-vous à votre portail cloud et supprimez l'objet de volume persistant à cet emplacement. Par exemple, supprimez un volume vSphere CNS de votre volet de banque de données > Surveiller (Monitor) > Stockage cloud natif (Cloud Native Storage) > Volumes de conteneur (Container Volumes). Pour plus d'informations sur vSphere CNS, reportez-vous à la page À propos du démarrage avec le stockage natif VMware Cloud.
kubectl delete
.Autres services : tout sous-réseau et service reposant sur AWS dans le VPC du cluster, tel qu'un RDS ou un VPC, et les ressources associées telles que :
Supprimez ces ressources dans l'interface utilisateur AWS comme ci-dessus ou avec l'interface de ligne de commande aws
.
Volumes persistants et réclamations de volume persistant : Supprimez ces ressources à l'aide de la commande kubectl delete
comme décrit dans la section Supprimer les réclamations de volume persistant et les volumes persistants ci-dessous.
La suppression d'un cluster supprime tout ce que TKG a créé dans le groupe de ressources du cluster.
Si nécessaire, migrez les charges de travail hors des clusters, par exemple en utilisant Velero, comme décrit dans les sections Migration des clusters et Filtrage des ressources de la documentation de Velero.
Supprimez les clusters.
Pour supprimer un cluster, exécutez tanzu cluster delete
.
tanzu cluster delete my-cluster
Si le cluster s'exécute dans un espace de noms autre que l'espace de noms default
, vous devez spécifier l'option --namespace
pour supprimer ce cluster.
tanzu cluster delete my-cluster --namespace=my-namespace
Pour ignorer l'étape de vérification yes/no
lorsque vous exécutez tanzu cluster delete
, spécifiez l'option --yes
.
tanzu cluster delete my-cluster --namespace=my-namespace --yes
Pour supprimer un cluster sur AWS, la variable AWS_REGION
doit être définie sur la région dans laquelle le cluster s'exécute. Vous pouvez définir AWS_REGION
dans l'environnement local ou le profil d'informations d'identification, comme décrit dans la section Configurer les informations d'identification du compte AWS. Pour supprimer le cluster dans une autre région, ajoutez le paramètre à la commande tanzu cluster delete
:
AWS_REGION=eu-west-1 tanzu cluster delete my-cluster
Importantne modifiez pas le contexte ou le fichier
.kube-tkg/config
lorsque des opérations Tanzu Kubernetes Grid sont en cours d'exécution.