Configuração da limitação da taxa de QoS para acesso entre pods
Cenário
A preempção de largura de banda ocorre entre diferentes contêineres implementados no mesmo nó, o que pode causar jitter de serviço. Você pode configurar a limitação da taxa de QoS para o acesso entre pods impedir este problema.
Restrições
| Tipo de restrição | Modelo da rede de túnel | Modelo de rede da VPC | Modelo de rede de Cloud Native 2.0 |
|---|---|---|---|
| Versões suportadas | Todas as versões | Clusters da v1.19.10 e posterior | Clusters da v1.19.10 e posterior |
| Tipos de tempo de execução suportados | Somente contêineres comuns (runC como o tempo de execução do contêiner) são suportados. Não há suporte para contêineres seguros. | Somente contêineres comuns (runC como o tempo de execução do contêiner) são suportados. Contêineres seguros (Kata como o runtime do contêiner) não são suportados. | Somente contêineres comuns (runC como o tempo de execução do contêiner) são suportados. Contêineres seguros (Kata como o runtime do contêiner) não são suportados. |
| Tipos de pod suportados | Apenas pods non-HostNetwork | ||
| Cenários suportados | Acesso entre pods, pods que acessam nós e pods que acessam serviços | ||
| Restrições | Nenhuma | Nenhuma |
|
| Limite da taxa superior | Valor mínimo entre o limite superior de largura de banda e 34 Gbit/s | Valor mínimo entre o limite superior de largura de banda e 4,3 Gbit/s | Valor mínimo entre o limite superior de largura de banda e 4,3 Gbit/s |
| Limite da taxa inferior | Somente o limite de taxa de Kbit/s ou superior é suportado. | Atualmente, apenas o limite de taxa de Mbit/s ou superior é suportado. | |
Usar o 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: largura de banda de entrada do pod
- kubernetes.io/egress-bandwidth: largura de banda de saída do pod
Se esses dois parâmetros não forem especificados, a largura de banda não será limitada.
Depois de modificar o limite de largura de banda de entrada ou saída de um pod, reinicie o contêiner para que a modificação tenha efeito. Depois que as anotações forem modificadas em um pod não gerenciado por cargas de trabalho, o contêiner não será reiniciado, para que os limites de largura de banda não entrem em vigor. Você pode criar um pod novamente ou reiniciar manualmente o contêiner.