离线升级

Rancher Helm 模板选项

使用安装 Rancher 时选择的相同选项来渲染 Rancher 模板。使用下面的参考表来替换每个占位符。Rancher 需要配置为使用私有镜像仓库,以便为任何 Rancher 启动的 Kubernetes 集群或 Rancher 工具提供服务。

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

占位符说明
<VERSION>输出压缩包的版本号。
<RANCHER.YOURDOMAIN.COM>指向负载均衡器的 DNS 名称。
<REGISTRY.YOURDOMAIN.COM:PORT>您的私有镜像仓库的 DNS 名称。
<CERTMANAGER_VERSION>在 k8s 集群上运行的 Cert-manager 版本。

选项 1:使用默认的自签名证书

2.5.8 及之后的版本

  1. helm template rancher ./rancher-<VERSION>.tgz --output-dir . \
  2. --no-hooks \ # prevent files for Helm hooks from being generated
  3. --namespace cattle-system \
  4. --set hostname=<RANCHER.YOURDOMAIN.COM> \
  5. --set certmanager.version=<CERTMANAGER_VERSION> \
  6. --set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
  7. --set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # Set a default private registry to be used in Rancher
  8. --set useBundledSystemChart=true # Use the packaged Rancher system charts

Copy

2.5.8 之前的版本

  1. helm template ./rancher-<VERSION>.tgz --output-dir . \
  2. --name rancher \
  3. --namespace cattle-system \
  4. --set hostname=<RANCHER.YOURDOMAIN.COM> \
  5. --set certmanager.version=<CERTMANAGER_VERSION> \
  6. --set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
  7. --set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # Available as of v2.2.0, set a default private registry to be used in Rancher
  8. --set useBundledSystemChart=true # Available as of v2.3.0, use the packaged Rancher system charts

Copy

选项 2:使用 Kubernetes Secrets 从文件中获取证书

2.5.8 及之后的版本

  1. helm template rancher ./rancher-<VERSION>.tgz --output-dir . \
  2. --no-hooks \ # prevent files for Helm hooks from being generated
  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> \ # Set a default private registry to be used in Rancher
  8. --set useBundledSystemChart=true # Use the packaged Rancher system charts

Copy

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

  1. helm template rancher ./rancher-<VERSION>.tgz --output-dir . \
  2. --no-hooks \ # prevent files for Helm hooks from being generated
  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 privateCA=true \
  8. --set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # Set a default private registry to be used in Rancher
  9. --set useBundledSystemChart=true # Use the packaged Rancher system charts

Copy

2.5.8 之前的版本

  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> \ # Available as of v2.2.0, set a default private registry to be used in Rancher
  8. --set useBundledSystemChart=true # Available as of v2.3.0, use the packaged Rancher system charts

Copy

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

  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 privateCA=true \
  8. --set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # Available as of v2.2.0, set a default private registry to be used in Rancher
  9. --set useBundledSystemChart=true # Available as of v2.3.0, use the packaged Rancher system charts

Copy

应用渲染的模板

将渲染的清单目录复制到可以访问 Rancher 服务器集群的系统中,并应用渲染的模板。

使用 “kubectl “应用渲染的清单。

  1. kubectl -n cattle-system apply -R -f ./rancher

Copy

验证升级是否成功

登录 Rancher,确认升级成功。

如果升级之后出现了网络问题,请参考恢复集群网络

已知问题

下表列出了升级 Rancher 时需要考虑的一些最值得注意的问题。每个 Rancher 版本的已知问题的更完整列表可以在GitHub上的发布说明和Rancher 论坛上找到。

升级场景问题描述
升级到 v2.4.6 或 v2.4.7这些 Rancher 版本存在一个问题,即创建、编辑或克隆 Amazon EC2 节点模板需要kms:ListKeys权限。这一要求在 v2.4.8 中被删除。建议跳过 v2.4.6 或 v2.4.7,直接升级到 v2.4.8+。
升级到 v2.3.0+任何用户供应的集群将在任何编辑后自动更新,因为容忍被添加到用于 Kubernetes 供应的镜像中。
升级到 v2.2.0-v2.2.xRancher 引入了system charts存储库,其中包含监控、日志、警报和全局 DNS 等功能所需的所有目录项。为了能够在 air gap 安装中使用这些功能,您需要在本地镜像system-charts资源库,并配置 Rancher 使用该资源库。请按照说明配置 Rancher 系统 chart
从 v2.0.13 或更早的版本进行升级如果你的集群的证书已经过期,你需要执行这些步骤来轮换证书。
从 v2.0.7 或更早的版本进行升级Rancher 引入了system项目,这是一个自动创建的项目,用于存储 Kubernetes 运行所需的重要命名空间。在升级到 v2.0.7+的过程中,Rancher 希望这些命名空间能够从所有项目中取消分配。在开始升级之前,请检查您的系统命名空间,确保它们未被分配,以防止集群网络问题