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

发布时间 2023-04-21 19:21:16作者: arun_yh
更新时间: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左右即可生效。