本操作会通过替换节点系统盘(替盘升级)的方式分批次更新操作系统。请勿在系统盘中保存重要数据,或提前做好备份工作,数据盘在升级过程中则不受影响。请在业务低峰期进行。
通过替盘方式升级节点时,ACK会进行节点排水操作,遵循Pod Disruption Budget(PDB)的前提下将节点上的Pod驱逐至其他可用节点。为确保服务高可用性,建议您采用多副本部署策略,将工作负载分散在多个节点上,同时为关键业务配置PDB,控制同时中断的Pod数量。
节点排水的默认超时时间为30分钟。如果在超时时间内未能完成Pod迁移,ACK将终止本次升级以确保业务稳定性。
通过替盘方式升级节点时,ACK将按照节点池当前的配置(例如节点登录方式、标签、污点、操作系统镜像、运行时版本)重新初始化节点。正常情况下,更新节点池配置需通过编辑节点池来实现。如您通过其他方式对节点进行了更改,升级时这些更改会被覆盖。
如果节点中的Pod引用了HostPath,且该HostPath指向系统盘,替盘升级后HostPath目录中数据会丢失。
如果您对集群有过配置更改,例如打开了SWAP分区、曾通过黑屏操作修改kubelet配置或运行时配置等,集群升级过程有可能失败,或自定义配置可能会被覆盖。
ACK部分操作系统默认使用cgroup v2。关于cgroup v2的注意事项,请参见cgroup版本说明。
如果您的节点为游离节点,即未被节点池管理的Worker节点,需参见迁移游离节点至节点池完成迁移。
在ContainerOS 3.4.0中已将系统盘调整为全只读模式,需绑定一块数据盘以保证系统正常启动。因此,升级至3.4及以上版本(其他版本不受影响)时,需参见以下流程。
展开查看具体流程
请根据当前节点池的数据盘挂载情况,选择对应的升级方案:
挂载了单块数据盘:系统可正常启动,可参见下方的操作步骤完成升级。
挂载了多块数据盘:需新建节点池轮转迁移,即新建一个节点池,选择ContainerOS 3.4或以上版本,挂载 1 块数据盘,并扩容相应数量的节点。通过设置老节点池禁止调度或者更新应用负载指定节点池调度(例如Label),逐步将应用迁移至新节点池,最后下线旧节点池。
未挂载数据盘:
保留当前节点池:更新节点池配置,挂载 1 块数据盘,并扩容新节点。待新节点正常运行后,逐步将旧节点排水和移除。
新建节点池轮转迁移,流程同“挂载了多块数据盘”。
关于如何创建和编辑节点池,请参见创建和管理节点池;关于如何将节点设置为不可调度,请参见节点排水和调度状态;关于如何移除节点,请参见移除节点。如果您的节点池通过指定版本号自定义节点GPU驱动版本或通过OSS URL自定义节点GPU驱动,在进行操作系统镜像升级时,可能存在操作系统与驱动版本不兼容情况。请参见ACK支持的NVIDIA驱动版本列表选择最新驱动。