DevOps Bootcamp · 课时

退出 pending-upgrade 和卡住状态

恢复在操作中途卡住的发布

第 3 / 4 课13 个步骤

退出 pending-upgrade 和卡住状态 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

发布版本卡住时

如果升级被中断,发布版本可能会卡在 pending-upgrade 状态,并拒绝任何新的操作。请不要惊慌。🛑

识别状态

运行 helm list,卡住的发布版本会显示 pending-upgrade 或 pending-install 等状态,而不是健康的 deployed 状态。

helm list --all --namespace web

发生这种情况的原因

pending 状态表示 Helm 开始写入一个修订版本却从未完成,通常是进程被终止或升级中途达到超时导致。

最简洁的修复方法

最安全的脱身办法是回滚到上一个正常修订版本。helm rollback 会将发布版本恢复到已知的健康状态。

helm rollback my-app 0

选择目标版本

先检查 helm history,查看上一次成功部署的是哪个修订版本,然后回滚到那个确切的编号。

helm history my-app

回滚到零

传入修订版本 0 是一个方便的快捷方式:它会告诉 Helm 回滚到上一个发布版本,而无需您指定编号。

helm rollback my-app

发布版本存储为 Secret

Helm 3 会将每个修订版本保存在发布版本命名空间中的 Kubernetes Secret 里。该记录负责跟踪 pending 状态。

检查记录

列出这些密钥资源,直接查看修订历史。最新的那个带有阻塞您操作的待处理状态。

kubectl get secret -l owner=helm,name=my-app -n web

最后的清理手段

如果回滚无济于事,请删除失败的待处理修订版本密钥资源。随后,工具会将先前的修订版本作为最新版本。

kubectl delete secret sh.helm.release.v1.my-app.v5 -n web

然后重试升级

清除卡住的记录后,请再次运行您的升级命令。状态恢复干净后,这次它就会正常继续。

helm upgrade my-app ./my-app

防止下次再发生

在升级时加入原子化选项可以彻底避免卡住的状态:运行失败时会自动回滚,而不会让您陷入僵局。

helm upgrade my-app ./my-app --atomic --timeout 5m

快速检查

一个发布版本卡在待升级状态。恢复它时,最安全的第一步是什么?

总结

您现在已经能够挽救卡住的发布版本:识别待处理状态,使用回滚命令恢复到正常修订版本,或删除失败发布版本的密钥资源。使用原子化选项来防止此问题。🚀

免费开始

用 AI 导师学习 DevOps Bootcamp — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
142
课程
568

常见问题解答

「退出 pending-upgrade 和卡住状态」课时是免费的吗?

是的 — 「退出 pending-upgrade 和卡住状态」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「退出 pending-upgrade 和卡住状态」这节课中我会学到什么?

恢复在操作中途卡住的发布 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「退出 pending-upgrade 和卡住状态」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 --debug 和 --dry-run 跟踪渲染
  2. 使用 helm get all 读取清单
  3. 退出 pending-upgrade 和卡住状态
  4. 端到端构建生产级应用图表
← 返回 DevOps Bootcamp