003CCE Turbo配置容器网卡动态预热

Posted arun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了003CCE Turbo配置容器网卡动态预热相关的知识,希望对你有一定的参考价值。

更新时间:2023-04-13 GMT+08:00

在云原生网络2.0下,每个Pod都会分配(申请并绑定)一张弹性网卡或辅助弹性网卡(统一称为:容器网卡)。由于容器场景下Pod的极速弹性与慢速的容器网卡创建绑定的差异,严重影响了大规模批创场景下的容器启动速度。因此,云原生2.0网络提供了容器网卡动态预热的能力,在尽可能提高IP的资源利用率的前提下,尽可能加快Pod的启动速度。

约束与限制

  • CCE Turbo的1.19.16-r4、1.21.7-r0、1.23.5-r0、1.25.1-r0及以上版本支持用户配置容器网卡动态预热;支持集群级别的全局配置以及节点池级别的差异化配置,暂不支持非节点池下的节点差异化配置。
  • CCE Turbo的1.19.16-r2、1.21.5-r0、1.23.3-r0到1.19.16-r4、1.21.7-r0、1.23.5-r0之间的集群版本只支持节点最少绑定容器网卡数(nic-minimum-target)和节点动态预热容器网卡数(nic-warm-target)两个参数配置,且不支持节点池级别的差异化配置。
  • 请通过console页面或API修改容器网卡动态预热参数配置,请勿直接后台修改节点annotations上对应的容器网卡动态预热参数,集群升级后,后台直接修改的annotations会被覆盖为原始的值。
  • CCE Turbo的1.19.16-r4、1.21.7-r0、1.23.5-r0、1.25.1-r0之前的集群版本支持用户配置容器网卡高低水位预热,如果用户配置了全局的容器网卡高低水位预热。集群升级后,原始的高低水位预热参数配置会自动转换为容器网卡动态预热参数配置;但如果用户要通过console页面进一步修改容器网卡动态预热参数,需要先通过集群的配置管理console页面把原始的高低水位预热配置修改为(0:0)。
  • CCE Turbo的节点池BMS裸机场景下,1.19.16-r4、1.21.7-r0、1.23.5-r0、1.25.1-r0之前的集群版本默认采用的是容器网卡高低水位预热(默认值0.3:0.6)。集群升级后,原始的高低水位预热依然生效,建议客户通过节点池的配置管理console页面把高低水位预热参数配置转换为容器网卡动态预热参数配置并一并删除高低水位预热配置,以启用最新的容器网卡动态预热的能力。
  • CCE Turbo的非节点池下BMS裸机场景下,1.19.16-r4、1.21.7-r0、1.23.5-r0、1.25.1-r0之前的集群版本默认采用的是容器网卡高低水位预热(默认值0.3:0.6)。集群升级后,原始的高低水位预热依然生效,如果用户想启用集群级别的全局配置,客户需要后台删除该节点的annotation(node.yangtse.io/eni-warm-policy),以启用集群级别配置的容器网卡动态预热的能力。

原理说明

CCE Turbo的容器网卡动态预热提供了4个相关的容器网卡动态预热参数,您可以根据业务规划,合理设置集群的配置管理或节点池的配置管理中的容器网卡动态预热参数(其中节点池的容器网卡动态预热配置优先级高于集群的容器网卡动态预热配置)。

表1 容器网卡动态预热参数

容器网卡动态预热参数

默认值

参数说明

配置建议

节点最少绑定容器网卡数(nic-minimum-target)

10

保障节点最少有多少张容器网卡绑定在节点上,支持数值跟百分比两种配置方式。

  • 数值配置:参数值需为正整数。例如10,表示节点最少有10张容器网卡绑定在节点上。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。
  • 百分比配置:参数值范围为1%-100%。例如10%,如果节点容器网卡配额128,表示节点最少有12张(向下取整)容器网卡绑定在节点上。

建议nic-minimum-target与nic-maximum-target为同类型的配置方式(同采用数值配置或同采用百分比配置)。

建议配置为大部分节点平时日常运行的Pod数。

节点预热容器网卡上限检查值(nic-maximum-target)

0

当节点绑定的容器网卡数超过节点预热容器网卡上限检查值(nic-maximum-target),不再主动预热容器网卡。

当该参数大于等于节点最少绑定容器网卡数(nic-minimum-target)时,则开启预热容器网卡上限值检查;反之,则关闭预热容器网卡上限值检查。支持数值跟百分比两种配置方式。

  • 数值配置:参数值需为正整数。例如0,表示关闭预热容器网卡上限值检查。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。
  • 百分比配置:参数值范围为1%-100%。例如50%,如果节点容器网卡配额128,表示节点预热容器网卡上限检查值64(向下取整)。

