Kubernetes 应用开发与持续部署全解析
1. Helm 钩子的使用
在 Kubernetes 中使用 Helm 进行部署时, helm.sh/hook 属性在注解部分定义,示例如下:
annotations:
"helm.sh/hook": pre-upgrade
"helm.sh/hook-delete-policy": hook-succeeded
-
pre-upgrade设置告知 Helm 在进行升级之前应用此作业清单,该作业将运行标准的 Rails 迁移命令。 -
"helm.sh/hook-delete-policy": hook-succeeded表示如果作业成功完成(即退出状态为 0),Helm 将删除该作业。
处理失败的钩子
如果作业返回非零退出代码,则表明出现错误,迁移未成功完成。Helm 会将作业保留在失败状态,以便你调试问题。此时,发布过程将停止,应用程序不会升级。你可以通过运行 kubectl get pods 查看失败的 Pod,检查日志以了解发生了什么。解决问题后,可使用 kubectl delete job <job-name> 删除失败的作业,然后再次尝试升级。另外,也可以添加 ttlSecondsAfterFinished 字段自动清理失败的作业。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



