26.01.2026

Como reduzir a latência do Kubernetes: um guia para otimizar redes, DNS e desempenho.

Alta latência (latency) no Kubernetes pode rapidamente se tornar um problema sério para engenheiros DevOps. Ela impacta a responsividade dos aplicativos, aumenta os tempos limite das requisições e frequentemente resulta em uma experiência ruim para o usuário. Felizmente, o Kubernetes oferece várias opções de tuning e melhorias arquiteturais que podem reduzir significativamente a latência de rede e de serviços.

Vamos explorar as principais técnicas que ajudam a otimizar a comunicação de rede no Kubernetes e acelerar o seu cluster.

1. Configuração do kube-proxy: migrando de iptables para IPVS

Por padrão, o kube-proxy frequentemente opera no modo iptables, que pode se tornar ineficiente à medida que o número de serviços e regras cresce. Uma alternativa mais adequada é o IPVS, que fornece balanceamento de carga mais rápido e processamento de pacotes mais eficiente.

Para alternar o kube-proxy para o modo IPVS:

kubectl edit configmap -n kube-system kube-proxy

Defina o seguinte valor:

mode: "ipvs"

Por que o IPVS ajuda

2. Uso de stack de rede baseado em eBPF (Cilium)

A comunicação clássica baseada em iptables pode se tornar um gargalo em ambientes de alta largura de banda. O Cilium, que utiliza eBPF, substitui o iptables pelo processamento de pacotes no nível do kernel, aumentando significativamente o desempenho da rede.

Instalando o Cilium via Helm:

helm install cilium cilium/cilium --namespace kube-system

Vantagens do eBPF

3. Ativando NodeLocal DNSCache

A resolução de DNS é uma fonte oculta frequente de latência no Kubernetes. Cada solicitação DNS de um pod geralmente passa pelo CoreDNS, que pode ficar sobrecarregado.

O NodeLocal DNSCache executa um cache DNS local em cada nó, reduzindo significativamente o tempo das consultas DNS.

Ative-o com o comando:

kubectl apply -f https://k8s.io/examples/admin/dns/nodelocaldns.yaml

Resultados
Com isso, a resolução DNS se torna muito mais rápida, a carga sobre o CoreDNS diminui e o desempenho geral melhora, especialmente em arquiteturas de microsserviços, onde os serviços interagem frequentemente entre si.

4. Ajuste de parâmetros TCP via sysctl

Os valores TCP padrão no Linux nem sempre são ideais para workloads de alto desempenho no Kubernetes. Ajustar os parâmetros do kernel reduz a latência das conexões e aumenta a largura de banda.

Configurações TCP recomendadas:

sysctl -w net.core.somaxconn=1024
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_max_syn_backlog=8192

Benefícios

Aplique as configurações sysctl com cuidado e sempre teste em um ambiente staging antes de usar em produção.

5. Uso de Multi-NIC e plugins CNI avançados

Em ambientes de alta carga ou sensíveis à latência, um único interface de rede pode se tornar um gargalo. Usar múltiplas interfaces de rede (Multi-NIC) permite distribuir o tráfego de forma mais eficiente.

O Multus CNI permite que os pods se conectem a múltiplas interfaces de rede simultaneamente.

Quando usar Multus

Conclusão

Reduzir a latência no Kubernetes não é apenas uma configuração isolada, mas uma otimização sistêmica de rede, DNS, parâmetros do kernel e arquitetura do cluster. Migrando kube-proxy para IPVS, adotando eBPF com Cilium, ativando NodeLocal DNSCache, ajustando parâmetros TCP e usando configurações Multi-NIC, você pode aumentar significativamente a responsividade e a estabilidade do cluster.

Essas otimizações são especialmente úteis para:

Comece com mudanças que tragam maior impacto no seu ambiente, meça os resultados e ajuste iterativamente a configuração.

FAQ