文档首页/ 云容器引擎 CCE/ 最佳实践/ 容器/ 容器网络带宽限制的配置建议
更新时间:2024-11-12 GMT+08:00

容器网络带宽限制的配置建议

应用场景

同一个节点上的容器会共用主机网络带宽,对容器的网络带宽进行限制,可以有效避免容器之间相互干扰,提升容器间的网络稳定性。

约束与限制

Pod互访限速设置需遵循以下约束:

约束类别

容器隧道网络模式

VPC网络模式

云原生2.0网络模式

支持的版本

所有版本都支持

v1.19.10以上集群版本

v1.19.10以上集群版本

支持的运行时类型

仅支持普通容器(容器运行时为runC),不支持安全容器(容器运行时为Kata)

支持的Pod类型

仅支持非HostNetwork类型Pod

支持的场景

支持Pod间互访、Pod访问Node、Pod访问Service的场景限速

限制的场景

  • 不支持Pod访问100.64.0.0/10和214.0.0.0/8外部云服务网段的限速场景
  • 不支持健康检查的流量限速场景

限速值取值范围

只支持单位M或G的限速配置,如100M,1G;最小取值1M,最大取值4.29G。

操作步骤

  1. 编辑工作负载yaml文件。

    vi deployment.yaml

    根据需要在spec.template.metadata.annotations中设置工作负载实例的网络带宽,限制容器的网络流量,网络带宽限制字段详解请参见表1

    未设置默认不限制。

    示例如下:

    apiVersion: apps/v1 
    kind: Deployment 
    metadata: 
      name: nginx 
    spec: 
      replicas: 1 
      selector: 
        matchLabels: 
          app: nginx 
      strategy: 
        type: RollingUpdate 
      template: 
        metadata: 
          labels: 
            app: nginx 
          annotations:
           # 入方向网络带宽
            kubernetes.io/ingress-bandwidth: 100M
           # 出方向网络带宽
            kubernetes.io/egress-bandwidth: 1G
        spec: 
          containers: 
          - image: nginx  
            imagePullPolicy: Always 
            name: nginx 
          imagePullSecrets: 
          - name: default-secret
    表1 工作负载实例网络带宽限制字段详解

    字段名称

    字段说明

    必选/可选

    kubernetes.io/ingress-bandwidth

    工作负载实例入方向网络带宽

    取值范围:1k-1P,带宽如果设置大于32G,实际带宽将等于32G

    可选

    kubernetes.io/egress-bandwidth

    工作负载实例出方向网络带宽

    取值范围:1k-1P,带宽如果设置大于32G,实际带宽将等于32G

    可选

  2. 创建工作负载。

    kubectl create -f deployment.yaml

    命令行终端显示如下类似信息:

    deployment.apps/nginx created