web-dev-qa-db-fra.com

Supprimer tout le contenu d'un noeud kubernetes

Comment supprimer tout le contenu d'un nœud kubernetes?
Le contenu comprend les déploiements, les jeux de réplicas, etc. Mais kubrenetes recrée tous les pods.
Existe-t-il un moyen de supprimer tous les jeux de réplicas présents dans un nœud? 

6
Mufeed

Si vous testez des choses, le plus simple serait

kubectl delete deployment --all

Bien que si vous utilisez minikube, le plus simple serait probablement de supprimer la machine et de recommencer avec un nouveau nœud

minikube delete
minikube start

Si nous parlons d'un cluster de production, Kubernetes a une fonctionnalité intégrée permettant de drainer un nœud du cluster , en supprimant tous les objets de ce nœud en toute sécurité.

Vous pouvez utiliser kubectl drain pour expulser en toute sécurité tous vos pods d'un nœud avant de procéder à la maintenance du nœud. Les expulsions en toute sécurité permettent aux conteneurs du pod de se terminer normalement et respectent les PodDisruptionBudgets que vous avez spécifiés.

Note: Par défaut, kubectl drain ignorera certains pods système sur le nœud qui ne peuvent pas être tués. consultez la documentation de kubectl drain pour plus de détails.

Lorsque kubectl drain est renvoyé avec succès, cela signifie que tous les pods (à l'exception de ceux exclus comme décrit dans le paragraphe précédent) ont été expulsés en toute sécurité (en respectant la période de fin de vie souhaitée et sans violer les SLO de perturbation au niveau de l'application). Vous pouvez alors supprimer le nœud en mettant hors tension sa machine physique ou, en cas d'exécution sur une plate-forme en nuage, en supprimant sa machine virtuelle.

Commencez par identifier le nom du noeud que vous souhaitez drainer. Vous pouvez répertorier tous les nœuds de votre cluster avec

kubectl get nodes

Ensuite, dites à Kubernetes de vider le noeud:

kubectl drain <node name>

Une fois qu'il est renvoyé (sans donner d'erreur), vous pouvez éteindre le nœud (ou de manière équivalente, sur une plate-forme en nuage, supprimez la machine virtuelle sauvegardant le nœud). drain attend la résiliation gracieuse. Vous ne devez pas opérer sur la machine tant que la commande n'est pas terminée.

Si vous laissez le nœud du cluster pendant l’opération de maintenance, vous devez exécuter

kubectl uncordon <node name>

ensuite, indiquer à Kubernetes qu'il peut reprendre la planification de nouveaux modules sur le noeud.

Veuillez noter que si certains pods ne sont pas gérés par ReplicationController, ReplicaSet, DaemonSet, StatefulSet ou Job, alors drain ne supprimera aucun pod si vous n'utilisez pas --force, comme indiqué dans la documentation .

kubectl drain <node name> --force
13
fiunchinho

Kubenertes fournit un objet d'espaces de nommage pour l'isolement et la séparation des préoccupations. Par conséquent, il est recommandé d'appliquer tous les objets de ressources k8s (déploiement, réplicaSet, pods, services et autres) dans un espace de noms personnalisé. 

Maintenant, si vous souhaitez supprimer toutes les ressources k8s pertinentes et associées, il vous suffit de supprimer l’espace de nom qui supprimera toutes ces ressources. 

kubectl create namespace custom-namespace
kubectl create -f deployment.yaml --namespace=custom-namespace
kubectl delete namespaces custom-namespace

J'ai joint un lien pour des recherches ultérieures.

Espaces de noms

1
Suresh Vishnoi