强制删除namespace
方式一:
#当前终端执行kubectl proxy命令
kubectl proxy
#另起一个终端执行以下命令,并将其中两处robot替换为要删除的namespace
cat <<EOF | curl -X PUT \
127.0.0.1:8001/api/v1/namespaces/robot/finalize \
-H “Content-Type: application/json” \
–data-binary @-
{
“kind”: “Namespace”,
“apiVersion”: “v1”,
“metadata”: {
“name”: “robot“
},
“spec”: {
“finalizers”: null
}
}
EOF
将以上两处robot替换为要删除的namespace
方式二:
1、将该分区导出为json文件,以 cim namespace为例
kubectl get ns cim -o json > cim.json
2、编辑该json文件,将spec内的内容全部删除,然后保存退出
删除前:
删除后:
3、另开一个终端,启动一个proxy
kubectl proxy
4、执行一个curl命令,更新cim namespace
curl -k -H "Content-Type: application/json" -X PUT --data-binary @cim.json http://127.0.0.1:8001/api/v1/namespaces/cim/finalize
将以上cim替换为要删除的namespaces
5、命令执行完成后就会发现ns删除成功
方式三:
kubectl patch ns namespace -p '{"metadata":{"finalizers":null}}'
namespace替换为要删除的命名空间
强制删除pod
kubectl delete pod [pod name] --force --grace-period=0 -n [namespace]