更新时间:2024-11-25 GMT+08:00
容器网络带宽限制的配置建议
应用场景
同一个节点上的容器会共用主机网络带宽,对容器的网络带宽进行限制,可以有效避免容器之间相互干扰,提升容器间的网络稳定性。
约束与限制
Pod带宽限制功能规格如下:
功能规格 |
容器隧道网络模型 |
VPC网络模型 |
云原生网络2.0模型 |
---|---|---|---|
支持的集群版本 |
所有集群版本均支持 |
v1.19.10以上集群版本 |
v1.19.10以上集群版本 |
Egress带宽限制 |
支持 |
支持 |
支持 |
Ingress带宽限制 |
支持 |
支持 |
支持 |
带宽限制不支持的场景 |
无 |
无 |
|
- Pod带宽限制仅支持普通容器(容器运行时为runC),暂不支持安全容器(容器运行时为Kata)。
- Pod带宽限制不支持HostNetwork类型Pod。
- Pod带宽限制仅支持单位M或G的限速配置,如100M,1G;最小取值1M,最大取值4.29G。
操作步骤
- 编辑工作负载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
- 创建工作负载。
kubectl create -f deployment.yaml
命令行终端显示如下类似信息:
deployment.apps/nginx created