• 正常删除
kubectl delete namespace NAMESPACENAME
  • 强制删除
kubectl delete namespace NAMESPACENAME --force --grace-period=0
  • 修改finalizers,删除下面红色框内容
kubectl edit namespace NAMESPACE_NAME

k8s问题【删除namespace一直处于Terminating状态】_k8s

  • 如果没有上面的finalizers内容,通过调用接口删除

第一步:将namespace内容导出到tmp.json文件中:

kubectl get namespace NAMESPACE_NAME -o json > tmp.json

第二步:修改tmp.json内容,删除json中以下内容:

{
    //删除spec整个内容
    "spec": {
        "finalizers": [
            "kubernetes"
        ]
    },
    
    "status": {
        "phase": "Terminating"
    }
}

第三步:开启k8s接口代理,新开一个窗口,执行

[root@k8s-master ~]# kubectl proxy
Starting to serve on 127.0.0.1:8001

第四步:调用接口删除Namespace,注意URL中修改成要删除的NAMESPACE_NAME

curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/NAMESPACE_NAME/finalize