出口网络带宽保障
出口网络带宽保障通过设置网络优先级实现,具有如下优点:
- 平衡在线业务与离线业务对出口网络带宽的使用,保证在线业务有足够的网络带宽,在线业务触发阈值时,压缩离线业务带宽使用。
- 在线业务所占用的网络资源较少时,离线业务可使用更多带宽;在线业务所占用的网络资源较多时,降低离线业务资源占用量,从而优先保障在线业务的网络带宽。
约束与限制
使用出口网络带宽保障特性需满足以下要求:
- 仅支持Huawei Cloud EulerOS 2.0操作系统的节点。
- 仅支持CCE Turbo集群,且集群版本为v1.23及以上。
- 集群中需要安装Volcano 1.9.0及以上版本的插件,且开启混合部署开关(即将插件高级配置中的colocation_enable设置为true)。
- 开启、修改或者关闭出口网络带宽保障特性,均需要保证Volcano插件处于正常运行状态。
- 对于安装Volcano插件之前节点上已运行的Pod,开启网络带宽保障后需要手动重启Pod才可生效。
- 卸载Volcano插件或关闭混合部署开关(即将插件高级配置中的colocation_enable设置为false)不会影响节点上已有的出口网络带宽保障设置。如需关闭该特性,请参见关闭出口网络带宽保障。
- 使用带宽限速有可能造成协议栈缓存积压。对于UDP等无反压机制的协议场景,可能出现有丢包、ENOBUFS等问题。
- 使用带宽限速会增加离线业务得不到带宽的风险,极端场景可能会出现业务因为带宽不足异常、Pod健康检查失败等问题。
- 出口网络带宽保障的例外场景:
- 当混部的在线Pod或者是离线Pod使用了网络带宽限速功能时,网络带宽限速功能的优先级会高于当前功能。
- 当Pod使用节点网络(hostNetwork)时,使用出口网络保障功能无法生效。
操作步骤
下面介绍如何开启或关闭出口网络带宽保障。
- 登录CCE控制台,单击集群名称进入集群。
- 在左侧导航栏中选择“节点管理”,选择“节点池”页签,创建或更新节点池时在“高级配置”中添加以下标签。
- volcano.sh/oversubscription=true
- volcano.sh/colocation=true
图1 节点标签设置
- 在左侧导航栏中选择“插件中心”,单击Volcano插件下的“安装”,并在“参数配置”中开启“在离线业务混部”。具体安装步骤请参见Volcano调度器。
如已安装Volcano插件,可单击“编辑”查看或修改配置。
图2 开启在离线业务混部
CPU Burst开关由打开到关闭时,已经设置CPU Burst的存量Pod不会关闭CPU Burst功能,关闭CPU Burst仅针对新建的Pod生效。
- (可选)调整出口网络带宽保障参数。
确认Volcano插件处于正常运行状态后,可执行以下命令,编辑kube-system命名空间下名称为volcano-agent-configuration的configmap参数,将enable参数设置为true即可开启出口网络带宽保障(默认开启),同时可调整出口网络带宽保障参数。
kubectl edit configmap -nkube-system volcano-agent-configuration
示例如下:
... data: colocation-config: | { "globalConfig":{ "cpuBurstConfig":{ "enable":true }, "networkQosConfig":{ "enable":true, "onlineBandwidthWatermarkPercent":80, "offlineLowBandwidthPercent":10, "offlineHighBandwidthPercent":40 }, ...
参数编辑后会对集群中所有Huawei Cloud EulerOS 2.0操作系统的节点生效。
表1 networkQosConfig参数说明 名称
说明
默认值
配置范围
enable
是否开启出口网络带宽保障特性。
true
true或false
onlineBandwidthWatermarkPercent
在线业务总带宽水线值与机型的基准带宽的比值,即:
在线业务总带宽水线值 = 节点机型基准带宽 * onlineBandwidthWatermarkPercent/100
80
配置有效值范围:1-1000
说明:由于实际的网络环境可能优于基准带宽,处于在基准带宽和最大带宽之间,因此配置范围支持大于100。
offlineLowBandwidthPercent
在线业务带宽使用超过水线时,离线业务最高总带宽占用量在机型基准带宽中的占比。
如果同节点的在线业务总带宽的超过节点机型基准带宽 * onlineBandwidthWatermarkPercent/100 ,则同节点的离线业务总带宽的不超过节点机型基准带宽 * offlineLowBandwidthPercent/100
10
offlineHighBandwidthPercent
在线业务带宽使用未超过水线时,离线业务最高总带宽占用量在机型基准带宽中的占比。
如果同节点的在线业务总带宽的未超过节点机型基准带宽 * onlineBandwidthWatermarkPercent/100,则同节点的离线业务总带宽的不超过节点机型基准带宽 * offlineHighBandwidthPercent/100
40
图3 出口网络带宽保障示例图
上图中,当在线业务带宽低于在线业务水线时,离线业务的带宽阈值处于一个相对较高的水平,即表示允许离线业务占用一定的带宽;当在线业务带宽超过在线业务水线时,则会相应地调低离线业务带宽阈值,以降低离线业务占用的带宽,预留出更多的带宽供在线业务使用。
- 如需关闭出口网络带宽保障特性,请确认Volcano插件处于正常运行状态,然后编辑kube-system命名空间下名称为volcano-agent-configuration的configmap参数,将enable参数设置为false即可。
kubectl edit configmap -nkube-system volcano-agent-configuration
修改参数如下:
... data: colocation-config: | { "globalConfig":{ "cpuBurstConfig":{ "enable":true }, "networkQosConfig":{ "enable":false, "onlineBandwidthWatermarkPercent":80, "offlineLowBandwidthPercent":10, "offlineHighBandwidthPercent":40 }, ...