Dans cet article, nous discuterons de ces étapes. Gardez à l'esprit, cependant, que la précipitation de ce processus peut entraîner des erreurs et des temps d'arrêt de l'application. Maintenant, discutons du sujet en détail.
Comment supprimer les gousses de Kubernetes de la manière la plus simple?
Vous devez d'abord énumérer les pods afin de supprimer le message de la manière la plus efficace. Vous pouvez le faire si vous utilisez la commande get pods qui est donnée ci-dessous.
$ kubectl get gods -o largeIci, vous pouvez voir que la commande get pods répertorié dans les pods avec des détails.
Maintenant, si nous supprimons le pod «pod-trois». Tapez la commande suivante:
$ Kubectl delete pod pod-troisLa commande ci-dessus dans laquelle nous avons spécifié le nom du pod (pod-trois) a supprimé le pod avec succès.
$ kubectl get gods -o largeEn répertoriant toutes les gousses, vous pouvez confirmer que celui en question a été supprimé.
Comme vous pouvez le vérifier dans l'image apposée ci-dessus, il n'y a pas de «pod-trois.'
Comment forcer la suppression des gousses de Kubernetes?
Pourquoi forcer la suppression de pod est requise? Après un temps mort, le pod peut se retrouver coincé dans un état de terminaison / inconnu sur un nœud inaccessible. Ces statuts peuvent également se produire lorsqu'un utilisateur essaie de supprimer gracieusement une pod d'un nœud inaccessible. Dans certaines situations, vous êtes autorisé à supprimer / supprimer avec force le pod.
Que la suppression d'une force soit efficace ou non pour détruire un pod, le nom sera immédiatement supprimé de l'apicher. Cela permettrait au contrôleur StatefulSet d'établir un pod de remplacement avec la même identité; Cela pourrait conduire dans la duplication d'un pod déjà couché, qui, si ledit pod peut toujours interagir avec d'autres membres de l'état, violerait la sémantique à une seule sémantique que l'état a été fait pour garantir.
La suppression de la force manuelle doit être utilisée avec soin car elle peut briser au moins une des sémantiques de l'état de l'état. Dessets stateful peut être utilisé pour exécuter des applications distribuées et en grappe qui nécessitent une identité de réseau cohérente et un stockage persistant.
La configuration de ces applications est fréquemment basée sur un ensemble comprenant un nombre prédéterminé de membres avec des identités fixes. Plusieurs membres partageant la même identité peuvent être dangereux et peuvent se retrouver dans une perte de données.
Lorsque vous supprimez un pod de force avec état de force, vous vous assurez qu'il ne communiquera plus avec d'autres gousses dans le stadefult et que son identité peut être en toute sécurité pour un remplacement.
Suivez ces procédures pour détruire avec force un pod à l'aide de kubectl> = 1.5:
$ kubectl delete pods nom-de-pod --grace-period = 0 --ForceSi vous utilisez kubectl> = 1.4, vous pouvez ignorer l'argument -force et utiliser à la place:
$ kubectl delete pods nom-de-pod --grace-period = 0Maintenant, en utilisant la voie ci-dessus, supprimez le pod «pod-two»:
$ kubectl delete pod pod-two --force --grace-period = 0 --namespace = par défautVoici le résultat de la commande ci-dessus lors de l'exécution.
Veuillez noter que les suppressions de pods de force ne reposent pas sur la confirmation de Kublet que le pod a été résilié.
Si le pod reste dans l'état inconnu après avoir exécuté ces commandes, utilisez la commande suivante pour la supprimer du cluster:
$ kubectl patch pod pod-two -p '"métadonnées": "finalisers": null'Vérifiez pour voir si le pod a été supprimé.
Comment supprimer les gousses d'un nœud en même temps?
Si votre nœud a des gousses non essentielles ou des gousses avec état, vous pouvez utiliser la commande de drain Kubectl. Cette étape supprimera toutes les nœuds du nœud. Avant de progresser, vérifiez l'identité du nœud que vous supprimez et assurez-vous que les gousses sur un certain nœud peuvent être terminées en toute sécurité. La tâche sera accomplie pour vous avec l'instruction suivante.
$ kubectl obtenir des nœudsAprès la commande get pod, utilisez la commande citée suivante donnée ci-dessous.
Ensuite, essayez d'utiliser l'instruction citée suivante pour vider toutes les gousses.
$ kubectl drainPour vous assurer qu'aucune pods ne fonctionne toujours sur le nœud, exécutez à nouveau la commande get pods. Si vous utilisez NoExecure pour exécuter des pods, ils seront toujours sur le nœud.
Exécutez la commande de drain une fois de plus. Mais cette fois, le drapeau de Force doit être inclus. Cela éliminera tous les gousses du nœud. Enfin, utilisez la commande kubectl delete nœud pour supprimer le nœud du cluster pertinent.
Comment laisser les gousses sur les nœuds?
Une fois que vous avez fini d'effectuer la maintenance sur un nœud, utilisez la commande kubectl unordon pour réactiver la planification sur ce nœud. Ensuite, à mesure que les pods deviennent disponibles pour la planification, ils réapparaîtront sur ce nœud.
$ kubectl unordon docker-desktopSi vous avez un nœud nouvellement non clanonné ou un nouveau nœud au sein de votre cluster, équilibrer les pods particuliers peut être un problème. Bien qu'il soit préférable de laisser le planificateur de Kubernetes allouer des nombres.
Conclusion
Vous devrez peut-être supprimer un seul pod ou plusieurs pods de l'un de vos nœuds lors de l'exécution de votre cluster Kubernetes. Il est possible que vous puissiez avoir besoin de résoudre les difficultés de nœud, de mettre à niveau un nœud spécifique ou de réduire votre cluster. Bien que la suppression de n'importe quelle gousse ou gousse d'un nœud ne soit pas très difficile, il y a des conseils et des techniques que vous devez suivre pour vous assurer que votre application / programme n'est pas perturbé. C'est ce dont nous avons parlé et élargi dans cet article. Avant d'exécuter des instructions, assurez-vous que vous avez soigneusement lu et compris chaque étape pour éviter de faire des erreurs qui pourraient entraîner des temps d'arrêt.