SuperAPI AI 工具集

helm

部署与运维

查看项目

更新于 10-16 05:48

技能介绍

用途:Helm 是 Kubernetes 的包管理器,用于打包、模板化、版本化并部署复杂的 Kubernetes 应用,支持多环境值覆盖、第三方开源软件安装以及发布生命周期管理与回滚。

主要能力:使用 Go 模板参数化 Kubernetes 资源;通过 values.yaml 与 values.schema.json 进行值覆盖和类型校验;用 _helpers.tpl 定义标签与命名辅助模板;将 Chart 推送到 OCI 兼容仓库(GHCR、ECR、Artifact Registry);跟踪发布修订并执行 helm rollback。

使用方式:安装 Chart 可执行 helm install my-release oci://registry-1.docker.io/bitnamicharts/nginx;创建 Chart 用 helm create my-chart;校验模板用 helm lint ./mychart;试运行用 helm install my-release ./mychart --dry-run --debug;升级并原子回滚用 helm upgrade --install my-release ./mychart --namespace production --create-namespace --values values-production.yaml --atomic --timeout 5m;回滚用 helm rollback my-release 1 --namespace production。

适用场景:Kubernetes 应用打包与部署、dev/staging/production 多环境值覆盖、通过 Helm Repo 安装 Cert-Manager、Ingress-Nginx、Prometheus 等社区软件、发布升级与自动回滚。

限制与注意事项:不要在 values.yaml 中硬编码敏感密码,应通过外部密钥管理器注入;避免在未处理 CRD 与 hook 的情况下使用 helm template 配合 kubectl apply;默认值中应设置明确的资源 requests 与 limits。常见问题包括升级时另一操作进行中导致 release secret 锁定、访问不存在的 .Values 键导致 nil pointer、渲染清单包含已存在资源等,可分别通过回滚、使用 default 函数或添加 meta.helm.sh/release-name 注解处理。官方文档见 Helm Documentation。