从helm2升级为helm3

发布于 2020年02月06日

概述

Helm3的稳定版本已经有一段时间了。相对对Helm2有了很大变化,主要删除了Tiller,引入了OCI支持等。底层相对与Helm2来说,某些功能已经被弃用或重构,因此与Helm2不兼容,因此升级会有一些风险,需要谨慎操作。

升级

  1. 下载helm3.0版本(实际改为你要升级版本,建议是最新版):

wget -c https://get.helm.sh/helm-v3.0.3-linux-amd64.tar.gz
  1. 备份以前的helm版本:

cd /usr/local/bin/

mv helm  helm_v2
  1. 解压helm3版本,并拷贝到安装目录:

tar -xf helm-v3.0.3-linux-amd64.tar.gz 

mv linux-amd64/helm /usr/local/bin
  1. 备份helm2的配置,默认在~/.helm目录下

cp .helm/ .helm_bak -rf
  1. 安装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
  1. 测试一个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

…
  1. 确认输出没有问题后,进行升级:

# 更新配置

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

…
  1. 验证helm是否有问题(注意:helm3需要加-n参数来查看指定的命名空间下面的chart了)

helm list

总结

helm本身是二进制版本,拷贝后直接可以使用,但需要利用2to3插件将原来Helm2版本的charts转换为Helm3版本。



评论