升级和回滚 Kubernetes
Rancher 使用 RKE(Rancher Kubernetes Engine)来预置和编辑 RKE 集群。有关为 RKE 集群配置升级策略的更多信息,请参阅 RKE 文档。
Rancher 在发布新版本之前,会对其与 Kubernetes 的最新次要版本进行测试,以确保兼容性。有关各个 Rancher 版本测试了哪些 Kubernetes 版本的详细信息,请参阅支持维护条款。
升级的工作原理
RKE v1.1.0 改变了集群升级的方式。
在 RKE 文档中,你将了解编辑或升级 RKE Kubernetes 集群时会发生的情况。
在升级集群的 Kubernetes 版本时,我们建议你:
- 拍一张快照。
- 如果升级失败,请将集群恢复到升级前的 Kubernetes 版本。这可以通过选择恢复 etcd 和 Kubernetes 版本选项来实现。在恢复 etcd 快照 之前,这会将你的集群恢复到升级前的 kubernetes 版本。
恢复操作将在不处于健康或 active 状态的集群上运行。
升级 Kubernetes 版本
先决条件:
- 以下选项适用于 和注册的 K3s Kubernetes 集群。
- 以下选项也适用于导入且已注册的 RKE2 集群。如果你从外部云平台导入集群但不注册,你将无法在 Rancher 中升级 Kubernetes 版本。
- 在升级 Kubernetes 之前,先。
- 在左上角,单击 ☰ > 集群管理。
- 在集群页面中,进入要升级的集群,然后点击 ⋮ > 编辑配置。
- 从 Kubernetes 版本 下拉列表中,选择要用于集群的 Kubernetes 版本。
- 单击保存。
结果:已开始为集群升级 Kubernetes。
你可以将集群恢复到使用先前 Kubernetes 版本的备份。有关详细信息,请参阅:
配置升级策略
你可以在 Rancher UI 中配置升级策略,也可以通过编辑 来配置策略。编辑 可以配置更多高级选项。
你可以在 Rancher UI 中配置不可用 worker 节点的最大数量。在集群升级期间,worker 节点将按此大小批量升级。
默认情况下,不可用 worker 节点的最大数量为所有 worker 节点的 10%。此数字可以配置为百分比或整数。当定义为百分比时,批大小会被四舍五入到最近的节点,最小为一个节点。
要更改 worker 节点的默认数量或百分比:
- 在左上角,单击 ☰ > 集群管理。
- 在集群页面中,进入要升级的集群,然后点击 ⋮ > 编辑配置。
- 单击保存。
结果:集群更新为使用新的升级策略。
默认情况下,RKE 会在升级之前封锁每个节点。默认情况下,会在升级期间被禁用。如果在集群配置中启用了清空,RKE 将在升级之前对节点进行封锁和清空。
要在集群升级期间清空每个节点:
- 在左上角,单击 ☰ > 集群管理。
- 在集群页面中,进入要启用节点清空的集群,然后点击 ⋮ > 编辑配置。
- 单击 ⋮ > 编辑。
- 在升级策略选项卡中,转到清空节点字段并单击是。controlplane 和 worker 节点的清空是单独配置的。
- 配置如何删除 pod 的选项。有关每个选项的详细信息,请参阅本节。
- (可选)配置宽限期。宽限期是给每个 pod 进行清理的超时时间,能让 pod 有机会优雅地退出。Pod 可能需要完成任何未完成的请求、回滚事务或将状态保存到某些外部存储。如果该值为负数,将使用 pod 中指定的默认值。
- (可选)配置超时,这是在清空放弃之前应该继续等待的时间。
- 单击保存。
结果:集群更新为使用新的升级策略。
备注
从 RKE v1.1.0 起可用
在 RKE 文档中,你将了解在升级集群时防止应用停机的要求。
你通过编辑 来获得更高级的升级策略配置选项。
有关详细信息,请参阅 RKE 文档中的配置升级策略。这部分还包括一个用于配置升级策略的示例 。
如果升级后节点没有出现, 命令会出错。
如果不可用节点的数量超过配置的最大值,则不会进行升级。
如果升级停止,你可能需要修复不可用节点或将其从集群中删除,然后才能继续升级。
失败的节点可能处于许多不同的状态:
- 关机
- 不可用
- 用户在升级过程中清空了节点,因此节点上没有 kubelet
如果在升级过程中达到最大不可用节点数,Rancher 的下游集群将停留在更新中的状态,并且不会继续升级其他 controlplane 节点。它将继续评估不可用的节点集,以防其中一个节点变得可用。如果无法修复节点,则必须移除节点才能继续升级。