2015-11-03 23 views

risposta

44

Non c'è alcun comando per fare esattamente quello che hai chiesto.

Ecco alcune corrispondenze ravvicinate.

È possibile eliminare tutti i baccelli in un unico spazio dei nomi con questo comando:

kubectl delete --all pods --namespace=foo 

È possibile eliminare tutti gli spazi dei nomi, e ogni oggetto in ogni spazio dei nomi (ma non gli oggetti non-namespace, come nodi e alcuni eventi) con questo comando:

kubectl delete --all namespaces 

Tuttavia, quest'ultimo comando non è probabilmente qualcosa che si vuole fare, dal momento che eliminerà le cose nello spazio dei nomi Kube-system, che renderanno il vostro cluster non utilizzabile.

Questo comando cancellerà tutti gli spazi dei nomi, tranne Kube-sistema, che potrebbe essere utile:

for each in $(kubectl get ns -o jsonpath="{.items[*].metadata.name}" | grep -v kube-system); 
do 
    kubectl delete ns $each 
done 
+2

"" {.items [*]. Metadata.name} "- ci sono doppie virgolette presenti in questa risposta ... si prega di controllare e modificare. – kumar

+0

corretto il preventivo –

5

Hai solo bisogno sed di fare questo:

kubectl get pods --no-headers=true --all-namespaces |sed -r 's/(\S+)\s+(\S+).*/kubectl --namespace \1 delete pod \2/e' 

spiega:

  1. utilizza il comando kubectl get pods --all-namespaces per ottenere l'elenco di tutti i pod in tutti gli spazi dei nomi.
  2. utilizzare l'opzione --no-headers=true per nascondere le intestazioni.
  3. uso s comando sed per recuperare i primi due parole, che rappresentano namespace e pod's name rispettivamente, poi assemblare il comando delete li utilizzano.
  4. il comando finale delete è simile a: kubectl --namespace kube-system delete pod heapster-eq3yw.
  5. utilizzare il modificatore e del comando s per eseguire il comando assemblato in precedenza, che eseguirà l'effettivo delete.

Per evitare baccelli eliminare nella kube-system namespace, solo bisogno di aggiungere grep -v kube-system escludere kube-system spazio dei nomi prima del comando sed.

+0

Si può anche solo eliminare' --all-namespace 'se non si desidera eliminare i pod nello spazio dei nomi' kube-system' – ianstarz

Problemi correlati