本文介绍如何在不影响数据盘的情况下进行节点池升级。升级节点池的过程包含前置检查、执行升级。您可以对Kubelet、OS镜像和容器运行时按需组合升级。

使用须知

替盘升级时会对节点进行排水,排水时干扰预算机制PDB(Pod Disruption Budgets)和终止宽限期为30分钟。届时即使节点上运行的Pod无法调度到新的节点上,节点依然会启动升级。关于干扰预算机制,请参见干扰预算机制

功能说明

节点池升级功能支持升级以下三个组件,可以按需组合选择。
组件名称升级说明升级操作注意事项
Kubelet如果Kubelet发布了新的版本,您可以将该节点池内节点的Kubelet升级到与控制平面相同的版本。可用的升级版本以当前集群的管控版本为准。
  • 仅勾选Kubelet 升级:采取原地升级的方式升级Kubelet组件。
  • 同时勾选OS 镜像升级:以OS 镜像升级的方式为准。
  • 勾选通过替换节点系统盘的方式升级节点池:采取替盘升级的方式升级Kubelet组件。
升级Kubelet版本的注意事项,请参见集群升级
OS镜像如果OS镜像发布了新的版本,您可以升级节点池内节点到新版本的OS镜像。勾选OS 镜像升级选项,采取替盘重置节点的方式升级节点池节点。支持勾选升级前为节点建立快照选项,为节点创建快照。OS镜像升级会通过替换节点系统盘的方式分批次升级节点,请不要在系统盘中保存重要数据或者提前做好备份工作,数据盘在升级过程中则不受影响。
容器运行时如果容器运行时发布了新的版本,您可以升级节点池内节点到新版本的容器运行时。
勾选运行时升级选项。
  • 如果从Docker升级到Containerd,采用替盘重置节点的方式升级节点池节点。
  • 如果从Containerd升级到Containerd其他版本,默认采取原地升级的方式。支持勾选通过替换节点系统盘的方式升级节点池,采取替盘升级。

支持勾选升级前为节点建立快照选项,为节点创建快照。

  • 以替换节点系统盘的方式执行节点运行时升级时,请不要在系统盘中保存重要数据或者提前做好备份工作,数据盘在升级过程中则不受影响。
  • 运行时升级过程中可能造成Pod Prober、Lifecycle Hook失败,也可能会出现Pod原地重启情况。
说明
  • 节点池升级功能仅支持有节点的节点池。
  • 节点池升级前会自动执行升级前置检查,提前暴露可能影响升级的风险。
  • 替盘升级时会使用节点池的配置渲染节点组件参数,使节点组件配置与节点池配置保持一致。

操作步骤

  1. 登录容器服务管理控制台,在左侧导航栏选择集群
  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池
  3. 节点池列表页面中,选择目标节点池,选择更多>升级
  4. 选择需要升级的操作对象,单击前置检查
    说明 如果前置检查执行失败或者存在警告项,请参见异常检查项修复方案或通过单击查看详情进入检查报告页面进行排查。
  5. 选择需要升级的操作对象,单击开始升级。您可以通过设置批量升级策略的参数定义每批次最大并行升级的节点数。
    节点池升级

相关操作

升级时,在事件轮转区域,您可以进行如下操作:

  • 暂停节点池升级:在升级到某个阶段您需要暂停升级时,您可以通过单击暂停,暂停节点池的升级进程。
  • 继续节点池升级:在成功暂停之后,您可以通过单击继续,恢复节点池的升级进程。
  • 取消节点池升级:在升级到某个阶段您需要取消升级时,您可以通过单击取消,取消节点池的升级进程。
节点池升级暂停

集群暂停状态为节点池升级的中间状态,建议您不要在此时对集群进行操作,并尽快完成升级过程。处于中间状态的集群会在7日之后关闭升级过程,同时清理一切升级相关的事件和日志信息。

常见问题

如何基于快照还原数据?

节点池升级时支持为节点创建快照,该快照会默认保持30天,您也可以手动提前清理快照。在极端场景下,例如发现升级后数据丢失,您可以通过下面的方式对数据进行还原。
  • 如果是原地升级,比如只升级了Kubelet的版本,您可以通过直接回滚快照的方式还原数据,请参见使用快照回滚云盘
  • 如果是替盘升级,比如升级了OS镜像或容器运行时,您可以通过快照创建云盘的方式还原数据,请参见使用快照创建云盘

节点池升级后支持版本回退吗?

目前,Kubelet和容器运行时在版本升级后不支持版本回退。OS镜像在升级后支持版本回退,前提只要原镜像仍旧为创建节点池所支持,就可以替换为原镜像。

相关文档