kubernetes删除Namespace出现Terminating状态处理


在 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命名空间了。