本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

升级

以下说明将指导您升级在 Kubernetes 集群上使用 Helm 安装的 Rancher 服务器。这些步骤同样适用于使用 Helm 进行隔离安装。

有关使用 Docker 安装的 Rancher 的升级说明,请参阅 xref:[此页面。]

先决条件

访问 kubeconfig

Helm 应在与您的 kubeconfig 文件相同的位置运行,或者在您运行 kubectl 命令的相同位置运行。

如果您使用 RKE2/K3s 安装了 Kubernetes,Kubeconfig 存储在 /etc/rancher/rke2/rke2.yaml/etc/rancher/k3s/k3s.yaml 目录中,具体取决于您选择的发行版。

kubeconfig 也可以手动针对目标集群进行设置,使用 --kubeconfig 标签(请参见: https://helm.sh/docs/helm/helm/))

查看已知问题

查看每个 Rancher 版本的已知问题列表,您可以在 GitHub 的发布说明和 Rancher 论坛 上找到。

Helm 版本

升级说明假设您正在使用 Helm 3。

对于隔离安装:填充私有注册表。

对于 仅限隔离的安装, 收集并填充新 Rancher 服务器版本的镜像。按照指南 将目标 Rancher 版本的镜像填充到您的私有注册表中

对于 cert-manager 版本低于 0.8.0 的升级

升级大纲

按照以下步骤升级 Rancher 服务器:

1.备份正在运行 Rancher 服务器的 Kubernetes 集群

使用 备份应用程序 备份 Rancher。

如果在升级过程中出现问题,您将使用备份作为恢复点。

2.更新 Helm 图表储存库

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

    helm repo update
  2. 获取您用于安装 Rancher 的储存库名称。

    helm repo list
    
    NAME                     URL
    rancher-prime          <helm-chart-repo-url>
  3. 从 Helm 图表储存库获取最新的图表以安装 Rancher。

    此命令将下载最新的图表并将其保存在当前目录中作为 .tgz 文件。

     helm fetch rancher-prime/rancher

    您可以通过添加 --version= 标签来获取您要升级到的特定版本的图表。 例如:

     helm fetch rancher-prime/rancher --version={current-patch-version}

3.在升级之前审查 Rancher 功能图表版本

Rancher 功能图表遵循与 Rancher 版本对齐的特定发布线。功能图表的主要版本对应于 Rancher 的次要版本,并遵循定义的版本方案。

在升级 Rancher 之前,请查看任何已安装的 Rancher 功能图表,并将其升级到当前图表发布线中的最新可用版本。这有助于确保兼容性,并避免在 Rancher 升级期间或之后出现潜在问题。

要查看已安装的功能图表:

  1. 在 Rancher UI 中,转到 应用程序与市场

  2. 选择 已安装的应用程序

  3. 查看图表版本,并在需要时升级到同一图表主要版本中的最新补丁。

有关更多信息,请参见 在 Rancher 中的 Helm 图表 – 版本方案

4.升级 Rancher

本节描述了如何使用 Helm 升级正常(连接互联网)或隔离环境中的 Rancher 安装。

隔离环境说明:

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

从 Rancher v2.13.1 升级

在 Rancher v2.13.2 中,Helm 图表名称已从 rancher-prime 恢复为 rancher。如果您是从 v2.13.1 升级,之前图表创建的现有 Ingress 资源与新图表冲突,导致升级失败,错误信息类似于:

Error: UPGRADE FAILED: failed to create resource: admission webhook "validate.nginx.ingress.kubernetes.io" denied the request: host "rancher.my.org" and path "/" is already defined in ingress cattle-system/rancher-rancher-prime

为防止或解决此问题,您必须在完成升级之前手动删除旧的 Ingress:

kubectl delete ingress rancher-rancher-prime -n cattle-system

从当前安装的 Rancher Helm 图表中获取与 --set 一起传递的值。

helm get values rancher -n cattle-system

hostname: rancher.my.org

使用此命令将列出更多值。这只是其中一个值的示例。

您的部署名称可能会有所不同;例如,如果您通过 AWS Marketplace 部署 Rancher,部署名称为 'rancher-prime'。 因此:

helm get values rancher-prime -n cattle-system

hostname: rancher.my.org

如果您要将 cert-manager 从 v1.5 或更低版本升级到最新版本,请遵循 cert-manager 升级文档,了解如何在不需要卸载或重新安装 Rancher 的情况下升级 cert-manager。否则,请遵循下面的 升级 Rancher 的步骤

升级 Rancher 的步骤

将 Rancher 升级到最新版本,并保留所有设置。

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

helm upgrade rancher rancher-prime/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org

以上是一个示例,可能还有更多来自上一步的值需要附加。

如果您通过 AWS Marketplace 部署 Rancher,部署名称为 'rancher-prime'。 因此:

helm upgrade rancher-prime rancher-prime/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org

另外,可以将当前值导出到文件,并在升级期间引用该文件。例如,仅更改 Rancher 版本:

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

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

     helm upgrade rancher rancher-prime/rancher \
       --namespace cattle-system \
       -f values.yaml \
       --version={current-patch-version}

5.验证升级

登录 Rancher 以确认升级成功。

已知升级问题

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