如果您使用的是 Helm 2,我们建议,因为 Helm 3 使用起来更简单,而且比 Helm 2 更安全。

本节提供了使用 Helm 2 升级 Rancher 的旧版指南,适用于无法升级到 Helm 3 的情况。 :::

以下说明将指导您使用 Helm 升级 Kubernetes 集群上安装的 Rancher Server。

要升级 Kubernetes 集群中的组件,Kubernetes 服务或,请参阅RKE 的升级文档,Rancher Kubernetes Engine。

如果您使用 RKE Add-on 的方式安装了 Rancher,请按照的说明进行操作。

  • 从 Rancher 文档中的 已知升级问题 查看升级 Rancher 中最值得注意的问题。可以在GitHub 和 的发行说明中找到每个 Rancher 版本的已知问题的更完整列表。
  • 仅对于离线安装,拉取并上传新的 Rancher Server 版本的镜像。请按照指南,来准备您要升级的版本的镜像。

升级大纲

请按照以下步骤升级 Rancher Server:

为运行 Rancher Server 的 Kubernetes 集群创建快照。 如果升级过程中出现问题,则使用快照回滚至升级前的版本。

  1. 获取用于安装 Rancher 的仓库名称。

    • latest: 推荐在尝试新功能时使用。
    • stable: 推荐生产环境中使用。(推荐)
    • alpha: 未来版本的实验性预览。
  1. ```
  2. helm repo list
  3. NAME URL
  4. stable https://kubernetes-charts.storage.googleapis.com
  5. rancher-<CHART_REPO> https://releases.rancher.com/server-charts/<CHART_REPO>
  6. ```
  7. > **注意:** 如果要切换到其他 Helm chart 仓库,请按照[切换仓库文档](https://github.com/cnrancher/docs-rancher2/blob/dev/docs/installation/options/server-tags/_index.md)进行切换。如果要切换仓库,请确保在继续执行第 3 步之前再次列出仓库,以确保添加了正确的仓库。
  1. 从 Helm chart 仓库中获取最新的 chart 以安装 Rancher。

    该命令将拉取最新的 chart 并将其保存为当前目录中的一个.tgz文件。

本节介绍如何使用 Helm 升级 Rancher 的常规(连接 Internet) 或离线安装。

Rancher 高可用升级

从已安装的当前 Rancher Helm chart 中获取通过 --set 传递的值。

如果您在将 cert-manager 从 0.11.0 之前的版本升级到最新版本,请执行 选项 B - 重新安装 Rancher Chart。否则,请执行 选项 A - 升级Rancher

选项 A - 升级 Rancher

使用所有设置将 Rancher 升级到最新版本。

取上一步中的所有值,然后使用--set key=value将它们附加到命令中:

  1. helm upgrade rancher-<CHART_REPO>/rancher \
  2. --name rancher \
  3. --namespace cattle-system \
  4. --set hostname=rancher.my.org
选项 B - 重新安装 Rancher Chart

如果您当前正在运行版本低于 v0.11 的 cert-manger,并且想将 Rancher 和 cert-manager 都升级到新版本,则由于 cert-manger v0.11 中的 API 更改,您需要重新安装 Rancher 和 cert-manger。

    1. 参考,卸载并且重新安装cert-manager

    2. 使用所有的选项将 Rancher 重新安装到最新版本。获取步骤 1 中的所有值,然后使用--set key=value。将它们附加到命令中。

    离线安装的 Rancher 高可用升级

    1. 使用与安装 Rancher 时使用的相同参数选项来渲染 Rancher 模板。使用下面的参考表替换每个占位符。需要将 Rancher 配置为使用私有仓库,来部署 RKE 集群或 Rancher 工具。

      根据您在安装过程中所做的选择,完成以下过程之一。

      选项 A - 使用 Rancher 默认的自签名证书

      1. helm template ./rancher-<VERSION>.tgz --output-dir . \
      2. --namespace cattle-system \
      3. --set hostname=<RANCHER.YOURDOMAIN.COM> \
      4. --set certmanager.version=<CERTMANAGER_VERSION> \
      5. --set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
      6. --set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # 自v2.2.0可用,设置默认的系统镜像仓库
      7. --set useBundledSystemChart=true # 自v2.3.0可用,使用内嵌的 Rancher system charts

      选项 B - 使用 Kubernetes 密文中的证书

      1. helm template ./rancher-<VERSION>.tgz --output-dir . \
      2. --name rancher \
      3. --namespace cattle-system \
      4. --set hostname=<RANCHER.YOURDOMAIN.COM> \
      5. --set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
      6. --set ingress.tls.source=secret \
      7. --set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # 自v2.2.0可用,设置默认的系统镜像仓库
      8. --set useBundledSystemChart=true # 自v2.3.0可用,使用内嵌的 Rancher system charts

      如果您使用的是由私有 CA 签名的证书,请在 --set ingress.tls.source=secret 之后添加 --set privateCA=true

    2. 将渲染的清单 YAML 文件目录复制到可以访问 Rancher Server 集群的系统,然后应用渲染的模板。

      使用 应用渲染的清单 YAML 文件。

      登录到 Rancher。通过检查浏览器窗口左下角显示的版本,确认升级成功.

      如果升级异常,可以通过使用升级之前拍摄的快照,恢复集群。有关更多信息,请参阅高可用回滚