建议nic-minimum-target与nic-maximum-target为同类型的配置方式(同采用数值配置或同采用百分比配置)。

建议配置为大部分节点平时最多运行的Pod数。

节点动态预热容器网卡数(nic-warm-target)

2

当Pod使用完节点最少绑定容器网卡数(nic-minimum-target)后,会始终额外预热多少张容器网卡,只支持数值配置。

当 节点动态预热容器网卡数(nic-warm-target) + 节点当前绑定的容器网卡数 大于 节点预热容器网卡上限检查值(nic-maximum-target) 时,只会预热nic-maximum-target与节点当前绑定的容器网卡数的差值。

建议配置为大部分节点日常10s内会瞬时弹性扩容的Pod数。

节点预热容器网卡回收阈值(nic-max-above-warm-target)

2

只有当 节点上空闲的容器网卡数 - 节点动态预热容器网卡数(nic-warm-target) 大于此阈值 时,才会触发预热容器网卡的解绑回收。只支持数值配置。

  • 调大此值会减慢空闲容器网卡的回收,加快Pod的启动速度,但会降低IP地址的利用率,特别是在IP地址紧张的场景,请谨慎调大。
  • 调小此值会加快空闲容器网卡的回收,提高IP地址的利用率,但在瞬时大量Pod激增的场景,部分Pod启动会稍微变慢。

建议配置为大部分节点日常在分钟级时间范围内会频繁弹性扩容缩容的Pod数 - 大部分节点日常10s内会瞬时弹性扩容的Pod数。

配置示例

级别

用户业务场景

配置示例

集群级别

集群中所有节点采用c7.4xlarge.2机型(辅助弹性网卡配额128)

集群下大部分节点平时日常运行20个Pod左右

集群下大部分节点最多运行60个Pod

集群下大部分节点日常10s内会瞬时弹性扩容10个Pod

集群下大部分节点日常在分钟级时间范围内会频繁弹性扩容缩容15个Pod

集群级别的全局配置:

  • nic-minimum-target: 20 或 16%
  • nic-maximum-target: 60 或 47%
  • nic-warm-target: 10
  • nic-max-above-warm-target: 5

节点池级别

集群中用户新创建了一个使用大规格机型c7.8xlarge.2的节点池(辅助弹性网卡配额256)

节点池下大部分节点平时日常运行100个Pod左右

节点池下大部分节点最多运行128个Pod

节点池下大部分节点日常在10s内会瞬时弹性扩容10个Pod

节点池下大部分节点日常在分钟级时间范围内会频繁弹性扩容缩容12个Pod

节点池级别的差异化配置:

  • nic-minimum-target: 100 或 40%
  • nic-maximum-target: 120 或 50%
  • nic-warm-target: 10
  • nic-max-above-warm-target: 2
说明:

使用HostNetwork的Pod不计入Pod数中。

集群级别的全局配置

  1. 登录CCE控制台,在左侧导航栏中选择“集群管理”。
  2. 单击集群后的

     

    图1 配置管理

     

  3. 在侧边栏滑出的“配置管理”窗口中,选择网络组件配置,参数值请参见配置示例

     

  4. 配置完后单击“确定”,等待10s左右即可生效。

节点池级别的差异化配置

  1. 登录CCE控制台。
  2. 进入集群,在左侧选择“节点管理”,在右侧选择“节点池”页签。
  3. 单击节点池名称后的“更多 > 配置管理”。
  4. 在侧边栏滑出的“配置管理”窗口中,选择网络组件配置,参数值请参见配置示例

     

  5. 配置完后单击“确定”,等待10s左右即可生效。

解读革命性容器集群CCE Turbo:计算网络调度全方位加速

摘要:CCE Turbo是华为云推出的一款革命性容器集群。

5月31日,在华为云Techwave云基础设施技术专题日上,华为云容器批量计算首席架构师马达对CCE Turbo的技术内幕进行了深度解读,CCE Turbo是华为云推出的一款革命性容器集群,在华为开发者大会(Cloud)2021上正式发布,通过计算、网络、调度的全方位加速,为企业应用创新提速。

软硬协同,为计算加速

为了解决集群服务器性能无法完全发挥的问题,华为云基于擎天架构的软硬协同能力,推出了业界独家的容器卸载技术,并应用到CCE Turbo,让集群资源100%用于业务处理。同时,通过对引擎进行瘦身、优化内部执行逻辑及核心模块重写,如基于Rust语言重写了 shimv2 和 agent,减少了进程数量、通过代码优化减少内存消耗,提升容器启动性能和Cgroup管理能力,同时结合擎天卡的高能性处理能力,将集群整体性能提升40%,资源使用成本节省30%。

