(五)Helm之release
一、release简介
在以上的章节中曾介绍过 helm 的两大术语:chart 和 release。如果可以把 chart 比作程序源码的话,那么 release 则可以看做是程序运行时的进程。
chart 是用户可直接感知的对象(其表现形式就是 .tgz 格式的压缩包);而 release 理解起来则比较抽象,它是专属于 helm 的一个逻辑概念,用来标识在 k8s 中运行的一组资源。有了 release,helm 在操作 k8s 时,就再也不用逐个管理资源,而可以将一组相关的资源当做一个整体来操作,比如删除或升级。
二、release查看
# helm ls
三、release安装
在线安装指定的 chart,比如 nginx-ingress。
# helm search repo nginx-ingress
# helm install mynginx-ingress google/nginx-ingress
四、release更新
如果想修改运行时release的配置,可以使用--set或者-f选项进行修改。
4.1 基于命令行更新release
## mynginx-ingress 是上面创建的 release 名;google/nginx-ingress 是在线 chart 名
# helm upgrade --set controller.hostNetwork=true \
mynginx-ingress google/nginx-ingress
4.2 基于文件更新release
如果想基于文件来更新release,则首先需要将chart下载到本地,然后手动修改chart的values.yaml文件。
## 下载 chart
# helm pull google/nginx-ingress
## 解压缩 chart
# tar -zxvf nginx-ingress-1.26.1.tgz
## 修改 values.yaml 内容。比如修改 hostNetwork 的值为 true
# sed -i 's/hostNetwork: false/hostNetwork: true/g' nginx-ingress/values.yaml
## 针对文件使用 -f 选项更新 release
# helm upgrade mynginx-ingress nginx-ingress -f nginx-ingress/values.yaml
4.3 查看release更新后的新值
# helm get values mynginx-ingress
五、release版本
## 下图是 mynginx-ingress 这个 release 各个历史版本。其中 REVISION 5 是最新的版本。
# helm history mynginx-ingress
六、release回滚
helm rollback mynginx-ingress 4
七、release卸载
helm uninstall mynginx-ingress