1. Helm 与 Chart 仓库基础:Helm 是什么、Chart 仓库的作用、OCI 与旧版仓库的区别

1.1 Helm:Kubernetes 的包管理器

Helm 是 Kubernetes 生态中最广泛使用的应用打包与部署管理工具,常被称为“Kubernetes 的 apt/yum/homebrew”。它通过 Chart(图表)这一标准化打包格式,将一组相关的 Kubernetes 资源(Deployment、Service、ConfigMap、Ingress 等)描述、版本化并组合在一起,实现一键安装、升级、回滚和卸载。

核心价值:将复杂的 Kubernetes YAML 管理从“手工拼凑”升级为“声明式、可复用、可版本化”的工程化流程。

1.2 Chart 仓库的作用

Chart 仓库(Chart Repository)是存储和分发 Helm Chart 的 HTTP/HTTPS 服务器。它本质上是一个 index.yaml 索引文件 + 一组打包后的 .tgz 文件。仓库的核心作用包括:

  • 集中存储:将 Chart 包统一托管,避免散落在开发者本地或 Git 仓库中。
  • 版本管理:支持语义化版本(SemVer),允许用户指定版本范围进行安装或升级。
  • 依赖解析:Helm 在安装时自动从仓库拉取依赖的 Chart,实现复杂应用的组合部署。
  • 团队协作:通过私有仓库实现企业内部 Chart 的共享与权限控制。
典型场景:一个微服务架构的应用,其基础中间件(Redis、MySQL)作为依赖 Chart 从公共仓库拉取,业务 Chart 从私有仓库拉取,Helm 自动完成依赖解析与安装顺序。

1.3 OCI 仓库与旧版仓库的区别

Helm v3.8+ 开始原生支持 OCI(Open Container Initiative) 标准仓库,将 Chart 作为 OCI 制品存储在容器镜像仓库(如 Harbor、Docker Hub、AWS ECR)中。这与传统的 Chart 仓库(基于 index.yaml 的 HTTP 服务器)有本质区别。

对比维度 旧版 Chart 仓库(index.yaml) OCI 仓库(容器镜像仓库)
存储结构 单一 index.yaml 索引 + 多个 .tgz 文件 每个 Chart 版本作为一个 OCI 制品(manifest + layers)
认证机制 基本 HTTP 认证或自定义 标准 OCI 认证(docker login、bearer )
版本管理 依赖 index.yaml 中的条目,删除/覆盖操作不透明 基于 OCI 引用(registry/repo:tag),支持不可变标签和内容寻址
分发效率 每次拉取需下载整个 .tgz,不支持分层缓存 支持分层拉取(layer caching),仅下载变更层,显著加速大规模部署
CDN 适配性 需额外配置反向代理缓存 .tgz 和 index.yaml 天然适配 OCI 分发协议,可复用容器镜像 CDN 基础设施
工具生态 仅 Helm 原生支持,第三方工具需额外适配 兼容所有 OCI 标准工具(oras、crane、skopeo)
迁移注意:OCI 仓库要求 Helm 版本 ≥ 3.8,且需要 Chart 开发者将 Chart 打包为 OCI 格式(helm package + helm push)。旧版仓库中的 Chart 无法直接迁移,需重新推送。

1.4 Helm Chart 仓库架构对比(SVG)

下图展示了旧版 Chart 仓库与 OCI 仓库在存储和拉取流程上的核心差异:

旧版 Chart 仓库 vs OCI 仓库架构对比 旧版 Chart 仓库 index.yaml chart-v1.tgz chart-v2.tgz chart-v3.tgz helm fetch → 下载整个 .tgz 无分层缓存,重复下载相同内容 OCI 仓库 manifest (v1) layer A (base) manifest (v2) layer B (diff) helm pull → 按层拉取 仅下载变更层,缓存复用 OCI 仓库通过分层复用和标准认证,为 CDN 加速提供了更高效的分发基础

1.5 为什么选择 OCI 仓库作为 CDN 加速目标

本课程后续的 CDN 配置实战将主要围绕 OCI 仓库展开,原因如下:

  1. 分层缓存效率高:CDN 节点可以缓存不变的 base layer,仅回源拉取变更的 diff layer,大幅降低回源带宽和延迟。
  2. 标准认证协议:OCI 的 Bearer 认证与 CDN 的鉴权配置(如阿里云 CDN 的 Referer/URL 鉴权)天然兼容。
  3. 多集群分发:在边缘 CDN 节点缓存 Chart 层,实现全球多 Kubernetes 集群的快速拉取。
  4. 工具链统一:与容器镜像共用同一套分发基础设施,降低运维复杂度。
实战前提:确保你的 Helm 版本 ≥ 3.8,并且目标容器镜像仓库(如 Harbor 2.4+、AWS ECR、Azure ACR)已开启 OCI 制品支持。