背景:
删除一个namespace的时候发现 这个 ns删除不了,一直处于Terminating 状态

问题分析:
1.查看etcd状态,正常,不是由于etcd引起
2.查看了磁盘负载,状态正常 iostat -k -x 1 1

3.describe 一下这个ns ,没看到有用的 event信息

4.尝试强制删除,没有效果
kubectl delete namespace XXX --grace-period=0 --force
5. 输出了一下 该ns的信息 ,看到有finalizer
kubectl get namespace XXX -o yaml

问题就找到了,是由于finalizer的存在导致 ns删除不了
为什么finalizer会影响ns的删除,可以参考官方的垃圾回收机制
https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/
6.edit该 ns ,删除 finalizer配置,重新删除ns就可以成功
参考官方issue:
https://github.com/kubernetes/kubernetes/issues/60807
https://github.com/rook/rook/issues/1488#issuecomment-365058080
本文分享了一次解决Kubernetes中Namespace无法删除的问题经历。通过排查etcd状态、磁盘负载,最终定位到finalizer配置阻止了Namespace的删除。文中详细介绍了如何检查finalizer,并提供了解决方案,即编辑Namespace删除finalizer配置,从而成功删除Namespace。
403

被折叠的 条评论
为什么被折叠?



