更新时间:2024-12-04 GMT+08:00
为Pod配置QoS
操作场景
部署在同一节点上的不同业务容器之间存在带宽抢占,容易造成业务抖动。您可以通过对Pod间互访进行QoS限速来解决这个问题。
约束与限制
Pod互访限速设置需遵循以下约束:
|
约束类别 |
容器隧道网络模式 |
VPC网络模式 |
|---|---|---|
|
支持的版本 |
所有版本都支持 |
v1.19.10以上集群版本 |
|
支持的运行时类型 |
仅支持普通容器 |
|
|
支持的Pod类型 |
仅支持非HostNetwork类型Pod |
|
|
支持的场景 |
支持Pod间互访、Pod访问Node、Pod访问Service的场景限速 |
|
|
限制的场景 |
无 |
无 |
|
限速值取值范围 |
只支持单位M或G的限速配置,如100M,1G;最小取值1M,最大取值4.29G。 |
|
通过控制台设置
通过控制台创建工作负载时,您可在创建工作负载页面的“高级配置 > 网络配置”中设置Pod入/出口带宽限速。
通过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的出口带宽
如果不设置这两个参数,则表示不限制带宽。
修改Pod出/入口带宽限速后,需要重启容器才可生效。由于独立创建的Pod(不通过工作负载管理)修改annotations后不会触发容器重启,因此带宽限制不会生效,您可以重新创建Pod或手动触发容器重启。
父主题: 容器网络配置