Voltar

Kubernetes v1.37: Melhorias no QoS de Memória Chegam ao Beta e São Ativadas por Padrão

Aprofundamento CEVIU

Aprofundamento

A promoção do Memory QoS para Beta no Kubernetes v1.37 representa um avanço importante na gestão de recursos de memória em ambientes containerizados. Esta funcionalidade, agora ativada por padrão, utiliza o controlador de memória do kernel Linux para guiar a alocação e o controle da memória para pods em nós que rodam cgroup v2. A ideia central é dar ao kernel mais contexto sobre como tratar a memória dos containers, otimizando performance e estabilidade.

O grande destaque desta versão é a mudança do valor padrão de memoryThrottlingFactor para 'null'. Essa alteração é fundamental para evitar o estrangulamento automático (throttling) de cargas de trabalho existentes em clusters durante a atualização para o v1.37. Operadores de cluster ganham mais previsibilidade, pois o comportamento de memória só será alterado se configurarem explicitamente o throttling ou a reserva de memória.

O que mudou

O recurso Memory QoS foi introduzido como Alpha no Kubernetes v1.22. Sua evolução continuou com o Kubernetes v1.36, como abordado em nossa matéria de 1 de maio de 2026, que destacava a inclusão da reserva de memória em camadas (tiered memory reservation) para Pods Garantidos e Burstable.

Agora, no v1.37, o Memory QoS não apenas chega ao status Beta, mas vem ativado por padrão. A principal mudança é o padrão de memoryThrottlingFactor, que era 0.9 nas versões Alpha e agora é 'null'. Essa alteração significa que o kubelet não aplica estrangulamento de memória por padrão em containers Burstable e BestEffort, a menos que seja configurado explicitamente, garantindo que a atualização para v1.37 não cause impactos inesperados em cargas de trabalho existentes.

Por que isso importa

Para engenheiros de plataforma e equipes de DevOps, a estabilidade e a previsibilidade são cruciais. A promoção do Memory QoS a Beta, com seu comportamento padrão mais conservador, entrega justamente isso. Com o memoryThrottlingFactor em 'null' por padrão, a atualização para o v1.37 minimiza o risco de regressões de performance em ambientes de produção, permitindo uma transição mais segura.

A capacidade de guiar o kernel Linux no gerenciamento da memória dos containers, aliada a mecanismos de throttling e reserva em camadas, oferece um controle mais granular sobre os recursos. Isso é vital para garantir a resiliência e a performance de aplicações críticas, otimizando o uso dos recursos de hardware e evitando cenários de exaustão de memória, um pilar da confiabilidade de sistemas em larga escala.

Linha do tempo

  1. Kubernetes v1.36 introduz reserva de memória em camadas no Memory QoS (Alpha).

  2. Kubernetes v1.37 promove Memory QoS para Beta, com ativação padrão e <code>memoryThrottlingFactor</code> em 'null'.

Perguntas frequentes

O que é Memory QoS e por que ele é importante no Kubernetes?

Memory QoS (Quality of Service de Memória) é um recurso que permite ao Kubernetes guiar o kernel Linux sobre como priorizar e tratar a memória dos containers. Ele é vital para a estabilidade do cluster, ajudando a prevenir que pods com baixo QoS causem degradação de performance ou falhas em pods mais críticos, garantindo alocação e gerenciamento eficientes dos recursos de memória.

Qual a relação do Memory QoS com o cgroup v2?

O Memory QoS depende do cgroup v2, um sistema de controle de grupos de recursos do kernel Linux. Ele utiliza os controladores de memória do cgroup v2 para aplicar as políticas de QoS, como limites de memória (memory.high), reservas mínimas (memory.min) e preferenciais (memory.low), permitindo um gerenciamento mais preciso da memória dos containers.

Como posso ativar o estrangulamento de memória (throttling) no Kubernetes v1.37?

No Kubernetes v1.37, para ativar o estrangulamento de memória, você deve configurar explicitamente o campo memoryThrottlingFactor na configuração do kubelet. Defina um valor entre 0 e 1, por exemplo, 0.9. Isso fará com que o kubelet calcule e aplique limites de memory.high para containers Burstable e BestEffort.

O que significa a mudança do padrão de memoryThrottlingFactor para 'null'?

A mudança para 'null' significa que o kubelet não aplicará estrangulamento de memória (memory.high) por padrão em containers Burstable e BestEffort ao habilitar o Memory QoS. Essa alteração garante que a atualização para o Kubernetes v1.37 não altere o comportamento de tempo de execução de clusters existentes, proporcionando uma transição mais suave e previsível para os operadores.

Fontes

Avalie este artigo:
Categoria
CEVIU DevOps
Publicado
16 de setembro de 2026
Editoria
CEVIU DevOps

Quer receber mais sobre CEVIU DevOps?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser