如何移除 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 我的目录中有很多文件,因为是使用 kustomize 进行部署,执行 kubectl delete -f - 它也留在控制台中而不做任何事情 @MiguelConde 你试过 coderanger 的建议了吗?你可以描述你的有状态集,你会发现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?的主要内容,如果未能解决你的问题,请参考以下文章

如何与 UWP 应用自动同步联系人?

打破 Dockershim 移除焦虑,且看Rancher 如何应对

Spring Cloud Kubernetes 移除 Eureka 中间件

Jenkins批量停止队列中卡主的jobs

在 ggplot2 中仅绘制 stat_smooth 的边界

[Python]Flask内存马学习