Helm2 升级 Helm3

Helm2 to Helm3 升级记录

参考资料主要是官网提供的:

  • https://helm.sh/docs/topics/v2_v3_migration/
  • https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/

升级主要步骤

  • 先将 helm2 和 helm3 在你机器上共存,注意给不同的名字
  • 给 helm3 安装 2to3 帮助迁移的plugin: helm3 plugin install https://github.com/helm/helm-2to3
  • 迁移 helm2 的一些配置文件到 helm3 helm3 2to3 move config
  • 迁移 helm2 部署的 release,这需要一个个的迁移。
    先用 helm2 list 查看 helm2 安装的所有的release
    再用 helm3 2to3 convert xxx-release-name 一个一个release进行迁移。
    迁移完成后,用 helm3 list -A 检查 helm3迁移过来的release。
    -A 是查看所有namespace下面的release,因为helm3 对于release做了namespace的区分,
    如果只写helm3 list,看到的是 default 这个namespace下的release。
  • 最后一步是清除helm2的数据,这一步不是必须的,但是是强烈建议的。helm3 2to3 cleanup

Helm3使用记录中遇到的问题

  • helm3 不提供默认的 chart repo,需要手动添加
  • repo "https://kubernetes-charts.storage.googleapis.com"; is no longer available; try "charts.helm.sh/stable"; instead
  • 有一些release可能需要重新使用helm3安装,如:cert-manager, 因为用helm2安装的cert-manager 资源中配置的一些信息,在helm3里面不适用,如:key "app.kubernetes.io/managed-by": must equal "helm": current value is "Tiller"等。

2021年01月15日17:21:02

之前在qa环境做了helm2 to helm3的升级,stg 环境升级是 同事做的,prod 环境升级又是我做,时隔这么久再次升级遇到的问题:

  • 迁移 helm2 的一些配置文件到 helm3 helm3 2to3 move config的时候,due to the following error: open /xx/xx/.helm/repositories.yaml: no such file or directory。 猜测是在qa环境做完升级之后,helm2的配置已经被删除了。
    解决方案: helm2 init, 这样可以添加repo 文件,但是遇到添加 Failed to fetch https://kubernetes-charts.storage.googleapis.com/index.yaml : 403 Forbidden.
    https://kubernetes-charts.storage.googleapis.com/index.yaml 这个已经被弃用了。但是在helm2的init命令里依然使用的是这个。
    解决方案: helm2 init --stable-repo-url=https://charts.helm.sh/stable --client-only , 这里直接用: helm2 repo add stable https://charts.helm.sh/stable都不行,因为这个操作需要存在repo文件,必须用init命令初始化repo文件。

你可能感兴趣的:(Helm2 升级 Helm3)