k8s删除Terminating状态的ns

网友投稿 333 2022-09-11

k8s删除Terminating状态的ns

经常遇到删除ns资源时,长时间处于Terminating状态,

并且使用参数: --force grace-period=0 强制删除无效!

解决办法就是将资源内的finalizers字段删除。

类似这种情况

# kubectl get nsNAME STATUS AGEdefault Active 226dingress-nginx Active 22hkube-node-lease Active 226dkube-public Active 226dkube-system Active 226dmonitoring Active 50dtest Terminating 40s

执行下边命令

# 定义变量NAMESPACE=test# proxy后台监听8001kubectl proxy &# jq将spec字段内改为空,主要是删除finalizers字段kubectl get namespace $NAMESPACE -o json |jq '.spec = {}' >temp.jsoncurl -k -H "Content-Type: application/json" -X PUT --data-binary @temp.json 127.0.0.1:8001/api/v1/namespaces/$NAMESPACE/finalize

Finalizers:

对带有 Finalizer 的对象的第一个删除请求会为其 ​​metadata.deletionTimestamp:删除的time​​​ 设置一个值,当 ​​metadata.deletionTimestamp​​ 字段被设置时,负责监测该对象的各个控制器会通过轮询对该对象的更新请求来执行它们所要处理的所有 Finalizer。

每执行完一个就从 ​​finalizers​​​ 中移除一个,直到 ​​finalizers​​ 为空,之后其宿主资源才会被真正的删除。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:免费常用的快递物流查询api接口介绍,快递接口api
下一篇:35周年纪念!史上最廉价的游戏营销你中招了没?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~