在查看文档时,有一个api调用删除'a'pod,有没有办法杀死所有命名空间中的所有pod?
答案 0 :(得分:142)
没有命令可以完全按照你的要求行事。
以下是一些非常接近的比赛。
您可以使用以下命令删除单个命名空间中的所有窗格:
kubectl delete --all pods --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
答案 1 :(得分:38)
kubectl delete daemonsets,replicasets,services,deployments,pods,rc --all
也可以摆脱它们讨厌的复制控制器。
答案 2 :(得分:26)
您可以简单地运行
kubectl delete all --all --all-namespaces
第一个all
表示常见的资源类型(吊舱,副本集,部署等)
kubectl get all == kubectl get pods,rs,deployments, ...
第二个--all
意味着选择所选种类的所有资源
请注意,all
不包括:
为了完美清理,
答案 3 :(得分:9)
您只需要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
获取所有命名空间中所有窗格的列表。--no-headers=true
选项隐藏标题。s
sed
命令获取分别代表namespace
和pod's name
的前两个单词,然后使用它们汇编delete
命令。 delete
命令就像:
kubectl --namespace kube-system delete pod heapster-eq3yw
。e
命令的s
修饰符执行上面汇编的命令,这将执行实际的delete
工作。要避免删除kube-system
命名空间中的pod,只需在grep -v kube-system
命令之前添加kube-system
以排除sed
命名空间。
答案 4 :(得分:2)
K8s完全可以在名称空间的基础上使用。如果您要释放与指定名称空间相关的所有资源。
您可以使用以下提到的内容:
kubectl delete namespace k8sdemo-app
答案 5 :(得分:1)
kubectl delete po,ing,svc,pv,pvc,sc,ep,rc,deploy,replicaset,daemonset --all -A
答案 6 :(得分:1)
仅删除所有 Namespace 中的所有 POD(重新启动部署)
kubectl get pod -A -o yaml | kubectl delete -f -
答案 7 :(得分:0)
switch (true) {
case hour <= 5:
imgTxt.innerHTML = "GET SOME SLEEPZ BRO";
catImg.style.background = "url('img/earlyMorning.jpg')";
catImg.style.backgroundSize = "cover";
document.body.style.backgroundColor= "#2d3037";
clockBody.style.color = "#99ffcc";
break;
这将删除所有地方的所有吊舱。
对于服务,部署,配置映射和作业也是如此。
答案 8 :(得分:0)
如果您已经有重新创建的Pod,请考虑先删除所有部署
kubectl delete -n *NAMESPACE deployment *DEPLOYMENT
只需将NAMSPACE和DEPLOYMENT替换为相应的内容,即可通过以下命令获取所有部署信息
kubectl get deployments --all-namespaces
答案 9 :(得分:0)
这里是一种单行代码,可以使用grep扩展以按名称过滤。
kubectl get pods -o jsonpath="{.items[*].metadata.name}" | \
tr " " "\n" | \
xargs -i -P 0 kubectl delete pods {}
答案 10 :(得分:0)
Kubectl批量(krew上的批量操作)插件可能对您有用,它为您提供了对选定资源的批量操作。这是删除广告连播的命令
' kubectl bulk pods -n namespace delete '
您可以在this
中查看详细信息答案 11 :(得分:0)
我创建了一个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
答案 12 :(得分:0)
我尝试了此处列出的答案中的命令,但pod处于终止状态。
我在下面的命令中找到了从特定名称空间中删除所有Pod的命令,如果它们处于终止状态,或者您无法删除它,则可以强制删除Pod。
kubectl delete pods --all --grace-period=0 --force --namespace namespace
希望对某人有用。
答案 13 :(得分:0)
您可以使用 kubectl delete pods -l dev-lead!=carisa
或您拥有的标签。
答案 14 :(得分:0)
如果您有多个 pod 崩溃或出错,并且您想删除它们
kubectl 删除 pods --all -n |