命令删除所有kubernetes命名空间中的所有POD
查看文档时,会有一个API调用来删除“a”pod,但是有没有办法杀死所有名称空间中的所有pod?没有命令完全按照您的要求执行 这里有几场势均力敌的比赛 您可以使用以下命令删除单个命名空间中的所有POD:命令删除所有kubernetes命名空间中的所有POD,kubernetes,Kubernetes,查看文档时,会有一个API调用来删除“a”pod,但是有没有办法杀死所有名称空间中的所有pod?没有命令完全按照您的要求执行 这里有几场势均力敌的比赛 您可以使用以下命令删除单个命名空间中的所有POD: kubectl delete --all pods --namespace=foo kubectl delete --all namespaces 您还可以删除命名空间中的所有部署,这将删除与命名空间对应的部署连接的所有POD kubectl delete --all deployments
kubectl delete --all pods --namespace=foo
kubectl delete --all namespaces
您还可以删除命名空间中的所有部署,这将删除与命名空间对应的部署连接的所有POD
kubectl delete --all deployments --namespace=foo
可以使用以下命令删除每个命名空间中的所有命名空间和每个对象(但不能删除未命名的对象,如节点和某些事件):
kubectl delete --all pods --namespace=foo
kubectl delete --all namespaces
但是,后一个命令可能不是您想要做的事情,因为它将删除kube系统名称空间中的内容,这将使您的集群不可用
此命令将删除除kube system之外的所有名称空间,这可能很有用:
for each in $(kubectl get ns -o jsonpath="{.items[*].metadata.name}" | grep -v kube-system);
do
kubectl delete ns $each
done
您只需使用
sed
即可:
kubectl get pods --no-headers=true --all-namespaces |sed -r 's/(\S+)\s+(\S+).*/kubectl --namespace \1 delete pod \2/e'
说明:
kubectl get pods--all namespaces
获取所有名称空间中所有pod的列表--no headers=true
选项隐藏标题sed
的s
命令获取前两个单词,分别代表名称空间
和pod的名称
,然后使用它们组合delete
命令李>
delete
命令如下:
kubectl——名称空间kube系统删除pod heapster-eq3yw
s
命令的e
修饰符来执行上面组合的命令,该命令将执行实际的delete
工作kube-system
名称空间中的pod,只需在sed
命令之前添加grep-v kube-system
以排除kube-system
名称空间
kubectl delete daemonsets,replicasets,services,deployments,pods,rc --all
为了摆脱这些讨厌的复制控制器 如果您已经有重新创建的POD,请考虑首先删除所有部署
kubectl delete -n *NAMESPACE deployment *DEPLOYMENT
只需将NAMSPACE和部署替换为相应的NAMSPACE和部署,就可以通过以下命令获取所有部署信息
kubectl get deployments --all-namespaces
下面是一个单行程序,可以使用grep扩展它以按名称进行过滤
kubectl get pods -o jsonpath="{.items[*].metadata.name}" | \
tr " " "\n" | \
xargs -i -P 0 kubectl delete pods {}
Kubectl bulk(krew上的批量操作)插件可能对您有用,它为您提供对所选资源的批量操作。这是用于删除播客的命令
' kubectl bulk pods -n namespace delete '
您可以在中查看详细信息。我创建了一个python代码来删除名称空间中的所有内容
kubectl delete --all deployments --namespace=foo
德拉尔
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 delete all --all --all-namespaces
- 第一个
表示常见的资源类型(POD、复制集、部署等)all
kubectl获取所有==kubectl获取吊舱、rs、部署等
- 第二个
表示选择所选类型的所有资源--all
请注意,
all
不包括:
- 无名称空间的资源(例如ClusterRoleBinding、clusterroles等)
- 配置映射
- 角色索引
- 角色
- 秘密
为了彻底清理,
- 您可以使用其他工具(例如,Helm、Kustomize等)
- 您可以使用名称空间
- 您可以在创建资源时使用标签
kubectl delete namespace k8sdemo-app
我尝试了这里列出的答案中的命令,但吊舱被困在终止状态。
我在下面找到了从特定名称空间中删除所有POD的命令,如果处于终止状态或无法删除它,则可以强制删除POD
kubectl delete pods --all --grace-period=0 --force --namespace namespace
希望它对其他人有用。仅删除所有命名空间中的所有POD(重新启动部署)
您可以使用
kubectl删除pods-l dev lead=carisa
或您拥有的标签。如果您不想删除kube系统中的pod
名称空间中的pod,您也可以删除——所有名称空间
,只删除少数pod的命令是什么?示例:我有spin 20 Pod,现在希望只保留1个。你的sed在Mac上不起作用,但原则上起作用。在k8s的当前版本中,“kubectl delete--all namespace”命令不再删除系统内容。。。例如:名称空间“默认”是禁止的:此名称空间可能不会被删除这是删除部署还是仅删除播客?kubectl delete pods--all--all名称空间有时似乎可以工作(不确定是什么原因导致它在某些环境中工作,而在其他环境中不工作)。它在我的堡垒主机上运行良好,但在笔记本电脑上运行不好。运行debian和运行同一版本的kubectl(集群版本1.13)@KaiWähner如果我没有弄错的话,k8s系统相关的东西都在kube系统的命名空间中。在消息示例中,我可以看到default
名称空间。是否使用您附加的命令删除了kube系统
。这仅删除当前命名空间中的内容。请添加-n标志,但很抱歉,这是一次只删除一个pod,而不是一次删除所有pod。如果缺少ing
也要删除入口,您可能还需要添加“statefulset”(如果适用)。否则,即使在您运行上述命令之后,它也会继续分叉新的吊舱!小心!因为上面的命令将删除集群范围内的所有PV。这是一个完美的解决方案!这是一个超级杀手kubectl get pods--selector=app=“${DEPLOYMENT\u NAME}”-o=jsonpath='{.items[*].metadata.NAME}'|tr”“”\n“| xargs-n 1 kubectl delete pod