GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer des pods dans Kubernetes [Quick K8s Tips]

Lorsque vous travaillez sur l'environnement de cluster Kubernetes, vous rencontrerez parfois une situation dans laquelle vous devrez supprimer des pods de l'un de vos nœuds de travail.

Vous devrez peut-être déboguer des problèmes avec le nœud lui-même, mettre à niveau le nœud ou simplement réduire votre cluster.

L'action de supprimer un pod Kubernetes est très simple avec le kubectl delete pod commande :

kubectl delete pod pod-name

Cependant, vous devez suivre certaines étapes spécifiques pour minimiser les perturbations de votre application. Je vais l'expliquer en détail dans cet article.

Supprimer gracieusement les pods Kubernetes

Tout d'abord, répertoriez tous les pods :

[email protected]:~# kubectl get pods -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP               NODE          NOMINATED NODE   READINESS GATES
my-dep-557548758d-d2pmd   1/1     Running   0          2d23h   172.16.213.194   kworker-rj2   <none>           <none>
my-dep-557548758d-gprnr   1/1     Running   0          2d23h   172.16.213.49    kworker-rj1   <none>           <none>
pod-delete-demo           1/1     Running   0          4s      172.16.213.196   kworker-rj2   <none>           <none>

Supposons maintenant que vous souhaitiez supprimer le pod nommé "pod-delete-demo", exécutez la commande suivante :

[email protected]:~# kubectl delete pod pod-delete-demo
pod "pod-delete-demo" deleted

Confirmez que le pod en question est supprimé en listant tous les pods :

[email protected]:~# kubectl get pods -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP               NODE          NOMINATED NODE   READINESS GATES
my-dep-557548758d-d2pmd   1/1     Running   0          2d23h   172.16.213.194   kworker-rj2   <none>           <none>
my-dep-557548758d-gprnr   1/1     Running   0          2d23h   172.16.213.49    kworker-rj1   <none>           <none>

Vous pouvez voir qu'aucun pod pod-delete-demo n'est en cours d'exécution.

Forcer la suppression des pods Kubernetes

Pourquoi avez-vous besoin de forcer la suppression du pod ? ?

Parfois, le pod reste bloqué en terminaison/inconnu état sur un nœud inaccessible après un délai d'attente.

Les pods peuvent également entrer dans ces états lorsque l'utilisateur tente de supprimer correctement un pod sur un nœud inaccessible.

Dans ces scénarios, vous pouvez supprimer le pod de force.

Si vous souhaitez supprimer un pod de force à l'aide de la version kubectl >= 1.5, procédez comme suit :

kubectl delete pods pod_name --grace-period=0 --force

Si vous utilisez une version de kubectl <=1.4, vous devez omettre le --force option et utilisation :

kubectl delete pods pod_name --grace-period=0

Supprimons maintenant le pod "pod-delete-demo" en utilisant la méthode ci-dessus :

[email protected]:~# kubectl delete pod pod-delete-demo --force --grace-period=0 --namespace=default
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
pod "pod-delete-demo" force delete

REMARQUE : Forcer les suppressions de pod ne le fait pas attendez la confirmation du kubelet que le pod a été résilié.

Si même après ces commandes le pod est bloqué en Unknown state, utilisez la commande suivante pour supprimer le pod du cluster :

kubectl patch pod pod-delete-demo -p '{"metadata":{"finalizers":null}}'

Confirmez que le pod a bien été supprimé :

[email protected]:~# kubectl get pods -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP               NODE          NOMINATED NODE   READINESS GATES
my-dep-557548758d-d2pmd   1/1     Running   0          2d23h   172.16.213.194   kworker-rj2   <none>           <none>
my-dep-557548758d-gprnr   1/1     Running   0          2d23h   172.16.213.49    kworker-rj1   <none>           <none>

J'espère que vous trouverez cette astuce Kubernetes utile. Restez abonné pour plus de conseils et de tutoriels DevOps .

Rakesh Jain
DevOps Professionnel | RHCA | Jenkins | Gite | Docker | Kubernetes | Ansible | Prométhée | Grafane | Nuage AWS

Linux
  1. Comment supprimer un déploiement Kubernetes [Quick K8s Tips]

  2. Comment redémarrer les pods dans Kubernetes [Quick K8s Tip]

  3. Comment lire les nœuds dans Kubernetes [Quick K8s Tip]

  4. Comment supprimer un service dans Kubernetes

  5. Comment obtenir l'historique des pods exécutés sur le nœud Kubernetes ?

Comment configurer le registre Docker privé dans Kubernetes (k8s)

Comment supprimer des lignes dans Vim / Vi

Comment créer un StatefulSet dans Kubernetes

Comment créer et gérer des pods Kubernetes sous Linux

Comment afficher les journaux de pod Kubernetes avec Kubectl

Pourquoi Kubernetes s'appelle-t-il K8s ?