更新时间: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的场景限速 |
||
限制的场景 |
无 |
无 |
|
限速值取值范围 |
只支持单位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