高级第 8 / 10 节30 分钟 · 实操
Hook 与测试
Helm 课程的一部分
有些活儿没法干净利落地塞进“渲染一份清单再应用它”这个模子。数据库表结构得在新的应用 Pod 开始读它之前迁移完;或者一次全新安装刚结束,就得有一个管理员账户存在;又或者你想要一次自动的冒烟测试,戳一下服务,确认它真的会应答,然后才放心离开这次部署。这些都不是一个常驻在那里的 Deployment 或 Service,而是绑在发布生命周期某个具体时刻上的一次性动作。Helm 正好有一套机制管这件事,而跟多数强大的机制一样,它也是 Helm 里最容易在你用错地方时反咬你一口的部分。
Kubernetes 里没有 kind: Hook,Helm 里也没有。钩子是一个普通的 Kubernetes 资源,多半是一个 Job 或者一个 Pod,只不过它带着一个 Helm 会盯着看的注解。下面是这一课工作区里的一个,templates/pre-install-job.yaml:
想在真实环境里学习 Helm Hook 与测试 吗?
点击下方,立即获得一台预装 Helm 的 Linux 主机,跟懂你代码的 AI 导师一起完成 Hook 与测试 的实操练习。
开始这节课Hook 与测试你将学到什么
- Helm.sh/hook annotation
- Pre-install
- Post-install
- Pre-upgrade
- Hook-delete-policy
- Helm test
- Test pod pattern
- When hooks are evil
