K8S如何强制删除namespace

时间:2023-01-06 20:57:06

我们有时候会遇到 namespace 无法删除的情况是因为 finalizers 属性的原因

1.将cert-mamaner导出为json文件

kubectl get ns cert-manager -o json > cert.json

2.编辑cert.json文件,将spec内的内容全部删除,然后保存退出

#  修改前
"spec": {
"finalizers": [
"kubernetes"
]
},

# 修改后
"spec": {
},

3.开启 proxy

kubectl proxy --port=8081

4.调用 api 进行删除

curl -k -H "Content-Type: application/json" -X PUT --data-binary @cert.json http://127.0.0.1:8081/api/v1/namespaces/cert-system/finalize

5.执行完命令后运行

kubectl get ns
default Active 244d
kube-system Active 244d
kube-public Active 244d
kube-node-lease Active 244d

发现已经成功删除了