升级
本文介绍如何升级使用 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。
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 仓库
更新本地 Helm 仓库缓存。
helm repo update
获取你用来安装 Rancher 的仓库名称。
关于仓库及其区别,请参见 Helm Chart 仓库。
- Latest:建议用于试用最新功能
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
- Stable:建议用于生产环境
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
- Alpha:即将发布的实验性预览。注意:不支持升级到 Alpha 版、从 Alpha 版升级或在 Alpha 版之间升级。
helm repo add rancher-alpha https://releases.rancher.com/server-charts/alpha
helm repo list
NAME URL
stable https://charts.helm.sh/stable
rancher-<CHART_REPO> https://releases.rancher.com/server-charts/<CHART_REPO>备注如果你想切换到不同的 Helm Chart 仓库,请按照切换仓库步骤进行操作。如果你要切换仓库,请先再次列出仓库,再继续执行步骤 3,以确保添加了正确的仓库。
- Latest:建议用于试用最新功能
从 Helm Chart 仓库获取最新的 Chart 来安装 Rancher。
该命令将提取最新的 Chart,并将其作为
.tgz
文件保存在当前目录中。helm fetch rancher-<CHART_REPO>/rancher
你可以通过
--version=
标记,来指定要升级的目标 Chart 版本。例如:helm fetch rancher-<CHART_REPO>/rancher --version=2.6.8
3. 升级 Rancher
本节介绍了如何使用 Helm 升级 Rancher 的一般(互联网连接)或离线安装。
如果你在离线环境中安装 Rancher,请跳过本页的其余部分,按照本页上的说明渲染 Helm 模板。
从当前安装的 Rancher Helm Chart 中获取用 --set
传递的值。
helm get values rancher -n cattle-system
hostname: rancher.my.org
这个命令会列出更多的值。此处展示的只是其中一个值的例子。
Deployment 的名称可能会有所不同。例如,如果你通过 AWS Marketplace 部署 Rancher,则 Deployment 的名称为“rancher-stable”。 因此:
helm get values rancher-stable -n cattle-system
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 及更高版本来说,这不是必需的,但你仍然可以手动设置该选项。
helm upgrade rancher rancher-<CHART_REPO>/rancher \
--namespace cattle-system \
--set hostname=rancher.my.org
以上是一个例子,可能有更多上一步的值需要追加。
如果你通过 AWS Marketplace 部署 Rancher,则 Deployment 的名称为“rancher-stable”。 因此:
helm upgrade rancher-stable rancher-<CHART_REPO>/rancher \
--namespace cattle-system \
--set hostname=rancher.my.org
另外,你也可以将当前的值导出到一个文件中,并在升级时引用该文件。例如,如果你只需要改变 Rancher 的版本:
将当前值导出到文件:
helm get values rancher -n cattle-system -o yaml > values.yaml
只更新 Rancher 版本:
对于 Kubernetes v1.25 或更高版本,使用 Rancher v2.7.2-v2.7.4 时,将
global.cattle.psp.enabled
设置为false
。对于 Rancher v2.7.5 及更高版本来说,这不是必需的,但你仍然可以手动设置该选项。helm upgrade rancher rancher-<CHART_REPO>/rancher \
--namespace cattle-system \
-f values.yaml \
--version=2.6.8
4. 验证升级
登录 Rancher 以确认升级成功。
升级后出现网络问题?
请参见恢复集群网络。
已知升级问题
你可以在 GitHub 发布说明以及 Rancher 论坛中找到每个 Rancher 版本的已知问题。