概述
Helm3的稳定版本已经有一段时间了。相对对Helm2有了很大变化,主要删除了Tiller,引入了OCI支持等。底层相对与Helm2来说,某些功能已经被弃用或重构,因此与Helm2不兼容,因此升级会有一些风险,需要谨慎操作。
升级
下载helm3.0版本(实际改为你要升级版本,建议是最新版):
wget -c https://get.helm.sh/helm-v3.0.3-linux-amd64.tar.gz
备份以前的helm版本:
cd /usr/local/bin/
mv helm helm_v2
解压helm3版本,并拷贝到安装目录:
tar -xf helm-v3.0.3-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin
备份helm2的配置,默认在~/.helm目录下
cp .helm/ .helm_bak -rf
安装helm-2to3插件
helm plugin install https://github.com/helm/helm-2to3
Downloading and installing helm-2to3 v0.2.2 ...
https://github.com/helm/helm-2to3/releases/download/v0.2.2/helm-2to3_0.2.2_linux_amd64.tar.gz
Installed plugin: 2to3
测试一个2to3的插件是否能正常工作:
helm 2to3 move config --dry-run
[Move Config/confirm] Are you sure you want to move the v2 configration? [y/N]: y
2020/02/02 07:40:33
Helm v2 configuration will be moved to Helm v3 configration.
2020/02/02 07:40:33 [Helm 2] Home directory: /root/.helm
2020/02/02 07:40:33 [Helm 3] Config directory: /root/.config/helm
2020/02/02 07:40:33 [Helm 3] Data directory: /root/.local/share/helm
…
确认输出没有问题后,进行升级:
# 更新配置
helm 2to3 move config
2020/02/02 07:40:59 [Helm 3] data folder "/root/.local/share/helm" created.
2020/02/02 07:40:59 [Helm 2] starters "/root/.helm/starters" will copy to [Helm 3] data folder "/root/.local/share/helm/starters" .
2020/02/02 07:40:59 [Helm 2] starters "/root/.helm/starters" copied successfully to [Helm 3] data folder "/root/.local/share/helm/starters" .
2020/02/02 07:40:59 Helm v2 configuration was moved successfully to Helm v3 configration.
#依次转换helm v2 为 helm v3 (先加—dry-run确认是否有问题)
helm 2to3 convert --dry-run default-nfs-provisioner
helm 2to3 convert default-nfs-provisioner
…
验证helm是否有问题(注意:helm3需要加-n参数来查看指定的命名空间下面的chart了)
helm list
总结
helm本身是二进制版本,拷贝后直接可以使用,但需要利用2to3插件将原来Helm2版本的charts转换为Helm3版本。