Commande pour supprimer tous les pods dans tous les espaces de noms kubernetes
en regardant le doc il y a un appel d'api pour supprimer 'A' pod , est-ce qu'il y a un moyen de tuer tous les pods dans tous les espaces de noms?
3 réponses
il n'y a aucun ordre de faire exactement ce que vous avez demandé.
Voici quelques correspondances proches.
vous pouvez supprimer tous les modules d'un même espace de noms avec cette commande:
kubectl delete --all pods --namespace=foo
vous pouvez supprimer tous les namespaces, et chaque objet dans chaque namespace (mais pas les objets non-namespacés, comme les noeuds et certains événements) avec cette commande:
kubectl delete --all namespaces
cependant, cette dernière commande n'est probablement pas quelque chose que vous voulez faire, puisqu'elle supprimera des choses dans le kube-System namespace, qui rendra votre cluster non utilisable.
cette commande supprimera tous les namespaces sauf kube-system, qui pourrait être utile:
for each in $(kubectl get ns -o jsonpath="{.items[*].metadata.name}" | grep -v kube-system);
do
kubectl delete ns $each
done
kubectl delete daemonsets,replicasets,services,deployments,pods,rc --all
pour se débarrasser des contrôleurs de réplication embêtants aussi.
- db
Vous avez juste besoin sed
pour ce faire:
kubectl get pods --no-headers=true --all-namespaces |sed -r 's/(\S+)\s+(\S+).*/kubectl --namespace delete pod /e'
Explique:
- utiliser la commande
kubectl get pods --all-namespaces
pour obtenir la liste de tous les gousses dans tous les espaces de noms. - utiliser
--no-headers=true
option pour cacher les en-têtes. - utiliser
s
commandesed
pour récupérer les deux premiers mots, qui représententnamespace
etpod's name
respectivement, puis assembler ledelete
commande les utilisant. - final
delete
commande est juste comme:kubectl --namespace kube-system delete pod heapster-eq3yw
. e
modificateur des
commande pour exécuter la commande Assemblée ci-dessus, qui fera ledelete
fonctionne.
pour éviter de supprimer les gousses dans kube-system
espace de noms, il faut juste ajouter grep -v kube-system
pour exclure kube-system
espace de noms avant le sed
la commande.