What Helm Does
- Charts — packaged templated Kubernetes manifests
- Values — override defaults per install
- Templates — Go template language for dynamic resources
- Releases — named install instances of a chart
- Rollbacks — revert to a previous release
- Dependencies — charts can depend on other charts
- Hooks — pre-install, post-upgrade lifecycle
- Repositories — share and discover charts
- OCI registry — store charts in OCI-compliant registries
Architecture
Helm 3 is a pure client-side tool (no Tiller). helm install renders the templates locally, applies manifests to the cluster via the Kubernetes API, and stores release metadata as Kubernetes Secrets. No server-side component with cluster-admin rights.
Self-Hosting
CLI tool — runs on developer workstation or CI. Charts can be hosted anywhere:
- ChartMuseum — open-source chart repo
- Harbor — container registry with Helm chart support
- GitHub Pages — via
helm repo index - Any OCI registry — Docker Hub, GHCR, ECR
Key Features
- Templated manifests
- Release tracking
- Rollback support
- Chart dependencies
- Lifecycle hooks
- Values hierarchy (CLI > values file > defaults)
- Chart testing (helm test)
- OCI registry support
- Public chart hubs (Artifact Hub)
Comparison
| Tool | Approach | Templating | Rollbacks |
|---|---|---|---|
| Helm | Template + release | Go templates | Yes |
| Kustomize | Overlay + base | No templates | Manual |
| Jsonnet | Programmable JSON | Jsonnet | Manual |
| Pulumi | Programming lang | Any language | Via state |
| Cdk8s | TypeScript/Python | Code | Via state |
常见问题 FAQ
Q: Helm vs Kustomize? A: Helm 适合分发通用软件(values 覆盖定制);Kustomize 适合环境差异(dev/stage/prod overlay)。常组合使用:Helm 给默认值,Kustomize 做 environment-specific patch。
Q: 模板太复杂? A: Go template 确实有学习曲线。复杂逻辑可以用 Helm 3 支持的 Lua-like 扩展,或切到 Cue/Pulumi/Jsonnet。
Q: v2 vs v3? A: v3 移除了 Tiller(server 组件),安全性和简洁性大幅提升。v2 已 EOL,新项目必须 v3。
来源与致谢 Sources
- Docs: https://helm.sh/docs
- GitHub: https://github.com/helm/helm
- License: Apache 2.0