方式一:
kubectl --kubeconfig=path/config get namespace istio-system -o json | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" | kubectl --kubeconfig=path/config replace --raw /api/v1/namespaces/istio-system/finalize -f -
方式二:
1、将命名空间 yaml 文件导出为 json 文件,以 test namespace 为例
kubectl get ns test -o json > test.json
2、编辑该 json文件,将 spec 内的内容全部删除,然后保存退出

3、另开一个终端,启动 proxy
kubectl proxy --port=8081
4、使用以下命名删除 namespace
curl -k -H "Content-Type: application/json" -X PUT --data-binary @test.json http://127.0.0.1:8081/api/v1/namespaces/test/finalize
5、命令执行完成后就会发现 ns 删除成功
本文介绍了两种在Kubernetes中删除命名空间的方法:一是通过kubectl命令直接修改并替换namespace的finalizers;二是导出命名空间的yaml,编辑删除spec内容,再通过kubectl proxy和curl进行删除操作。这两种方式可帮助管理员高效地清理资源。
20

被折叠的 条评论
为什么被折叠?



