k8s命名空间删除失败,状态一直是Terminating

目录

  • 一、现象
  • 二、解决办法1(使用Kuboard)
  • 三、解决方法2(不使用其他软件)
    • 1、将要删除的namespace的描述信息导出到文件
    • 2、修改导出文件
    • 3、在xshell中新开一个窗口,执行kubectl proxy命令
    • 4、在xshell老窗口中执行命令(注意:需要在包含上述导出json文件的目录下执行)
    • 5、查看命名空间列表

一、现象

kubectl delete ns XXX命令一直卡着,不会执行完成

二、解决办法1(使用Kuboard)

查看集群信息:

k8s命名空间删除失败,状态一直是Terminating_第1张图片

编辑名称空间列表:

k8s命名空间删除失败,状态一直是Terminating_第2张图片

删除相应名称空间:

k8s命名空间删除失败,状态一直是Terminating_第3张图片

三、解决方法2(不使用其他软件)

1、将要删除的namespace的描述信息导出到文件

# 文件名称后缀是json,名称取啥都行
kubectl get ns 命名空间名称 -o json > 文件名称

例如:

kubectl get namespace ingress-nginx -o json > nginx.json

在这里插入图片描述

2、修改导出文件

spec中的内容删除干净,记得把两边的大括号留下,删除完成效果如下图:

k8s命名空间删除失败,状态一直是Terminating_第4张图片

3、在xshell中新开一个窗口,执行kubectl proxy命令

k8s命名空间删除失败,状态一直是Terminating_第5张图片

4、在xshell老窗口中执行命令(注意:需要在包含上述导出json文件的目录下执行)

curl -k -H "Content-Type: application/json" -X PUT --data-binary @文件名称 http://127.0.0.1:8001/api/v1/namespaces/名称空间/finalize

例如:

curl -k -H "Content-Type: application/json" -X PUT --data-binary @test-ns.json http://127.0.0.1:8001/api/v1/namespaces/test-ns/finalize

5、查看命名空间列表

kubectl get ns

如果已经删除了,那就是正确的

你可能感兴趣的:(云原生,kubernetes,容器,云原生)