# 为Pod配置QoS
#### 操作场景
部署在同一节点上的不同业务容器之间存在带宽抢占，容易造成业务抖动。您可以通过对Pod配置带宽限制来解决这个问题。
#### 功能规格
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.34.3-r10及以上集群版本      |
| Egress带宽限制   | 支持      | 支持              | 支持                                                                                                                                                                        | 支持                                                                    | 支持                      |
| Ingress带宽限制  | 支持        | 支持               | 支持                                                                                                                                                                      | v1.28.15-r80、v1.29.15-r40、v1.30.14-r0、v1.32.9-r0、v1.33.7-r0及以上集群版本支持 | 支持                     |
| 带宽限制不支持的场景 | 无          | 无              | - Pod访问100.125.0.0/16等云服务网段地址  - Pod健康检查   | 本节点Pod间互访                                                            | 无                      |
| 带宽限制取值范围    | 仅支持单位M或G的限速配置，如100M，1G；最小取值1M，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以下版本的集群中，最大取值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             |
   
- 只有VPC网络模型开启DataPlane V2网络加速后，将使用eBPF进行带宽限制，其他模式下将使用TBF Qdisc对带宽进行限制。
- Pod带宽限制仅支持普通容器，暂不支持安全容器。
- Pod带宽限制不支持HostNetwork类型Pod。
 
#### 通过控制台设置
通过控制台创建工作负载时，您可在创建工作负载页面的"高级配置 \> 网络配置"中设置Pod入/出口带宽限速。
图1网络配置   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002522403151.png "点击放大")
#### 通过kubectl命令行设置
您可以通过对工作负载添加annotations指定出口带宽和入口带宽，如下所示。
```
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的出口带宽限制
如果不设置这两个参数，则表示不限制带宽。
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
修改Pod出/入口带宽限速后，需要重启容器才可生效。由于独立创建的Pod（不通过工作负载管理）修改annotations后不会触发容器重启，因此带宽限制不会生效，您可以重新创建Pod或手动触发容器重启。
