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


当前回答

没有命令可以完全按照你的要求去做。

以下是一些势均力敌的比赛。

在运行这些命令之前一定要小心。如果使用多个集群,请确保连接到正确的集群。考虑运行。Kubectl配置视图优先。

你可以用这个命令删除一个命名空间中的所有pod:

kubectl delete --all pods --namespace=foo

您还可以删除命名空间中的所有部署,这将删除与该命名空间对应的部署附加的所有pods

kubectl delete --all deployments --namespace=foo

你可以用这个命令删除所有命名空间和每个命名空间中的每个对象(但不能删除非命名空间的对象,如节点和一些事件):

kubectl delete --all namespaces

但是,后一个命令可能不是您想要的,因为它将删除kube-system名称空间中的内容,这将使您的集群不可用。

该命令将删除除kube-system之外的所有命名空间,这可能很有用:

for each in $(kubectl get ns -o jsonpath="{.items[*].metadata.name}" | grep -v kube-system);
do
  kubectl delete ns $each
done

其他回答

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

你可以使用kubectl删除pods -l dev-lead!=carisa或其他标签。

没有命令可以完全按照你的要求去做。

以下是一些势均力敌的比赛。

在运行这些命令之前一定要小心。如果使用多个集群,请确保连接到正确的集群。考虑运行。Kubectl配置视图优先。

你可以用这个命令删除一个命名空间中的所有pod:

kubectl delete --all pods --namespace=foo

您还可以删除命名空间中的所有部署,这将删除与该命名空间对应的部署附加的所有pods

kubectl delete --all deployments --namespace=foo

你可以用这个命令删除所有命名空间和每个命名空间中的每个对象(但不能删除非命名空间的对象,如节点和一些事件):

kubectl delete --all namespaces

但是,后一个命令可能不是您想要的,因为它将删除kube-system名称空间中的内容,这将使您的集群不可用。

该命令将删除除kube-system之外的所有命名空间,这可能很有用:

for each in $(kubectl get ns -o jsonpath="{.items[*].metadata.name}" | grep -v kube-system);
do
  kubectl delete ns $each
done

删除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

我尝试了这里列出的答案中的命令,但豆荚卡在终止状态。 我发现下面的命令可以删除特定名称空间中的所有pods,如果处于终止状态或无法删除它,那么可以强制删除pods。

kubectl delete pods --all --grace-period=0 --force --namespace namespace

希望对别人有用。