Trunkport,为网络加速

网络连通速度、转发效率一直是业务应对大流量时所面临的挑战,华为云基于云原生2.0“IN Cloud”理念,打造了全新的云原生网络,利用Trunkport技术为网络全面加速。

Trunkport技术使得容器可直通VPC网络,将原有的“容器网络 + 虚拟机网络“的两层模型变为一层,网络资源连通时间缩短一半,有效支撑业务30秒内扩容1000容器实例,轻松应对流量浪涌,同时也将网络通信时延降低了40%,让应用访问更流畅;

CCE Turbo还率先在业界实现了为容器配置独立安全组和QoS,相比目前其它厂商容器与集群节点共享安全组的方案,不仅增强了容器通信安全性,还提升了大流量的转发效率。此外,CCE Turbo还基于CRD机制扩展了Kubernetes对象,用于实现各种复杂安全隔离诉求,并进一步简化容器安全组的配置。

Volcano,调度加速

企业核心业务全面云原生化后,如何提升调度效率、提升集群利用率,是困扰很多企业的难题。CCE Turbo基于Volcano实现了三大核心调度能力:

  • 在线离线混合调度:CCE Turbo将企业离线和在线业务在同一集群中混合部署,相比之前不同业务分集群部署,极大的降低了运维工作量,同时,根据在线、离线业务的不同需求进行灵活调度,如:当在线业务访问量低时,CCE Turbo可将空闲资源用来运行离线计算业务(如离线分析、模型训练等),而当业务高峰来临前,会自动释放离线业务占用的资源,保障在线业务对资源的诉求;
  • 应用感知智能调度:为了进一步提升混合部署后的集群利用率,通过感知应用模型(如web类应用、Tensorflow的PS和worker、Spark的Driver和executor等),针对不同应用模型对资源的诉求、应用负载情况,通过资源按需抢占、分时复用等机制,减少集群资源的空闲比例;并通过感知任务间拓扑结构,将各任务调度到最佳节点上,减少因网络瓶颈、数据跨节点传输等带来的时间损耗,进而可以将集群利用率提升2倍;
  • 大规模分布式调度:为了保障业务混合部署后,海量任务并发调度的难题,CCE Turbo推出了分布式架构的任务调度器,提升吞吐能力,并通过调度算法剪枝,减少寻址深度和广度,同时结合调度决策复用机制,可将调度寻址时间缩短10倍以上,实现每秒1万容器的大规模并发调度。

CCE Turbo为VIPKID音视频业务全面提速

VIPKID作为CCE Turbo的早期用户,已充分享受到CCE Turbo三大加速为业务带来的价值,本次专题日上,VIPKID后端研发高级专家慈轶恒在分享中表示,“使用CCE Turbo后,VIPKID音视频业务在各方面的指标都得到了不同程度的优化,同等规格集群性能较之前提升了40%,业务交互时延降低了40%,使得用户体验进一步提升,整个业务成本节省43%左右,很好的控制了业务高速增长期的IT成本增长速度。”

作为最早一批投身云原生技术的厂商,华为云是云原生计算基金会(CNCF)在亚洲唯一的初创成员,社区代码贡献和Maintainer席位数均位居亚洲第一,并贡献首个云原生智能边缘项目KubeEdge和批量计算项目Volcano,在华为开发者大会 2021(Cloud)上,华为云还联合多家企业开源了云原生多云容器编排项目 Karmada,持续引领云原生技术发展方向;在产品创新方面,华为云自2016年起相继在业内首发一系列云原生产品与解决方案,在Forrester的产品能力评估中,连续两年获得满分,且容器软件市场排名已位居中国第一;在繁荣产业方面,华为云不仅联合中国信通院发布了云原生2.0白皮书,全面诠释云原生2.0核心理念,还与CNCF、中国信通院联合构建了全球化的云原生交流平台——创原会,华为云将联合各行业云原生精英一起,共同探索前沿云原生技术、共享产业落地实践,用云原生技术全面赋能企业数字化转型。

 

点击关注,第一时间了解华为云新鲜技术~

以上是关于003CCE Turbo配置容器网卡动态预热的主要内容,如果未能解决你的问题,请参考以下文章

解读革命性容器集群CCE Turbo:计算网络调度全方位加速

云图说丨手把手教你为容器应用配置弹性伸缩策略

Docker-基础003-容器数据卷

基于华为CCE环境下的Tomcat性能调优实践

ChatGpt聊天API使用

003-spring结合java类调用quartz