Namespace 资源难以删除问题

namespace 资源难以删除问题

安装的rancher 有问题,需要卸载,在删除ns 的时候发现无论怎么删除都无法删除,状态如下
kubectl  get ns 
NAME                                     STATUS        AGE
c-m-xxwr49vg                             Terminating   15h
cattle-fleet-clusters-system             Terminating   20h
cattle-fleet-local-system                Terminating   20h
cattle-fleet-system                      Terminating   20h
cattle-global-data                       Terminating   20h
cattle-global-nt                         Terminating   20h
cattle-impersonation-system              Active        20h
cattle-system                            Terminating   22h
cert-manager                             Active        20h
cluster-fleet-local-local-1a3d67d0a899   Terminating   20h
default                                  Active        62d
fleet-default                            Terminating   20h
fleet-local                              Terminating   20h
iot                                      Active        62d
kube-flannel                             Active        62d
kube-mon                                 Active        49d
kube-node-lease                          Active        62d
kube-public                              Active        62d
kube-system                              Active        62d
local                                    Terminating   20h
monitoring                               Active        33d
p-j9snx                                  Terminating   15h
p-m9r5k                                  Terminating   15h
p-z5f57                                  Terminating   20h
user-b78gj                               Terminating   15h
开始删除

查看集群可以命名空间隔离的资源

kubectl api-resources -o name --verbs=list --namespaced | xargs -n 1 kubectl get --show-kind --ignore-not-found -n p-j9snx 

使用原生接口删除

kubectl  get  ns p-j9snx    -o json > p-j9snx.json

编辑json 文件,删除以下spec部分

    "spec": {
        "finalizers": [
            "kubernetes"
        ]
    },

在终端中执行

kubectl  proxy 

在另外一个终端中执行

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

查看命名空间是否删除

kubectl  get ns  
#查看已删除了

还有一种是删除方式是spec里面是空的

"spec": {},

直接去删除yaml 文件

kubectl  edit  ns  p-z5f57 -o yaml 

image-20221011153312378

删除之后就立即删除了ns

comments powered by Disqus