命令 | 描述 |
---|---|
create | 创建一个 chart 并指定名字 |
install | 安装一个 chart |
uninstall | 卸载一个 release |
upgrade | 更新一个 release |
rollback | 回滚之前版本 |
version | 查看 helm 客户端版本 |
dependency | 管理 chart 依赖 |
get | 下载一个 release。可用子命令:all、hooks、manifest、notes、values |
history | 获取 release 历史 |
list | 列出 release |
package | 将 chart 目录打包到 chart 存档文件中 |
pull | 从远程仓库中下载 chart 并解压到本地 # helm pull stable/mysql —untar |
repo | 添加,列出,移出,更新和索引 chart 仓库。可用子命令:add、index、list、remove、update |
search | 根据关键字搜索 chart。可用子命令:hub、repo |
show | 查看 chart 详细信息。可用子命令:all、chart、readme、values |
status | 显示已命名版本的状态 |
template | 本地呈现模板 |
查询
# 查看已部署的 release
helm ls
# 查看指定 release 的状态
helm status <release_name>
# 查看已经移除但保留在历史记录中的 release
helm ls --uninstalled
安装
# 普通安装
helm install <release_name> <chart_path>
# 指定变量安装
helm install --set image.tag=*** <release_name> <chart_path>
更新
# 普通更新
helm upgrade [flag] <release_name> <chart_path>
# 指定文件更新
helm upgrade -f myvalues.yaml -f override.yaml <release_name> <chart_path>
# 指定变量更新
helm upgrade --set foo=bar --set foo=newbar redis ./redis
删除
# 移除 release,不保留历史记录
helm uninstall <release_name>
# 移除 release,保留历史记录
helm uninstall <release_name> --keep-history
# 查看历史记录
helm ls --uninstalled
回滚
helm rollback <release> [revision]
# 查找 chart
helm search repo mysql
# 查看 chart 信息
helm show values azure/mysql
# 安装包
# 一个 chart 包是可以多次安装到同一个集群中的,每次安装都会产生一个 release, 每个 release 都可以独立管理和升级。
helm install db azure/mysql # db 是自己指定的 chart 名
# 查看发布状态
helm list
helm status db
kubectl get secret --namespace default db-mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo
kubectl get Deployment
kubectl get pods,svc -o wide
kubectl get pv,pvc
kubectl exec -it db-mysql-864bfb89bb-rh8m8 /bin/bash
mysql -uroot -pxAn4Rw12RY
# 卸载一个 charts
helm uninstall db
kubectl get pods,svc -o wide
kubectl get pv,pvc
kubectl get deploy
helm list
# 可以看到 mysql 已经卸载完全
自定义 chart 配置选项,安装过程中有两种方法可以传递配置数据:
—values (或 -f):指定带有覆盖的 YAML 文件。这可以多次指定,最右边的文件优先。
—set:在命令行上指定替代。如果两者都用,—set 优先级高。
# 注意这个文件里的内容不要和 charts 描述的内容冲突
cat config.yaml
helm install mysql azure/mysql -f config.yaml
helm ls
Charts 就是按特定格式组织的目录结构,目录名即为 Charts 名,目录名称本身不包含版本信息。目录结构中除了 charts/ 和 templates/ 是目录之外,其他的都是文件。它们的基本组成如下