一、注意事项
·腾讯云容器服务 TKE 支持使用社区的 bandwidth 插件对网络进行限速,目前适用于 Global Router 模式和 VPC-CNI 共享网卡模式。
·暂不支持 VPC-CNI 独占网卡模式。
二、Global Router 模式
Global Router 网络模式是容器服务 TKE 基于底层私有网络 VPC 的全局路由能力,实现了容器网络和 VPC 互访的路由策略。GlobalRouter 网络模式适用于常规场景,可与标准 Kubernetes 功能无缝集成,更多信息请参见 Global Router模式介绍。
1. 请参考 使用标准登录方式登录 Linux 实例(推荐),登录 Pod 所在节点。
2. 执行以下命令,查看 tke-bridge-agent配置。
kubectl edit daemonset tke-bridge-agent -n kube-system
之后添加 args –bandwidth,开启 bandwidth 插件支持。
三、VPC-CNI 共享网卡模式
VPC-CNI 模式是容器服务 TKE 基于 CNI 和 VPC 弹性网卡实现的容器网络能力,适用于对时延有较高要求的场景。开源组件 Bandwidth 能够支持 Pod 出口和入口流量整形,以及支持带宽控制,使用详细介绍请参阅 VPC-CNI 模式介绍。
1. 登录 容器服务控制台,单击左侧导航栏中集群。
2. 在集群管理页面,选择需开启安全组的集群 ID,进入集群详情页。
3. 在集群详情页面,选择左侧组件管理,在组件管理页面中,单击 eniipamd 组件右侧的修改全局配置。
4. 全局配置中找到 bandwidth 插件的配置项(路径:agent.cniChaining.bandwidth),修改为true。
注意:说明:
注意:eniipamd 组件修改以上参数即可开启/关闭该特性。支持部署、变更开启和变更关闭,只影响增量的 Pod。
5. 单击完成。修改全局配置是高危操作,请确认知悉变更配置的作用和变更风险!
四、Pod 指定 annotation
可使用社区提供的方式设置:
·通过 kubernetes.io/ingress-bandwidth 此 annotation 指定入带宽限速。
·通过 kubernetes.io/egress-bandwidth 此 annotation 指定出带宽限速。
示例如下:
apiVersion: apps/v1kind: Deploymentmetadata: name: nginxspec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx annotations: kubernetes.io/ingress-bandwidth: 10M kubernetes.io/egress-bandwidth: 20M spec: containers: – name: nginx image: nginx
五、验证配置
你可通过以下两种方式验证配置是否成功:
·方式1:登录 Pod 所在的节点,执行以下命令确认限制已经添加。
tc qdisc show
返回类似如下结果,则限制已添加成功。
qdisc tbf 1: dev vethc09123a1 root refcnt 2 rate 10Mbit burst 256Mb lat 25.0ms qdisc ingress ffff: dev vethc09123a1 parent ffff:fff1 —————- qdisc tbf 1: dev 6116 root refcnt 2 rate 20Mbit burst 256Mb lat 25.0ms
·方式2:执行以下命令,使用 iperf 测试。
iperf -c <服务 IP> -p <服务端口> -i 1
返回类似如下结果,则说明限制已添加成功。
————————————————————Client connecting to 172.16.0.xxx, TCP port 80TCP window size: 12.0 MByte (default)————————————————————[ 3] local 172.16.0.xxx port 41112 connected with 172.16.0.xx port 80[ ID] Interval Transfer Bandwidth[ 3] 0.0- 1.0 sec 257 MBytes 2.16 Gbits/sec[ 3] 1.0- 2.0 sec 1.18 MBytes 9.90 Mbits/sec[ 3] 2.0- 3.0 sec 1.18 MBytes 9.90 Mbits/sec[ 3] 3.0- 4.0 sec 1.18 MBytes 9.90 Mbits/sec[ 3] 4.0- 5.0 sec 1.18 MBytes 9.90 Mbits/sec[ 3] 5.0- 6.0 sec 1.12 MBytes 9.38 Mbits/sec[ 3] 6.0- 7.0 sec 1.18 MBytes 9.90 Mbits/sec[ 3] 7.0- 8.0 sec 1.18 MBytes 9.90 Mbits/sec[ 3] 8.0- 9.0 sec 1.18 MBytes 9.90 Mbits/sec[ 3] 9.0-10.0 sec 1.12 MBytes 9.38 Mbits/sec[ 3] 0.0-10.3 sec 268 MBytes 218 Mbits/sec