Helm 基础
约 561 字大约 2 分钟
布欧-Lewyon
2026-05-15
首页 › K8s › 运维与监控(在新窗口打开) › Helm 基础
什么是 Helm
Helm 是 K8s 的包管理器,将一组 K8s 资源打包为 Chart,支持版本管理、参数化、回滚。
安装 Helm
# macOS
brew install helm
# 脚本安装
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
# 验证
helm version使用 Helm 安装 Chart
# 添加仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add nginx-stable https://helm.nginx.com/stable
helm repo update
# 搜索 Chart
helm search repo nginx
# 安装 Chart
helm install my-nginx bitnami/nginx
# 安装时指定 values
helm install my-nginx bitnami/nginx --set service.type=LoadBalancer --set replicaCount=3
# 从 values 文件安装
helm install my-nginx bitnami/nginx -f my-values.yaml管理 Release
# 查看 Release
helm list
helm list -n kube-system
# 升级
helm upgrade my-nginx bitnami/nginx --set image.tag=1.25
# 回滚
helm rollback my-nginx 1 # 回滚到版本 1
# 查看历史
helm history my-nginx
# 卸载
helm uninstall my-nginxChart 结构
helm create mychart
# 目录结构:
# mychart/
# ├── Chart.yaml # Chart 元信息
# ├── values.yaml # 默认配置值
# ├── charts/ # 子 Chart 依赖
# └── templates/ # K8s YAML 模板
# ├── deployment.yaml
# ├── service.yaml
# ├── _helpers.tpl # 辅助模板
# └── NOTES.txt # 安装后提示信息# Chart.yaml
apiVersion: v2
name: myapp
description: My Application
version: 0.1.0
appVersion: "1.0"
type: application# values.yaml
replicaCount: 3
image:
repository: nginx
tag: alpine
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80# templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "mychart.fullname" . }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ include "mychart.name" . }}
template:
metadata:
labels:
app: {{ include "mychart.name" . }}
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
ports:
- containerPort: {{ .Values.service.port }}helm template
# 渲染模板到终端(不安装)
helm template my-release ./mychart
# 渲染模板到文件
helm template my-release ./mychart > output.yaml常用操作
# 检查 values 语法
helm lint ./mychart
# 打包 Chart
helm package ./mychart
# 生成 mychart-0.1.0.tgz
# 拉取 Chart
helm pull bitnami/nginx --untar小明书安装 MongoDB
# 使用 Bitnami 仓库安装 MongoDB(配置存储和密码)
helm install my-mongodb bitnami/mongodb \
--set auth.rootPassword=secret123 \
--set persistence.size=10Gi \
--set architecture=replicaset
# 升级
helm upgrade my-mongodb bitnami/mongodb --set auth.rootPassword=secret123
# 卸载
helm uninstall my-mongodb小结
- Helm 是 K8s 包管理器,Chart 是打包格式,Release 是部署实例。
helm install/upgrade/rollback/uninstall管理 Release 生命周期。values.yaml参数化配置,--set或-f覆盖默认值。helm create mychart创建新 Chart。helm lint检查语法,helm template渲染预览。
上一节:kubectl 进阶与调试 下一节:监控与备份
