为Pod配置QoS
操作场景
部署在同一节点上的不同业务容器之间存在带宽抢占,容易造成业务抖动。您可以通过对Pod配置带宽限制来解决这个问题。
功能规格
功能规格 | 容器隧道网络模型 | VPC网络模型 | 云原生网络2.0模型 | VPC网络模型+DataPlane V2 | 云原生网络2.0模型+DataPlane V2 |
|---|---|---|---|---|---|
支持的集群版本 | 所有集群版本均支持 | v1.19.10以上集群版本 | v1.19.10以上集群版本 | v1.27.16-r30、v1.28.15-r20、v1.29.13-r0、v1.30.10-r0、v1.31.6-r0及以上集群版本 | v1.27.16-r10、v1.28.15-r0、v1.29.10-r0、 v1.30.6-r0及以上集群版本 |
Egress带宽限制 | 支持 | 支持 | 支持 | 支持 | 支持 |
Ingress带宽限制 | 支持 | 支持 | 支持 | v1.28.15-r80、v1.29.15-r40、v1.30.14-r0、v1.32.9-r0、v1.33.7-r0及以上集群版本支持 | 不支持 |
带宽限制不支持的场景 | 无 | 无 |
| 本节点Pod间互访 |
|
带宽限制取值范围 | v1.28.15-r70、v1.29.15-r30、v1.30.14-r30、v1.31.10-r30、v1.32.6-r30、v1.33.5-r20、v1.34.1-r0以下版本的集群中,仅支持单位M或G的限速配置,如100M,1G;最小取值1M,最大取值4.29G。 v1.28.15-r70、v1.29.15-r30、v1.30.14-r30、v1.31.10-r30、v1.32.6-r30、v1.33.5-r20、v1.34.1-r0及以上版本的集群中,最小取值1k,最大取值1P。 | 最小取值1k,最大取值1P | 最小取值1k,最大取值1P | ||
- 开启DataPlane V2网络加速后,Huawei Cloud EulerOS 2.0上的Pod将使用EDT(Earliest Departure Time)对Egress带宽进行限制,暂不支持Ingress带宽限制。其他模式下将使用TBF Qdisc对带宽进行限制。
- Pod带宽限制仅支持普通容器(容器运行时为runC),暂不支持安全容器(容器运行时为Kata)。
- Pod带宽限制不支持HostNetwork类型Pod。
通过控制台设置
通过控制台创建工作负载时,您可在创建工作负载页面的“高级配置 > 网络配置”中设置Pod入/出口带宽限速。

通过kubectl命令行设置
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
namespace: default
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
annotations:
kubernetes.io/ingress-bandwidth: 100M
kubernetes.io/egress-bandwidth: 100M
spec:
containers:
- name: container-1
image: nginx:alpine
imagePullPolicy: IfNotPresent
imagePullSecrets:
- name: default-secret - kubernetes.io/ingress-bandwidth:Pod的入口带宽限制
- kubernetes.io/egress-bandwidth:Pod的出口带宽限制
如果不设置这两个参数,则表示不限制带宽。

修改Pod出/入口带宽限速后,需要重启容器才可生效。由于独立创建的Pod(不通过工作负载管理)修改annotations后不会触发容器重启,因此带宽限制不会生效,您可以重新创建Pod或手动触发容器重启。

