在AI、大数据等需要频繁扩容的业务场景中,新节点加入集群时,拉取组件和业务镜像会消耗大量时间。您可以将组件、镜像等预先缓存至数据盘快照,使新节点从本地磁盘直接加载数据,从而显著提升节点就绪速度和扩容效率。本文介绍如何通过镜像快照盘加速 ACK Auto Mode 节点启动。
工作原理
默认扩容流程中,从创建节点到业务应用在其上成功运行,耗时主要集中在以下受网络影响的阶段:
系统镜像拉取:容器运行时(containerd)需要拉取系统Pod所需的镜像,如Terway、kube-proxy等。
业务镜像拉取:节点就绪后,业务Pod被调度到该节点,容器运行时需要拉取业务应用的容器镜像。
当智能托管节点池使用数据盘快照扩容时,上述“网络拉取”过程会转为“本地加载”:
加速节点就绪:初始化脚本会优先检查本地路径。由于快照预置了系统镜像,节点可跳过下载和拉取过程,尽快进入就绪状态。
加速业务启动:由于快照中已预先缓存业务镜像,当Pod被调度到新节点时,容器运行时可在本地找到所需镜像,实现业务的快速启动。
前提条件
步骤一:准备用于创建快照的节点
准备用于制作快照的ECS实例。
登录容器服务控制台,从左侧导航栏进入 页面,单击创建节点池。
进入创建节点池页面后,调整如下核心配置。在此过程中,ACK会自动将Terway、kube-proxy等系统组件镜像保存至数据盘。
托管配置:智能托管
最小实例数:设置为1。
挂载数据盘:至少添加一块数据盘。节点初始化过程中,将自动格式化最后一块数据盘,用于存储容器运行时数据。
详细配置项说明,请参见创建并管理智能托管节点池。
等待节点就绪,所有系统Pod启动完成。
在该节点上部署代表性业务应用,等待业务Pod完成镜像拉取并正常运行,使业务镜像缓存至数据盘。
步骤二:创建数据盘快照
将数据盘创建为快照,供后续节点池扩容时复用。
在节点池页面的名称列,单击刚创建的节点池,进入节点管理页面。
单击目标实例ID(例如
i-bp1hmj0o9rp2yuz*****),进入实例详情页,单击块存储页签。找到作为容器运行时目录的数据盘,在其操作列,单击创建快照,按照页面提示完成快照的配置。
关于快照的配置说明,请参见手动创建单个快照。
步骤三:使用快照扩容节点并验证结果
回到创建节点池页面,找到先前创建的智能托管节点池,在操作列单击编辑,修改核心配置如下:
挂载数据盘:选择使用数据盘快照,按照页面提示选择此前创建的快照。
扩容节点池,观察DaemonSet相关Pod。当Pod状态显示
already present时,说明镜像已通过快照盘从本地直接加载,无需从网络拉取。
以ecs.r8i.xlarge规格为例,使用快照扩容节点后,节点Ready时间由30秒缩短到5秒。
常见问题
集群升级版本后,原来的快照还能用吗?
不推荐继续使用。快照中缓存的kubelet版本可能与新集群版本不兼容,会导致节点无法正常注册。集群升级后,建议重新制作数据盘快照。