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
删除之后就立即删除了ns