容器服务 在 TKE 上对 Pod 进行带宽限速

腾讯云容器服务 TKE 暂不支持 Pod 限速,但可通过修改 CNI 插件来支持此功能。这篇档介绍如何在 TKE 上实现对 Pod 的带宽限速,可以结合实际场景进行操作。

相关产品
容器服务 产品页,含版本规格、价格与购买入口。

一、注意事项

·腾讯云容器服务 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

赞 (0)
上一篇 4天前
下一篇 4天前