安装
1 2 3 4 5 6 7 8 9 10 11 12 13
| # brew brew install helm
# snap sudo snap install helm --classic
# microk8s microk8s enable helm3 # microk8s helm3 ...
# arch sudo pamac install helm
|
概念
Helm 可以安装 Charts 到 k8s 集群中,为每次安装创建新的 Release。为了获取新的 Charts,可以搜索 Helm Charts Repositories。
Chart
在 Helm 中,Chart 是一个集合,包含所有必要的的资源定义来运行一个应用、工具或者 k8s 集群中的服务。
Repository
Repository 是 Charts 收集和分享的地方。
Release
Release 是 Chart 运行在 k8s 集群中的实例。一个 Chart 可以在相同的集群被安装多次,每次安装都会创建一个新的 Release。
使用
Repo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| # 添加 helm repo add <name> <url>
# 查看 repo 下的 charts helm search repo <repo-name>
# 更新 repo helm repo update <repo-name>
# 列出添加的 repo helm repo list
# 移除 repo helm repo remove <repo-name>
# 打包 repo helm package <relative-path-to-chart>
# 生成 index helm repo index
|
Chart
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| # 搜索 helm search repo <repo-name> # 在添加的 repo 中搜索 helm search hub <repo-name> # 在 hub 中搜索
# 安装一个 Chart helm install <chart> --generate-name helm install <release-name> <chart>
# 列出安装的 chart helm list # 或 helm ls
# 写在一个 chart helm uninstall <release-name>
# 查看一个 helm 的状态 helm status <release-name>
|
Values
1 2 3 4 5 6 7 8 9 10
| # 查看 chart values helm show values bitnami/wordpress # 查看 release values helm show values <release-name>
# 覆盖 values (使用文件) echo '{mariadb.auth.database: user0db, mariadb.auth.username: user0}' > values.yaml helm install -f values.yaml bitnami/wordpress --generate-name # 覆盖 values (使用命令行参数) helm install --set mariadb.auth.database=user0db,sample.list={1,2,3},sample.empty.list=[] bitnami/wordpress --generate-name
|
升级与回滚
升级
1 2 3 4 5
| echo "mariadb.auth.username: user1" > panda.yaml helm upgrade -f panda.yaml <release-name> <chart>
# 示例 helm upgrade -f panda.yaml happy-panda bitnami/wordpress
|
回滚
1 2 3 4
| helm rollback <release-name> <REVISION> --timeout <timeout> --wait
# 查看 revision helm history <release-name>
|
模板
1 2
| # 查看生成 Manifest helm template --debug <relative-path-to-chart>
|
ArtifactHUB
helm artifact hub
自定义 Repo
示例参考 bitnami。