Osservando il documento c'è una chiamata api per eliminare un pod 'a', esiste un modo per uccidere tutti i pod in tutti gli spazi dei nomi?Comando per eliminare tutti i pod in tutti gli spazi dei nomi di Kubernetes
risposta
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
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:
- utilizza il comando
kubectl get pods --all-namespaces
per ottenere l'elenco di tutti i pod in tutti gli spazi dei nomi. - utilizzare l'opzione
--no-headers=true
per nascondere le intestazioni. - uso
s
comandosed
per recuperare i primi due parole, che rappresentanonamespace
epod's name
rispettivamente, poi assemblare il comandodelete
li utilizzano. - il comando finale
delete
è simile a:kubectl --namespace kube-system delete pod heapster-eq3yw
. - utilizzare il modificatore
e
del comandos
per eseguire il comando assemblato in precedenza, che eseguirà l'effettivodelete
.
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
.
Si può anche solo eliminare' --all-namespace 'se non si desidera eliminare i pod nello spazio dei nomi' kube-system' – ianstarz
"" {.items [*]. Metadata.name} "- ci sono doppie virgolette presenti in questa risposta ... si prega di controllare e modificare. – kumar
corretto il preventivo –