升级

本文介绍如何升级使用 Helm 安装在 Kubernetes 集群上的 Rancher Server。这些步骤也适用于使用 Helm 进行的离线安装。

有关使用 Docker 安装的 Rancher 的升级说明,请参见本页。

如需升级 Kubernetes 集群中的组件,或 Kubernetes services附加组件(add-on)的定义,请参见 RKE 升级文档的 Rancher Kubernetes 引擎。

先决条件

访问 kubeconfig

Helm 的运行位置,应该与你的 kubeconfig 文件,或你运行 kubectl 命令的位置相同。

如果你在安装 Kubernetes 时使用了 RKE,那么 config 将会在你运行 rke up 的目录下创建。

kubeconfig 也可以通过 --kubeconfig 标签(详情请参见 https://helm.sh/docs/helm/helm/ )来手动指定所需的集群。

查看已知问题

如需查看每个 Rancher 版本的已知问题,请参见 GitHub 中的发行说明,或查看 Rancher 论坛

不支持 升级升级到 rancher-alpha 仓库中的任何 Chart。

Helm 版本

本安装指南假定你使用的是 Helm 3。

升级 - 图1危险

Helm v2 support is deprecated as of the Rancher v2.7 line and will be removed in Rancher v2.9.

如果你使用 Helm 2,请参见 Helm 2 迁移到 Helm 3 文档。如果你不能升级到 Helm 3,Helm 2 升级页面提供了使用 Helm 2 升级的旧升级指南。

离线安装:推送镜像到私有镜像仓库

仅适用于离线安装:为新的 Rancher Server 版本收集和推送镜像。使用你需要针对 Rancher 版本升级的镜像,按照步骤推送镜像到私有镜像仓库

使用 cert-manager 0.8.0 之前的版本升级

从 2019 年 11 月 1 日开始,Let’s Encrypt 已屏蔽早于 0.8.0 的 cert-manager 实例。因此,请参见说明把 cert-manager 升级到最新版本。

升级概要

按照以下步骤升级 Rancher Server:

1. 备份运行 Rancher Server 的 Kubernetes 集群

使用备份应用来备份 Rancher。

如果升级过程中出现问题,你将使用备份作为还原点。

2. 更新 Helm Chart 仓库

  1. 更新本地 Helm 仓库缓存。

    1. helm repo update
  2. 获取你用来安装 Rancher 的仓库名称。

    关于仓库及其区别,请参见 Helm Chart 仓库

    • Latest:建议用于试用最新功能

      1. helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
    • Stable:建议用于生产环境

      1. helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
    • Alpha:即将发布的实验性预览。

      1. helm repo add rancher-alpha https://releases.rancher.com/server-charts/alpha

      注意:不支持升级到 Alpha 版、从 Alpha 版升级或在 Alpha 版之间升级。

    1. helm repo list
    2. NAME URL
    3. stable https://charts.helm.sh/stable
    4. rancher-<CHART_REPO> https://releases.rancher.com/server-charts/<CHART_REPO>

    升级 - 图2备注

    如果你想切换到不同的 Helm Chart 仓库,请按照切换仓库步骤进行操作。如果你要切换仓库,请先再次列出仓库,再继续执行步骤 3,以确保添加了正确的仓库。

  3. 从 Helm Chart 仓库获取最新的 Chart 来安装 Rancher。

    该命令将提取最新的 Chart,并将其作为 .tgz文件保存在当前目录中。

    1. helm fetch rancher-<CHART_REPO>/rancher

    你可以通过 --version= 标记,来指定要升级的目标 Chart 版本。例如:

    1. helm fetch rancher-<CHART_REPO>/rancher --version=2.6.8

3. 升级 Rancher

本节介绍了如何使用 Helm 升级 Rancher 的一般(互联网连接)或离线安装。

升级 - 图3离线说明:

如果你在离线环境中安装 Rancher,请跳过本页的其余部分,按照本页上的说明渲染 Helm 模板。

从当前安装的 Rancher Helm Chart 中获取用 --set传递的值。

  1. helm get values rancher -n cattle-system
  2. hostname: rancher.my.org

升级 - 图4备注

这个命令会列出更多的值。此处展示的只是其中一个值的例子。

升级 - 图5提示

Deployment 的名称可能会有所不同。例如,如果你通过 AWS Marketplace 部署 Rancher,则 Deployment 的名称为“rancher-stable”。 因此:

  1. helm get values rancher-stable -n cattle-system
  2. hostname: rancher.my.org

如果要将 cert-manager 从 v1.5 或更早的版本升级到最新版本,请参阅 cert-manager upgrade docs 了解如何在不卸载或重新安装 Rancher 的情况下升级 cert-manager。否则,请按照以下Rancher 升级步骤进行操作。

Rancher 升级步骤

保留你的所有设置把 Rancher 升级到最新版本。

将上一步中的所有值用 --set key=value 追加到命令中。

对于 Kubernetes v1.25 或更高版本,使用 Rancher v2.7.2-v2.7.4 时,将 global.cattle.psp.enabled 设置为 false。对于 Rancher v2.7.5 及更高版本来说,这不是必需的,但你仍然可以手动设置该选项。

  1. helm upgrade rancher rancher-<CHART_REPO>/rancher \
  2. --namespace cattle-system \
  3. --set hostname=rancher.my.org

升级 - 图6备注

以上是一个例子,可能有更多上一步的值需要追加。

升级 - 图7提示

如果你通过 AWS Marketplace 部署 Rancher,则 Deployment 的名称为“rancher-stable”。 因此:

  1. helm upgrade rancher-stable rancher-<CHART_REPO>/rancher \
  2. --namespace cattle-system \
  3. --set hostname=rancher.my.org

另外,你也可以将当前的值导出到一个文件中,并在升级时引用该文件。例如,如果你只需要改变 Rancher 的版本:

  1. 将当前值导出到文件:

    1. helm get values rancher -n cattle-system -o yaml > values.yaml
  2. 只更新 Rancher 版本:

    对于 Kubernetes v1.25 或更高版本,使用 Rancher v2.7.2-v2.7.4 时,将 global.cattle.psp.enabled 设置为 false。对于 Rancher v2.7.5 及更高版本来说,这不是必需的,但你仍然可以手动设置该选项。

    1. helm upgrade rancher rancher-<CHART_REPO>/rancher \
    2. --namespace cattle-system \
    3. -f values.yaml \
    4. --version=2.6.8

4. 验证升级

登录 Rancher 以确认升级成功。

升级 - 图8提示

升级后出现网络问题?

请参见恢复集群网络

已知升级问题

你可以在 GitHub 发布说明以及 Rancher 论坛中找到每个 Rancher 版本的已知问题。