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-namespaces
parece 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-system
espacio de nombres. En el ejemplo del mensaje, puedo ver eldefault
espacio de nombres. ¿Sekube-system
elimina con el comando que ha adjuntado?para deshacerse de los molestos controladores de replicación también.
fuente
ing
eliminarSolo necesitas
sed
hacer esto:Explica:
kubectl get pods --all-namespaces
para obtener la lista de todos los pods en todos los espacios de nombres.--no-headers=true
opción para ocultar los encabezados.s
comando desed
para buscar las dos primeras palabras, que representannamespace
ypod's name
respectivamente, luego ensamble eldelete
comando usándolas.delete
de comandos es igual:kubectl --namespace kube-system delete pod heapster-eq3yw
.e
modificador des
comando para ejecutar el comando ensamblado anteriormente, que hará losdelete
trabajos reales .Para evitar eliminar pods en el
kube-system
espacio de nombres, solo necesita agregargrep -v kube-system
para excluirkube-system
espacios de nombres antes delsed
comando.fuente
--all-namespaces
si no desea eliminar los pods en elkube-system
espacio de nombresSimplemente puedes correr
El primero
all
significa los tipos de recursos comunes (pods, conjuntos de réplicas, implementaciones, ...)kubectl get all == kubectl get pods,rs,deployments, ...
El segundo
--all
medio es seleccionar todos los recursos de los tipos seleccionados.Tenga en cuenta que
all
no 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