Docker 无法删除Kubernetes中的所有吊舱-清除/重新启动Kubernetes

Docker 无法删除Kubernetes中的所有吊舱-清除/重新启动Kubernetes,docker,kubernetes,google-kubernetes-engine,kubernetes-helm,kubernetes-pod,Docker,Kubernetes,Google Kubernetes Engine,Kubernetes Helm,Kubernetes Pod,我正在尝试删除/删除我的环境中运行的所有播客。当我发布 docker ps 我得到下面的输出。这是一个示例屏幕截图。正如你所看到的,它们都是K8。我想删除所有的pod/删除它们 我尝试了以下所有方法,但它们不断出现 sudo kubectl delete --all pods --namespace=default/kube-public #returns "no resources found" for both default and kube-public namespaces sudo

我正在尝试删除/删除我的环境中运行的所有播客。当我发布

docker ps

我得到下面的输出。这是一个示例屏幕截图。正如你所看到的,它们都是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"

除了上面提到的,我还尝试使用
docker-stop
docker-rm
与容器ID一起使用,但它们要么重新启动。我想把它们全部清除。我想从头开始

我已经多次注销和重新登录,但仍然可以看到这些项目


你能帮我删除所有的POD吗?我希望“docker ps”的输出不会有任何与kubernetes相关的项目,如上图所示?

你不应该从kube系统名称空间中删除POD。所有核心kubernetes吊舱都在该名称空间中运行。如果你弄乱了这些吊舱,那么你的集群可能无法工作

而是删除运行应用程序工作负载的名称空间。这将清除相应命名空间中的所有资源

sudo kubectl get deployments#返回未找到任何资源

不是Kubernetes中唯一可以管理吊舱的控制器。有很多:,等等(查看详细信息)

简言之,控制器负责确保其管理的所有吊舱都在运行,并在必要时创建它们-当您删除所有吊舱时,相关控制器将意识到它们丢失了,只需重新创建它们以确保其符合其规范

如果要有效删除所有POD,应删除所有相关控制器(或更新它们以将其副本设置为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
编辑:正如answer所提到的,您还可以使用
kubectl delete namespace mynamespace
(当然不要删除
kube system
),删除整个名称空间,但也可以删除名称空间中的其他组件,如服务


重要提示:

  • 在删除
    kube系统
    名称空间中与集群本身的内部管道相关的pod或对象时,还应小心
  • 您不应使用
    docker
    命令直接删除Kubernetes组件的底层容器,这可能会产生意外的效果,请改用
    kubectl

所有这些容器都是Kubernetes内部组件(舵柄除外,舵柄是头盔的一部分)。如果不卸载Kubernetes.Hi@DavidMaze,就无法删除它们-当我执行“sudo kubectl delete--all pods--namespace=kube system”时,它显示了上述输出。请找到更新了另一个截图的帖子。难道我不应该期望他们不被看到吗?嗨@DavidMaze-我甚至不能删除/移除舵柄?我尝试了“sudo helm delete 73d436c4fd0b--purge”,也尝试了“sudo helm delete value”,但它在名称长度上抛出了错误。我如何知道哪些是内部组件,哪些可以删除?现在我已经删除了,如何确保我的集群工作正常?我是Kubernetes的新手,所以当我发布“sudo kubectl get pods”时,您的输入是值得赞赏的,我得到的是“未找到任何资源”。那么,在这种情况下,我是否正确地理解了我所有的pod都被删除了,并且无论我在发布“docker ps”时看到什么,它们都是kubernetes的内部组件?嗨,我可以知道我如何确保我的kubernetes集群现在工作正常吗?由于我已经删除了kube系统中运行的POD,我如何确保它工作正常?如果您刚刚删除了POD,它应该是正常的,因为控制器会在必要时重新创建它们(K8S非常擅长自愈),否则您可以重新创建整个集群以确保安全。我不知道有什么“通用”的方法来检查集群的健康状况,但是使用它并在运行中发现问题。如果你没有找到正确的答案,你可以问另一个问题;)
# 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