在查看文档时,有一个API调用可以删除单个pod,但是否有一种方法可以删除所有名称空间中的所有pod ?


当前回答

如果你有多个pod崩溃或出错,你想删除它们

Kubectl delete pods——all -n | gep

其他回答

如果您已经有了重新创建的pod,请考虑先删除所有部署

kubectl delete -n *NAMESPACE deployment *DEPLOYMENT

只需将NAMSPACE和DEPLOYMENT替换为相应的NAMSPACE和DEPLOYMENT,就可以通过以下命令获得所有部署信息

kubectl get deployments --all-namespaces
kubectl delete daemonsets,replicasets,services,deployments,pods,rc,ingress --all --all-namespaces

也摆脱了烦人的复制控制器。

我创建了一个python代码删除所有在命名空间

delall.py

import json,sys,os;

obj=json.load(sys.stdin);
for item in obj["items"]:
        os.system("kubectl delete " + item["kind"] + "/" +item["metadata"]["name"] + " -n yournamespace")

然后

kubectl get all -n kong -o json | python delall.py

K8s完全在命名空间的基础上工作。如果要释放与指定命名空间相关的所有资源。

你可以使用下面提到的:

kubectl delete namespace k8sdemo-app

如果你想删除所有命名空间中的pod,只是为了让它们重新启动,并且你知道其中一些将被重新创建,我喜欢下面的for循环:

for i in $(kubectl get pods -A | awk '{print $1}' | uniq | grep -V NAMESPACE); do kubectl delete --all pods -n $i; done