我正在尝试删除/删除我的环境中运行的所有 Pod。当我发出
码头工人
我得到以下输出。这是一个示例屏幕截图。可以看到,都是K8。我想删除所有 Pod/删除它们。
我尝试了以下所有方法,但它们不断出现
sudo kubectl delete --all pods --namespace=default/kube-public #returns "no resources found" for both default and kube-public namespaces
sudo kubectl delete --all pods --namespace=kube-system # shows "pod xxx deleted"
sudo kubectl get deployments # returns no resources found
除了上述之外,我还尝试使用docker stop
and docker rm
与容器 ID,但它们要么重生。我想把它们全部清除。我想从头开始
我已注销并重新登录多次,但我仍然看到这些项目。
你能帮我删除所有 pod,并且我希望“docker ps”的输出没有任何与 kubernetes 相关的项目,如上所示?
sudo kubectl get deployments # returns no resources found
Deployments https://kubernetes.io/docs/concepts/workloads/controllers/deployment/并不是 Kubernetes 中唯一可以管理您的 Pod 的控制器。有许多:StatefulSet https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/, ReplicaSet https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/等(检查控制器文档 https://kubernetes.io/docs/concepts/workloads/controllers详情)
简而言之,Controller 负责确保其管理的所有 Pod 都在运行,并在必要时创建它们 - 当您删除所有 Pod 时,关联的 Controller 将意识到它们丢失了,只需重新创建它们以确保其符合其规范。
如果要有效删除所有 Pod,则应删除所有相关的 Controller(或更新它们以将其副本设置为 0),例如:
# do NOT run this in the kube-system namespace, it may corrupt your cluster
# You can also specify --namespace xxx to delete in a specific namespace
kubectl delete deployment --all # configures ReplicaSets, deleting Deployments should delete ReplicaSet as well as associated Pods
kubectl delete statefulset --all
kubectl delete daemonset --all
kubectl delete job --all
kubectl delete cronjob --all
kubectl delete replicationcontroller --all # their should not be any ReplicationController as Deployment should be used
# Then delete what you find
编辑:正如提到的P·埃姆坎巴拉姆 https://stackoverflow.com/a/56868072/5465973答案是您还可以删除整个命名空间kubectl delete namespace mynamespace
(不要删除kube-system
当然),但它也可能删除命名空间中的其他组件,例如服务
重要笔记:
- 删除 Pod 或对象中的对象时也应该小心
kube-system
与集群本身的内部管道相关的命名空间。
- 您不应该通过删除其底层容器来直接删除 Kubernetes 组件
docker
命令,这可能会产生意想不到的效果,使用kubectl
反而。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)