安装
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 。