更新时间:2024-03-22 GMT+08:00
分享

出口网络带宽保障

出口网络带宽保障通过设置网络优先级实现,具有如下优点:

  • 平衡在线业务与离线业务对出口网络带宽的使用,保证在线业务有足够的网络带宽,在线业务触发阈值时,压缩离线业务带宽使用。
  • 在线业务所占用的网络资源较少时,离线业务可使用更多带宽;在线业务所占用的网络资源较多时,降低离线业务资源占用量,从而优先保障在线业务的网络带宽。

约束与限制

使用出口网络带宽保障特性需满足以下要求:

  • 仅支持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)时,使用出口网络保障功能无法生效。

操作步骤

下面介绍如何开启或关闭出口网络带宽保障。

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏中选择“节点管理”,选择“节点池”页签,创建或更新节点池时在“高级配置”中添加以下标签。

    • volcano.sh/oversubscription=true
    • volcano.sh/colocation=true
    图1 节点标签设置

  3. 在左侧导航栏中选择“插件中心”,单击Volcano插件下的“安装”,并在“参数配置”中开启“在离线业务混部”。具体安装步骤请参见Volcano调度器

    如已安装Volcano插件,可单击“编辑”查看或修改配置。

    图2 开启在离线业务混部

    CPU Burst开关由打开到关闭时,已经设置CPU Burst的存量Pod不会关闭CPU Burst功能,关闭CPU Burst仅针对新建的Pod生效。

  4. (可选)调整出口网络带宽保障参数。

    确认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 出口网络带宽保障示例图

    上图中,当在线业务带宽低于在线业务水线时,离线业务的带宽阈值处于一个相对较高的水平,即表示允许离线业务占用一定的带宽;当在线业务带宽超过在线业务水线时,则会相应地调低离线业务带宽阈值,以降低离线业务占用的带宽,预留出更多的带宽供在线业务使用。

  5. 如需关闭出口网络带宽保障特性,请确认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
                },
    ...

分享:

    相关文档

    相关产品