在查看文档时,有一个API调用可以删除单个pod,但是否有一种方法可以删除所有名称空间中的所有pod ?
当前回答
kubectl delete daemonsets,replicasets,services,deployments,pods,rc,ingress --all --all-namespaces
也摆脱了烦人的复制控制器。
其他回答
kubectl delete po,ing,svc,pv,pvc,sc,ep,rc,deploy,replicaset,daemonset --all -A
没有命令可以完全按照你的要求去做。
以下是一些势均力敌的比赛。
在运行这些命令之前一定要小心。如果使用多个集群,请确保连接到正确的集群。考虑运行。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
仅删除所有命名空间中的所有pod(重新启动部署)
kubectl get pod -A -o yaml | kubectl delete -f -
我尝试了这里列出的答案中的命令,但豆荚卡在终止状态。 我发现下面的命令可以删除特定名称空间中的所有pods,如果处于终止状态或无法删除它,那么可以强制删除pods。
kubectl delete pods --all --grace-period=0 --force --namespace namespace
希望对别人有用。
如果你想删除所有命名空间中的pod,只是为了让它们重新启动,并且你知道其中一些将被重新创建,我喜欢下面的for循环:
for i in $(kubectl get pods -A | awk '{print $1}' | uniq | grep -V NAMESPACE); do kubectl delete --all pods -n $i; done
推荐文章
- Kubectl连续日志
- 我的kubernetes豆荚不断崩溃与“CrashLoopBackOff”,但我找不到任何日志
- 如何从kubectl配置中删除集群和上下文?
- Kubernetes支持多个环境(Staging、QA、生产等)
- Kubernetes API -获取特定节点上的pod
- 我如何调试“ImagePullBackOff”?
- 在Kubernetes中更新configmap时重新启动pod ?
- 为部署的Kubernetes服务获取YAML ?
- 如何在kubernetes中切换命名空间
- 位于另一个名称空间中的服务
- 命名空间“卡住”作为终止,我如何删除它
- Kubernetes如何使部署更新映像
- 如何在gcloud和minikube之间切换kubectl集群
- 如何让容器在Kubernetes上运行?
- 如何手动触发Kubernetes计划作业?