跳到主要内容
版本:v2.8

升级和回滚 Kubernetes

升级到最新版本的 Rancher 之后,下游 Kubernetes 集群可以升级为 Rancher 支持的最新的 Kubernetes 版本。

Rancher 使用 RKE(Rancher Kubernetes Engine)来预置和编辑 RKE 集群。有关为 RKE 集群配置升级策略的更多信息,请参阅 RKE 文档。

经过测试的 Kubernetes 版本​

Rancher 在发布新版本之前,会对其与 Kubernetes 的最新次要版本进行测试,以确保兼容性。有关各个 Rancher 版本测试了哪些 Kubernetes 版本的详细信息,请参阅支持维护条款。

升级的工作原理​

RKE v1.1.0 改变了集群升级的方式。

在 RKE 文档中,你将了解编辑或升级 RKE Kubernetes 集群时会发生的情况。

升级的最佳实践​

在升级集群的 Kubernetes 版本时,我们建议你:

  1. 拍一张快照。
  2. 启动 Kubernetes 升级。
  3. 如果升级失败,请将集群恢复到升级前的 Kubernetes 版本。这可以通过选择恢复 etcd 和 Kubernetes 版本选项来实现。在恢复 etcd 快照 之前,这会将你的集群恢复到升级前的 kubernetes 版本。

恢复操作将在不处于健康或 active 状态的集群上运行。

升级 Kubernetes 版本​

先决条件:
  1. 在左上角,单击 ☰ > 集群管理。
  2. 在集群页面中,进入要升级的集群,然后点击 ⋮ > 编辑配置。
  3. 从 Kubernetes 版本 下拉列表中,选择要用于集群的 Kubernetes 版本。
  4. 单击保存。

结果:已开始为集群升级 Kubernetes。

回滚​

你可以将集群恢复到使用先前 Kubernetes 版本的备份。有关详细信息,请参阅:

配置升级策略​

从 RKE v1.1.0 开始,我们提供了额外的升级选项,让你更精细地控制升级过程。如果满足条件和要求,你可以使用这些选项,从而在集群升级期间维持应用的可用性。

你可以在 Rancher UI 中配置升级策略,也可以通过编辑 cluster.yml 来配置策略。编辑 cluster.yml 可以配置更多高级选项。

在 Rancher UI 中配置最大不可用的 Worker 节点​

你可以在 Rancher UI 中配置不可用 worker 节点的最大数量。在集群升级期间,worker 节点将按此大小批量升级。

默认情况下,不可用 worker 节点的最大数量为所有 worker 节点的 10%。此数字可以配置为百分比或整数。当定义为百分比时,批大小会被四舍五入到最近的节点,最小为一个节点。

要更改 worker 节点的默认数量或百分比:

  1. 在左上角,单击 ☰ > 集群管理。
  2. 在集群页面中,进入要升级的集群,然后点击 ⋮ > 编辑配置。
  3. 在升级策略选项卡中,输入 Worker 并发作为固定的数字或百分比。你可以通过将集群中的节点数减去最大不可用节点数来获取该数字。
  4. 单击保存。

结果:集群更新为使用新的升级策略。

使用 Rancher UI 在升级期间启用节点清空​

默认情况下,RKE 会在升级之前封锁每个节点。默认情况下,清空会在升级期间被禁用。如果在集群配置中启用了清空​​,RKE 将在升级之前对节点进行封锁和清空。

要在集群升级期间清空每个节点:

  1. 在左上角,单击 ☰ > 集群管理。
  2. 在集群页面中,进入要启用节点清空的集群,然后点击 ⋮ > 编辑配置。
  3. 单击 ⋮ > 编辑。
  4. 在升级策略选项卡中,转到清空节点字段并单击是。controlplane 和 worker 节点的清空是单独配置的。
  5. 配置如何删除 pod 的选项。有关每个选项的详细信息,请参阅本节。
  6. (可选)配置宽限期。宽限期是给每个 pod 进行清理的超时时间,能让 pod 有机会优雅地退出。Pod 可能需要完成任何未完成的请求、回滚事务或将状态保存到某些外部存储。如果该值为负数,将使用 pod 中指定的默认值。
  7. (可选)配置超时,这是在清空放弃之前应该继续等待的时间。
  8. 单击保存。

结果:集群更新为使用新的升级策略。

备注

目前存在一个已知问题,即使 etcd 和 controlplane 正在被清空, Rancher UI 也不会将它们的状态显示为 drained。

在升级期间维护应用的可用性​

从 RKE v1.1.0 起可用

在 RKE 文档中,你将了解在升级集群时防止应用停机的要求。

在 cluster.yml 中配置升级策略​

你通过编辑 cluster.yml 来获得更高级的升级策略配置选项。

有关详细信息,请参阅 RKE 文档中的配置升级策略。这部分还包括一个用于配置升级策略的示例 cluster.yml。

故障排除​

如果升级后节点没有出现,rke up 命令会出错。

如果不可用节点的数量超过配置的最大值,则不会进行升级。

如果升级停止,你可能需要修复不可用节点或将其从集群中删除,然后才能继续升级。

失败的节点可能处于许多不同的状态:

  • 关机
  • 不可用
  • 用户在升级过程中清空了节点,因此节点上没有 kubelet
  • 升级本身失败

如果在升级过程中达到最大不可用节点数,Rancher 的下游集群将停留在更新中的状态,并且不会继续升级其他 controlplane 节点。它将继续评估不可用的节点集,以防其中一个节点变得可用。如果无法修复节点,则必须移除节点才能继续升级。