0Pricing
Helm Academy · 课时

固定版本并避免使用 latest

确保镜像和依赖版本可复现

固定版本并避免使用 latest 是 CoddyKit 上的免费 Helm Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Helm Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Helm Academy 课程共包含 4 节课。

可复现性带来优势

如果明天再次执行部署还能得到完全相同的结果,那么这个部署就是可复现的。锁定版本是确保不同安装和集群保持一致的方法。

latest 的问题

latest 镜像标签是一个不断变化的目标。相隔几小时进行的两次安装可能拉取不同的代码,使错误无法复现,也无法回滚。

锁定镜像标签

始终在 values.yaml 中设置明确的镜像标签,例如 1.27.4。请将其加引号,让 YAML 将它保留为字符串,而不是解析为数字。

image:
  repository: nginx
  tag: "1.27.4"

摘要更加可靠

摘要会锁定镜像的确切字节内容,因此即使重新标记构建,也无法改变实际运行的内容。在需要绝对不可变性时使用它。

image: nginx@sha256:abc123...

设置合理的 pullPolicy

使用固定标签时,请使用 IfNotPresent,让节点复用缓存的镜像。避免使用 Always,因为它会在每次重启时重新拉取镜像,可能带来意外。

pullPolicy: IfNotPresent

跟踪 appVersion 和 version

在 Chart.yaml 中,chart 发生更改时递增 version,应用发生更改时递增 appVersion。保持两者准确,能让升级和历史记录更清晰。

version: 1.4.0
appVersion: "1.27.4"

锁定依赖版本

在 Chart.yaml 中为每个依赖列出具体的版本范围,而不是通配范围,避免子 chart 在您不知情的情况下意外升级。

dependencies:
  - name: postgresql
    version: "15.5.38"
    repository: https://charts.bitnami.com/bitnami

使用 Chart.lock 锁定

运行 helm dependency update 会写入 Chart.lock,记录确切的解析版本。请提交它,让团队成员构建出相同的依赖树。

helm dependency update

警惕浮动范围

像 ^15.0.0 这样的范围会让次要版本发生漂移。对于您信任的库,这样做没有问题;但稳定性最重要时,应当严格锁定版本。

自动化版本更新

让 Renovate 或 Dependabot 等工具为版本更新创建拉取请求。这样您既能保持版本锁定,又不会在补丁更新方面危险地落后。🔄

验证将要运行的内容

使用 helm template 渲染 chart,并对输出执行 grep,确认发布前没有镜像仍然解析为 latest。

helm template ./mychart | grep image:

快速检查

为什么 latest 镜像标签不适合作为 chart 的默认值?

回顾

您学会了锁定镜像标签或摘要、使用 Chart.lock 锁定依赖,以及避免使用 latest。锁定版本让每次部署都可以重复执行。✅

常见问题解答

「固定版本并避免使用 latest」课时是免费的吗?

是的 — 「固定版本并避免使用 latest」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Helm Academy 课程的其余内容,请升级到 CoddyKit PRO。 Helm Academy 课程共包含 4 节课。

「固定版本并避免使用 latest」这节课中我会学到什么?

确保镜像和依赖版本可复现 你通过在浏览器中直接运行的动手代码来练习 Helm Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Helm Academy 需要有经验吗?

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

「固定版本并避免使用 latest」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 标准标签与命名约定
  2. 合理且有文档说明的默认值
  3. 使用 securityContext 加固 Pod
  4. 固定版本并避免使用 latest
← 返回 Helm Academy