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


当前回答

删除pv的步骤如下:

删除所有与该PV相关的部署和pod或资源 Kubectl delete——all deployment -n namespace Kubectl delete——所有pod -n命名空间 编辑光伏 Kubectl编辑pv pv_name -n namespace 删除kubernetes.io / pv-protection 删除pv Kubectl delete pv pv_name -n namespace

其他回答

你可以简单地跑

kubectl delete all --all --all-namespaces

第一个都是指常见的资源类型(pods, replicasets, deployment,…) Kubectl get all == Kubectl get pods,rs,部署,… 第二,all表示选择所选类型的所有资源


注意,all不包括:

非命名空间资源(例如,clusterrolebindings, clusterroles,…) configmaps rolebindings 角色 秘密 ...


为了完美地清理,

你可以使用其他工具(例如Helm, Kustomize,…) 您可以使用名称空间。 您可以在创建资源时使用标签。

我创建了一个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

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

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

一行命令删除所有命名空间中的所有pod。

kubectl get ns -o=custom-columns=Namespace:.metadata.name --no-headers | xargs -n1 kubectl delete pods --all -n

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

Kubectl delete pods——all -n | gep