我正在尝试删除/删除在我的环境中运行的所有Pod。当我发出
docker ps
我得到以下输出。这是一个示例屏幕截图。如您所见,它们都是K8。我想删除所有吊舱/将其删除。
我尝试了以下所有方法,但它们一直反复出现
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
和docker rm
与容器ID一起使用,但它们会重新生成。我想清除所有这些。我想从头开始
我已经注销并多次登录,但仍然看到这些项目。
您能帮我删除所有Pod吗?我希望“ docker ps”的输出中没有与上述kubernetes相关的项目吗?
答案 0 :(得分:2)
sudo kubectl get deployments # returns no resources found
Deployments
并不是Kubernetes中唯一可以管理您的Pod的控制器。有很多:StatefulSet
,ReplicaSet
等(有关详细信息,请检查Controllers doc)
如果要有效删除所有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 Emkambaram提到的那样,您还可以使用kubectl delete namespace mynamespace
删除整个命名空间(当然不要删除kube-system
),但是它也可能删除命名空间中的其他组件例如服务
重要说明:
kube-system
命名空间中删除与集群本身的内部管道相关的Pod或对象时,您还应该小心。docker
命令删除其基础容器来直接删除Kubernetes组件,这可能会产生意想不到的影响,请改用kubectl
。 答案 1 :(得分:1)
您不应从kube-system名称空间中删除pod。所有核心kubernetes Pod都在该命名空间中运行。如果您弄乱了那些吊舱,那么您的群集可能无法正常工作。
相反,删除运行应用程序工作负载的名称空间。将会清除相应命名空间中的所有资源。