ContainerOS是为容器场景垂直优化的阿里云官方操作系统,完全兼容现有的Kubernetes生态。ContainerOS对OS启动速度、镜像拉取时间等方面进行了优化,以提升ACK节点扩容速度和节点扩容体验。本文介绍如何使用ContainerOS实现节点极速扩容。
索引
前提条件
已配置ContainerOS为托管节点池的操作系统。具体操作,请参见使用ContainerOS。
第一次基于ContainerOS创建托管节点池的场景下,已确保Kubernetes集群的如下组件处于最新版本,以便更好地实现节点扩容性能。
创建集群时使用的网络组件:Terway组件、Flannel组件
创建集群时默认的存储插件:csi-plugin
您可以在目标集群信息页面,选择
,查看组件是否为最新版本。如果组件卡片右下方出现升级,请单击升级完成组件升级。
注意事项
为提升启动速度,ContainerOS采用预置镜像的方式减少镜像拉取时间。在使用过程中,请勿手动升级ACK相关组件(Terway或Flannel、csi-plugin),以免出现预置镜像版本与应用版本不一致的情况,导致启动耗时变长。
借助于容器镜像分层的特性,相较于拉取全新镜像,ContainerOS更新镜像的耗时更短,弹性能力更优。但仍然建议您提前完成相关组件升级,以获得更好的节点扩容体验。
ContainerOS扩容优势
优化项 | 说明 |
OS启动速度 | 通过简化OS启动流程,ContainerOS可以有效降低OS启动时间。ContainerOS是云上虚拟机的操作系统,涉及到的硬件驱动较少,可以将必要的内核驱动模块修改为built-in模式。此外,ContainerOS去除initramfs,并显著简化udev规则,使得OS启动速度大幅提升。以ecs.g7.large规格的ECS实例为例,Alibaba Cloud Linux 3首次启动时间为1分钟以上,而ContainerOS仅需2秒左右。 |
镜像拉取耗时 | ECS节点启动完成后,需要拉取部分组件的容器镜像,以在ACK场景下执行一些基础性的工作。通过预置集群管控必备组件的容器镜像,ContainerOS可以减少节点启动过程中因镜像拉取而带来的耗时。 以Terway网络组件为例,节点需等待Terway组件的容器就绪后,才可以转换为就绪状态。网络拉取的长尾效应将带来极大的耗时。为避免此问题,ContainerOS通过预置的方式提前将此组件提前安装在OS内部,使得组件可以直接从本地目录获取,避免网络拉取镜像耗时。 |
节点弹性性能 | 通过与ACK管控链路能力结合,ContainerOS可以有效提高节点弹性性能。 |
下图统计了从空的ACK节点池扩容的端到端的P90耗时,计时从下发扩容请求开始,到90%的节点处于就绪状态结束。相较于CentOS和Alibaba Cloud Linux 2自定义镜像方案,ContainerOS性能优势明显。具体数据如下图所示。
本示例中提供的数据仅为理论值,实际数据可能会因产品功能优化略有偏差,请以您的操作环境为准。
操作步骤
如果您有同时启动大量节点的业务场景,例如同时扩容超过100个ECS节点,您可以手动配置Kube Controller Manager、Kube Scheduler、APIServer三个优化项以提升节点扩容速度。
部分API默认支持的最大连接数为100,因此同时启动少于100个ECS节点时无需额外配置。
Kube Controller Manager限流调整
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在组件管理页面的核心组件页签,定位到Kube Controller Manager,然后单击卡片右下方的配置。
在参数配置对话框,配置kubeAPIQPS为800、kubeAPIBurst为1000(其余选项按需配置),然后单击确定。
说明基于测试数据,推荐您按照上方数值进行配置。如有其他需求,您也可以按照自身业务场景灵活配置。
Kube Scheduler限流调整
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在组件管理页面的核心组件页签,定位到Kube Scheduler,然后单击卡片右下方的配置。
在参数配置对话框,配置connectionQPS为800、connectionBurst为1000(其余选项按需配置),然后单击确定。
说明基于测试数据,推荐您按照上方数值进行配置。如有其他需求,您也可以按照自身业务场景灵活配置。
APIServer数量调整
集群内APIServer的副本数量根据负载进行弹性伸缩。如果同一时间弹出节点较多,APIServer会进行扩容,增加节点Ready的耗时。您可以提前提交工单,调整APIServer的副本数量,优化扩容效果。