在 Kubernetes中,有时候我们一些测试的命名空间需要删除,但是里面还有运行了一系列对象,比如有deployment、pod和service等等。
当直接用简单粗暴的方式:
kubectl delete namespace test
会一直卡主 test Terminating 181d
我们用下面的方法处理: 1.获取需要删除的命名空间json文件
kubectl get namespace test -o json > test.json
2.修改json文件中的
"spec": {
"finalizers": [
"kubernetes"
]
},
为
"spec": {
},
3.另外单独启动一个API代理至本地,并向apiserver应用修改的json请求
kubectl proxy &&
curl -k -H "Content-Type: application/json" -X PUT --data-binary @test.json http://127.0.0.1:8001/api/v1/namespaces/monitoring/finalize
就会干净删除test命名空间了。