如何移除 Kubernetes 中卡住的 statefulset.apps?
Posted
技术标签:
【中文标题】如何移除 Kubernetes 中卡住的 statefulset.apps?【英文标题】:How to remove stuck statefullset.apps in Kubernetes? 【发布时间】:2021-10-20 19:48:01 【问题描述】:在我的主节点中删除 jitsi 堆栈后,我卡住了资源。唯一待处理的资源是这两个statefullset.appsset
,没有任何 pod 正在运行。
如果我执行命令:
kubectl delete statefulsets shard-0-jvb -n jitsi --force --grace-period=0 --cascade=orphan
控制台冻结了几个小时,资源没有被删除。
还有其他方法可以强制销毁过程吗?
堆栈是使用 Kustomize 创建的。
【问题讨论】:
检查对象中的终结器,即使使用武力和朋友也无法跳过它们,但您可以kubectl edit
摆脱它们。但是当然,如果有一个卡住的终结器,这通常意味着其他一些组件没有运行,它会执行某种清理步骤,你会跳过所以警告购买者。
尝试删除statefull set yaml,kubectl delete -f finalizer
。也请参考Delete a StatefulSet和Force Delete StatefulSet Pods
【参考方案1】:
将答案发布为社区 wiki,随时编辑和扩展。
一般卡住的物体
由于finalizer
(s),有时无法删除对象,您需要通过查看整个对象来找到它们,例如kubectl get pod pod-name -o json
.
那么有两种选择:
修复阻止删除依赖对象的原因(例如,它是指标服务器 - 参见 another answer on SO)
如果无法修复,则应由kubectl edit resource_type resouce_name
手动删除finalizer
卡住的状态集
Kubernetes 文档有两部分与删除 statefulsets 相关(这有点复杂,因为它们通常也有持久卷)。
有用的链接:
Delete a StatefulSet Force Delete StatefulSet Pods【讨论】:
你好@MiguelConde。你成功了吗?以上是关于如何移除 Kubernetes 中卡住的 statefulset.apps?的主要内容,如果未能解决你的问题,请参考以下文章
打破 Dockershim 移除焦虑,且看Rancher 如何应对
Spring Cloud Kubernetes 移除 Eureka 中间件