Skip to content
返回部署

Kubernetes Helm Charts

K8s 包管理器 — 模板清单、values 和 release。

容器高级

为什么

Helm 将 K8s 清单打包为可复用 chart,含模板和 values。一 chart 用不同 values 部署 dev/staging/prod,helm rollback 撤销 release。

Docker is used by 59% of professional developers per the Stack Overflow 2024 survey,Kubernetes 在生产中运行 60% 的容器化工作负载(CNCF 2024 调查)。容器编排通过声明式滚动发布将部署相关事故减少 35%。

何时使用

任何非平凡 K8s 部署用 Helm。简单单清单部署避免。

如何做

1. 创建 — helm create mychart(脚手架) 2. 模板 — templates/*.yaml 配 {{ .Values.* }} 3. Values — values.yaml 默认值 4. 安装 — helm install release mychart -f prod.yaml 5. 升级 — helm upgrade release mychart -f prod.yaml 6. 回滚 — helm rollback release 1 7. 仓库 — helm repo add,helm push

示例

# templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: { name: {{ .Release.Name }} } spec: replicas: {{ .Values.replicas }} template: spec: containers: - name: app image: {{ .Values.image }} env: - name: DB_URL value: {{ .Values.dbUrl | quote }} # values.yaml replicas: 3 image: myapp:latest dbUrl: postgres://... # 安装和升级 helm install myapp ./mychart -f values-prod.yaml helm upgrade myapp ./mychart -f values-prod.yaml helm rollback myapp 1 # 回滚到修订 1

常见问题

  • ⚠模板语法错误 — helm lint mychart 安装前验证
  • ⚠Values 未覆盖 — -f values-prod.yaml,helm get values 查优先级
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓安装前 helm lint — 早抓模板错误
  • ✓Chart.yaml 版本化 chart — semver 安全升级回滚
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答