You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

kube-prometheus-stack Helm版本陷入Pending-install状态的解决咨询

解决kube-prometheus-stack Helm版本陷入Pending-install状态的问题

问题原因

Helm的Pending-install状态通常源于以下几种情况:

  • 安装/更新过程中Hook(预安装、后安装等)执行超时或失败,导致Helm无法完成状态确认
  • 多次重试更新后,Helm的release元数据出现不一致,旧release的清理流程未正常完成,新release的状态跟踪逻辑卡住
  • 虽然实际组件已创建成功,但Helm内部的状态校验机制未收到预期的资源就绪信号,导致状态无法推进

解决方法

1. 强制回滚到正常版本

先通过历史记录找到上一个处于deployed状态的revision:

helm history <你的release名称> --namespace <目标命名空间>

执行强制回滚,覆盖异常的Pending状态:

helm rollback <你的release名称> <正常revision号> --force --namespace <目标命名空间>

2. 手动清理异常的release元数据

如果回滚无效,直接清理对应版本的Secret(Helm 3用Secret存储release元数据):

  • 列出目标命名空间下的Helm release Secret:
kubectl get secrets -n <目标命名空间> | grep sh.helm.release.v1.<你的release名称>
  • 删除标记为Pending-install的版本对应的Secret(注意替换版本号):
kubectl delete secret sh.helm.release.v1.<你的release名称>.v<异常版本号> -n <目标命名空间>
  • 再次执行helm list -n <目标命名空间>确认状态是否恢复。

3. 跳过Hook重新执行更新

如果是Hook执行失败导致的卡住,更新时跳过Hook直接完成部署:

helm upgrade <你的release名称> prometheus-community/kube-prometheus-stack --version 14.9.0 -f values.yaml --skip-hooks --namespace <目标命名空间>

完成后手动检查需要的Hook资源(如初始化Job)是否需要手动创建。

4. 验证组件状态

处理完release状态后,确认所有组件正常运行:

kubectl get pods -n <目标命名空间>
kubectl get services -n <目标命名空间>

重点检查kube-state-metrics的Pod状态,查看日志确认镜像拉取和启动是否正常:

kubectl logs <kube-state-metrics-pod名称> -n <目标命名空间>

内容的提问来源于stack exchange,提问作者Abdullah Khawer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:12:54