15 de maio de 20263 min de leitura

Kubernetes v1.36: Otimizando a Sincronização de Rotas no Cloud Controller Manager

Lukas Metzner (Hetzner)

Kubernetes News

Kubernetes v1.36: Otimizando a Sincronização de Rotas no Cloud Controller Manager

O Kubernetes v1.36 adiciona a métrica route_controller_route_sync_total ao Cloud Controller Manager (CCM). Ela foi projetada para validar a eficácia da feature WatchBasedRoutesReconciliation (iniciada no v1.35), que substitui o polling de intervalo fixo por uma abordagem orientada a eventos. A conclusão é que essa mudança reduz drasticamente chamadas desnecessárias às APIs de nuvem, preservando quotas e aumentando a eficiência operacional, sendo essencial para ambientes onde a estabilidade dos nós é prioridade.

A transição do polling para o modo Watch

Historicamente, o Cloud Controller Manager (CCM) operava com um loop de reconciliação de intervalo fixo para manter as tabelas de rotas do provedor de cloud sincronizadas com o estado dos nós no Kubernetes. Em clusters grandes ou em provedores com limites rigorosos de rate-limiting, isso gerava um overhead desnecessário, consumindo precious API quota sem que houvesse, de fato, qualquer mudança estrutural nos nós.

Com a introdução da feature Watch-Based Routes Reconciliation (vide KEP-5237), o controller passa a observar apenas mudanças de inventário. A nova métrica route_controller_route_sync_total surge para conferir visibilidade técnica a essa transição, permitindo que times de DevOps e SRE validem se a redução de custo operacional está sendo alcançada conforme o esperado.

Análise de comportamento: O que observar?

Para times de engenharia, a interpretação desse comportamento é direta. Em um cenário legado, o contador route_controller_route_sync_total cresce em uma progressão aritmética constante, ignorando a estabilidade da topologia. Com o novo mecanismo ativo, espera-se uma curva de platô, onde o contador só sofre incremento em eventos reais (adicionados, deleções ou updates de nós).

Cenário esperado de monitoramento:

  • Estado legada (polling): O contador incrementa a cada intervalo de sync, independentemente de mudanças. Se o intervalo for de 1 minuto, em 20 minutos teremos um incremento de 20 unidades.
  • Estado otimizado (watch-based): O contador permanece estático enquanto não houver mutação na infraestrutura. Se apenas um node for adicionado no intervalo de uma hora, o contador registrará apenas esse evento único, confirmando a economia de chamadas de rede.

Essa visibilidade é fundamental para times FinOps que buscam reduzir custos relacionados a chamadas de API em provedores como AWS, GCP, Azure ou OCI, onde cada interação com o provider pode, em escalas massivas, impactar indiretamente a arquitetura financeira da solução.

Se você já está testando essa implementação, o feedback técnico pode ser enviado via KEP-5237 ou diretamente no canal #sig-cloud-provider no Slack oficial do Kubernetes.

Perguntas Frequentes

  • Qual é o impacto prático dessa nova métrica no meu cluster?
    A métrica permite quantificar o número de requisições enviadas ao provedor de nuvem. Com o feature gate de reconciliação via watch ativado, você notará uma redução drástica nas chamadas de API, evitando estouros de quota em ambientes com poucos churns de nós.

  • Como validar se a feature de 'Watch-Based Reconciliation' está funcionando?
    Compare o valor da métrica route_controller_route_sync_total entre um cluster sem o feature gate (modo legado) e um com ele ativado. Se o contador permanecer estável mesmo sem alterações no cluster, a otimização está funcionando conforme o esperado.

  • Essa mudança afeta a estabilidade das rotas em multi-cloud?
    Não negativamente; o foco é otimização de performance e custo. Ao reduzir o polling constante, você diminui a pressão sobre as APIs do provedor de infraestrutura, mantendo a consistência necessária para a rede do cluster sem desperdício de recursos.


Artigo originalmente publicado em Kubernetes Blog.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset