K8s删除Namesapce一直处于Terminating状态处理
目录
k8s namespace 无法删除记录
名字空间yaml 文件
|
|
删除卡住
|
|
强制删除(无效果)
|
|
- 排查思路 查看命名空间下的所有资源
|
|
输出结果该命名空间下无关联的相关资源
解决方式
一行命令解决,注意替换两处待删命名空间字样
|
|
总结
- 创建namesapce时注入finalizers会导致namespace无法
- 可以通过edit ns 的方式将finalizers 置空或者上面的一行命令解决的方式,本质是一致的
补充 K8s Finalizers
Finalizers 字段属于 Kubernetes GC 垃圾收集器,是一种删除拦截机制,能够让控制器实现异步的删除前(Pre-delete)回调。其存在于任何一个资源对象的 Meta[1] 中,在 k8s 源码中声明为 []string,该 Slice 的内容为需要执行的拦截器名称。
对带有 Finalizer 的对象的第一个删除请求会为其 metadata.deletionTimestamp 设置一个值,但不会真的删除对象。一旦此值被设置,finalizers 列表中的值就只能被移除。
当 metadata.deletionTimestamp 字段被设置时,负责监测该对象的各个控制器会通过轮询对该对象的更新请求来执行它们所要处理的所有 Finalizer。当所有 Finalizer 都被执行过,资源被删除。
metadata.deletionGracePeriodSeconds 的取值控制对更新的轮询周期
当 finalizers 字段为空时,k8s 认为删除已完成。