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?

37
demandé sur Dag 2015-11-04 00:15:09

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
77
répondu Eric Tune 2017-06-20 16:32:25
kubectl delete daemonsets,replicasets,services,deployments,pods,rc --all

pour se débarrasser des contrôleurs de réplication embêtants aussi.

- db

10
répondu jason 2018-05-17 17:27:55

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:

  1. utiliser la commande kubectl get pods --all-namespaces pour obtenir la liste de tous les gousses dans tous les espaces de noms.
  2. utiliser --no-headers=true option pour cacher les en-têtes.
  3. utiliser s commande sed pour récupérer les deux premiers mots, qui représentent namespace et pod's name respectivement, puis assembler le delete commande les utilisant.
  4. final delete commande est juste comme: kubectl --namespace kube-system delete pod heapster-eq3yw.
  5. e modificateur de s 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.

6
répondu Weike 2017-06-06 01:56:19