强制删除 Kubernetes Namespace
记一次 Kubernetes NameSpace 的强制删除。
一、前情
我在使用 Kubernetes 时,遇到了 Kubernetes NameSpace 无法正常删除的问题。
NameSpace 状态保持在 Terminating 已经挺久了,我决定强制删除这个 NameSpace。
二、步骤
1. 查看存在的 NameSpace
1 | [root@master ~]# kubectl get ns |
2. 尝试强制删除 NameSpace
1 | [root@master ~]# kubectl delete ns istio-system --force --grace-period=0 |
卡了挺久也没有效果,看来是删不掉,得强制删了
2. 获取需要强制删除的 NameSpace 信息
1 | [root@master ~]# kubectl get namespace istio-system -o json > istio-system.json |
3. 删除 finalizers 相关内容
4. 运行 kube-proxy
1 | [root@master ~]# kubectl proxy |
5. 通过 API 强制删除 NameSpace
新运行个终端,调用 API 删除 NameSpace
1 | [root@master ~]# curl -k -H "Content-Type: application/json" -X PUT --data-binary @istio-system.json http://127.0.0.1:8001/api/v1/namespaces/istio-system/finalize |
6. 关闭 kube-proxy 并确认 NameSpace 已删除
按 CTRL-C
关闭 kube-proxy,然后确认下现在的 NameSpace
1 | [root@master ~]# kubectl get ns |
可以看到 NameSpace 已经被强制删除了。