Al mirar los documentos, hay una llamada API para eliminar 'a' pod, pero ¿hay alguna manera de matar todos los pods en todos los espacios de nombres?
fuente
Al mirar los documentos, hay una llamada API para eliminar 'a' pod, pero ¿hay alguna manera de matar todos los pods en todos los espacios de nombres?
No hay un comando para hacer exactamente lo que le pediste.
Aquí hay algunos partidos cercanos.
Puede eliminar todos los pods en un solo espacio de nombres con este comando:
kubectl delete --all pods --namespace=foo
También puede eliminar todas las implementaciones en el espacio de nombres, lo que eliminará todos los pods adjuntos con las implementaciones correspondientes al espacio de nombres
kubectl delete --all deployments --namespace=foo
Puede eliminar todos los espacios de nombres y todos los objetos en cada espacio de nombres (pero no los objetos sin espacios de nombres, como los nodos y algunos eventos) con este comando:
kubectl delete --all namespaces
Sin embargo, el último comando probablemente no sea algo que desee hacer, ya que eliminará cosas en el espacio de nombres del sistema kube, lo que hará que su clúster no sea utilizable.
Este comando eliminará todos los espacios de nombres, excepto kube-system, que puede ser útil:
for each in $(kubectl get ns -o jsonpath="{.items[*].metadata.name}" | grep -v kube-system);
do
kubectl delete ns $each
done
kubectl delete pods --all --all-namespacesparece funcionar a veces (no estoy seguro de qué lo hace funcionar en algunos entornos y no en otros). Funciona bien desde mi servidor bastión pero no desde la computadora portátil. Ambos ejecutan Debian y ambos ejecutan la misma versión de Kubectl (versión de clúster 1.13)kube-systemespacio de nombres. En el ejemplo del mensaje, puedo ver eldefaultespacio de nombres. ¿Sekube-systemelimina con el comando que ha adjuntado?para deshacerse de los molestos controladores de replicación también.
fuente
ingeliminarSolo necesitas
sedhacer esto:Explica:
kubectl get pods --all-namespacespara obtener la lista de todos los pods en todos los espacios de nombres.--no-headers=trueopción para ocultar los encabezados.scomando desedpara buscar las dos primeras palabras, que representannamespaceypod's namerespectivamente, luego ensamble eldeletecomando usándolas.deletede comandos es igual:kubectl --namespace kube-system delete pod heapster-eq3yw.emodificador descomando para ejecutar el comando ensamblado anteriormente, que hará losdeletetrabajos reales .Para evitar eliminar pods en el
kube-systemespacio de nombres, solo necesita agregargrep -v kube-systempara excluirkube-systemespacios de nombres antes delsedcomando.fuente
--all-namespacessi no desea eliminar los pods en elkube-systemespacio de nombresSimplemente puedes correr
El primero
allsignifica los tipos de recursos comunes (pods, conjuntos de réplicas, implementaciones, ...)kubectl get all == kubectl get pods,rs,deployments, ...El segundo
--allmedio es seleccionar todos los recursos de los tipos seleccionados.Tenga en cuenta que
allno incluye:Para limpiar perfectamente,
fuente
Aquí hay una línea que se puede extender con grep para filtrar por nombre.
fuente
fuente
Si ya tiene pods que se recrean, piense en eliminar primero todas las implementaciones
Simplemente reemplace el NAMSPACE y el DESPLIEGUE por los correspondientes, puede obtener toda la información de despliegues con el siguiente comando
fuente
El complemento Kubectl bulk (acción masiva en Krew) puede ser útil para usted, ya que le brinda operaciones masivas en recursos seleccionados. Este es el comando para eliminar pods
Puedes consultar los detalles en este
fuente
Creo un código de Python para eliminar todo en el espacio de nombres
delall.py
y entonces
fuente
K8s funciona completamente en lo fundamental del espacio de nombres. si desea liberar todos los recursos relacionados con el espacio de nombres especificado.
puede usar lo siguiente:
kubectl eliminar el espacio de nombres k8sdemo-app
fuente