Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Customize node pool kubelet configurations

Última atualização: Jun 27, 2026

Se a configuração padrão do kubelet não atender às suas necessidades, personalize os parâmetros do kubelet no nível do pool de nós para ajustar o comportamento dos nós. Por exemplo, ajuste as reservas de recursos para gerenciar o uso, defina limiares personalizados de evicção por pressão no nó para mitigar escassez de recursos ou altere a política do gerenciador de topologia para melhorar o desempenho do sistema.

Limitações

  • Apenas clusters ACK com Kubernetes 1.20 ou posterior suportam parâmetros personalizados do kubelet. Para atualizar um cluster, consulte Atualizar manualmente um cluster.

  • Somente clusters ACK Lingjun com Kubernetes 1.22 ou posterior aceitam parâmetros personalizados do kubelet. Para atualizar um cluster, consulte Atualizar um cluster.

Caso a versão do seu cluster não atenda a esses requisitos, podem ocorrer comportamentos inesperados.

Observações de uso

  • Os parâmetros personalizados do kubelet são aplicados aos nós em lotes. As alterações entram em vigor imediatamente nos nós existentes do pool e são aplicadas automaticamente aos novos nós. A aplicação da configuração reinicia o processo do kubelet, o que pode afetar nós e cargas de trabalho em execução. Recomendamos realizar essa operação fora do horário de pico.

  • Se evictionHard, kubeReserved ou systemReserved não estiverem configurados, o sistema usará valores padrão para reserva de recursos. Para mais detalhes sobre o cálculo dos valores padrão, consulte Política de reserva de recursos do nó.

  • Alterações na configuração de reserva de recursos podem reduzir os recursos alocáveis de um nó. Em nós com alto uso de recursos, isso pode acionar a evicção do nó.

  • Recomendamos fortemente não usar a linha de comando para definir parâmetros do kubelet sem suporte no console. O uso da linha de comando apresenta riscos significativos à estabilidade. Você é responsável pela correção e compatibilidade do conteúdo do arquivo de dados do usuário. Parâmetros incorretos ou obsoletos podem tornar os nós indisponíveis.

  • Ao iniciar, o kubelet mescla configurações de diferentes fontes com base em sua prioridade. Se o mesmo item de configuração for definido de várias formas, a definição com maior prioridade substituirá a de menor prioridade.

    Ordem de mesclagem de configurações

    As configurações a seguir estão classificadas por prioridade, da menor para a maior:

    1. Os feature gates especificados pelo sinalizador --feature-gates na linha de comando.

    2. O arquivo de configuração do kubelet, contendo parâmetros personalizados por meio do console ACK ou OpenAPI.

    3. Configurações de plugins, carregadas em ordem alfabética a partir do diretório de configuração do kubelet.

    4. Parâmetros de linha de comando, exceto feature gates, especificados diretamente via linha de comando.

Personalizar parâmetros do kubelet no console

A aplicação de parâmetros personalizados do kubelet reinicia o processo do kubelet, o que pode afetar seus serviços. Recomendamos executar esta operação fora do horário de pico.

  1. Na página ACK Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Nodes > Node Pools.

  2. Na página Node Pools, localize o pool de nós desejado e escolha image> Kubelet Configuration na coluna Actions.

  3. Leia as observações na página. Clique em Custom Parameters, selecione os parâmetros a configurar, especifique os nós a atualizar e defina a política de atualização em lote. Em seguida, conclua a operação conforme solicitado.

    A política de atualização em lote é descrita da seguinte forma:

    • Maximum Parallel Nodes per Batch: Quantidade de nós a serem atualizados simultaneamente em cada lote. Monitore e gerencie o processo de atualização na lista de eventos.

    • Interval Between Batches: Tempo de espera entre lotes consecutivos de atualização.

    Pause a atualização para verificar os nós atualizados. Quando pausada, quaisquer atualizações de nó em andamento serão concluídas, mas novas atualizações não iniciarão até que você retome a tarefa.

    Conclua a tarefa de configuração personalizada o mais rápido possível. Uma tarefa pausada é cancelada automaticamente após sete dias, e os eventos e logs relacionados são limpos.

Além do console, você também pode chamar a operação da API ModifyNodePoolNodeConfig para personalizar parâmetros do kubelet. A seção a seguir descreve os parâmetros personalizáveis do kubelet suportados pelo ACK.

Parâmetros personalizáveis do kubelet

Parâmetro

Descrição

Padrão

Valores

allowedUnsafeSysctls

Especifique os sysctls inseguros permitidos ou curingas de sysctl (padrões terminados com *). Use vírgula (,) para separá-los.

Importante

Antes de usar este parâmetro, avalie cuidadosamente os riscos e garanta a disponibilidade.

N/A

Suporta configurações de sysctl com os seguintes prefixos:

  • kernel.shm

  • kernel.msg

  • kernel.sem

  • fs.mqueue.

  • net.

containerLogMaxFiles

Número máximo de arquivos de log para um contêiner. O valor deve ser 2 ou superior. O runtime do contêiner deve ser containerd.

10

[2, 10]

containerLogMaxSize

Tamanho máximo de um arquivo de log de contêiner antes da rotação. O runtime do contêiner deve ser containerd.

100Mi

N/A

cpuCFSQuota

Ativa a imposição de cota CFS de CPU para contêineres que possuem limites de CPU.

true

Valores válidos:

  • true

  • false

cpuCFSQuotaPeriod

Define o valor do período de cota CFS da CPU.

O feature gate CustomCPUCFSQuotaPeriod deve estar ativado.

100ms

Um valor de 1 milissegundo a 1 segundo, inclusive.

cpuManagerPolicy

Política do gerenciador de CPU.

none

Valores válidos:

  • none

  • static

eventBurst

Número máximo de registros de eventos em um burst.

10

O valor deve ser um número inteiro de 1 a 100 e maior ou igual ao valor de eventRecordQPS.

eventRecordQPS

Quantidade de eventos que podem ser gerados por segundo.

5

[1, 50]

evictionHard

Conjunto de limiares rígidos de evicção que acionam a evicção de pods.

imagefs.available<15%,memory.available<300Mi,nodefs.available<10%,nodefs.inodesFree<5%

Nenhum

evictionSoft

Conjunto de limiares flexíveis de evicção.

Nenhum

Nenhum

evictionSoftGracePeriod

Conjunto de períodos de carência para evicção.

Nota

evictionSoft deve estar definido.

Nenhum

Nenhum

featureGates

Conjunto de feature gates para recursos experimentais. Cada gate é representado como key=value. Para mais informações, consulte Feature Gates.

No formulário de configuração, selecione uma chave (como featureGates) na lista suspensa à esquerda, insira o valor correspondente na caixa de texto à direita e marque a caixa de seleção à direita para ativar o feature gate.

Importante
  • Antes de usar este parâmetro, avalie cuidadosamente os riscos e garanta a disponibilidade.

  • Feature gates removidos não entram em vigor. Atualize-os prontamente. Para mais informações, consulte Feature Gates (removed).

N/A

N/A

imageGCHighThresholdPercent

Percentual de uso de disco que aciona a coleta de lixo de imagens. A coleta de lixo de imagens é executada continuamente quando o uso do disco excede esse limiar.

Este valor deve ser maior que o valor de imageGCLowThresholdPercent.

85

[60, 95]

imageGCLowThresholdPercent

Percentual de uso de disco abaixo do qual a coleta de lixo de imagens não é executada.

Este valor deve ser menor que o valor de imageGCHighThresholdPercent.

80

[30, 90]

kubeAPIBurst

Número máximo de requisições em burst enviadas ao servidor de API por segundo.

10

[1, 100], e deve ser maior ou igual a kubeAPIQPS

kubeAPIQPS

Número de consultas por segundo (QPS) para o servidor de API.

5

[1, 50]

kubeReserved

Configuração de recursos reservada para daemons do sistema Kubernetes.

O valor é calculado automaticamente por padrão. Para mais informações, consulte Política de reserva de recursos do nó.

N/A

maxPods

Número máximo de pods que podem ser executados em um nó.

Importante

Modificar o valor de maxPods não afeta o número de endereços IP que podem ser alocados ao nó. Se o valor de maxPods for muito alto, pods que não usam o modo HostNetwork podem falhar ao iniciar devido à incapacidade de obter um endereço IP.

N/A. O valor depende de configurações de recursos físicos, como especificações da máquina e planejamento de rede de contêineres.

N/A

memoryManagerPolicy

Política para o gerenciador de memória.

Nenhum

Valores válidos:

  • Nenhum

  • Static

    Antes de usar esta política, conclua as seguintes operações:

    • O feature gate MemoryManager está ativado.

    • Se você gerencia manualmente as reservas de recursos de memória (systemReserved, kubeReserved, evictionHard e reservedMemory), garanta que a configuração esteja correta. A configuração deve seguir a fórmula kube-reserved + system-reserved + eviction-hard = sum(reserved-memory) para evitar que os nós fiquem indisponíveis. Por exemplo, no painel de parâmetros personalizados, defina memoryManagerPolicy como Static e configure os seguintes parâmetros com base na fórmula evictionHard.memory.available + systemReserved.memory + kubeReserved.memory = sum(reservedMemory.limits.memory): defina memory.available de evictionHard como 100Mi, memory de kubeReserved como 100Mi, numaNode de reservedMemory como 0, limits.memory de reservedMemory como 300Mi e memory de systemReserved como 100Mi. Para mais informações, consulte Reserved memory flag.

podPidsLimit

Número máximo de IDs de processo (PIDs) que podem ser usados em cada pod.

  • Inteiro positivo: Define o limite superior para o número de PIDs.

  • -1: Nenhum limite é definido para o número de PIDs.

16.384

Nenhum

readOnlyPort

Porta somente leitura para o kubelet que não requer autenticação.

  • Para clusters com Kubernetes 1.26 ou posterior, o valor padrão é 0.

  • Para clusters com versão do Kubernetes anterior a 1.26, o valor padrão é 10.255.

0

Para informações sobre os riscos de abrir a porta somente leitura (10.255) para monitoramento de contêineres do kubelet, consulte [Alteração de Produto] Migrar a porta de monitoramento de clusters ACK de versões anteriores para uma porta autenticada.

registryBurst

Número máximo de pulls de imagem em burst.

10

O valor deve estar no intervalo [1, 100] e ser maior ou igual ao valor de registryPullQPS.

registryPullQPS

QPS máximo para o registro de imagens.

5

[1, 50]

reservedMemory

Lista de reservas de memória para nós NUMA.

Nenhum

Nenhum

serializeImagePulls

Especifica se as imagens devem ser baixadas serialmente.

False

Valores válidos:

  • False: Este é o valor recomendado. Permite que as imagens sejam baixadas em paralelo para acelerar a inicialização do pod.

  • True: Baixa imagens serialmente.

systemReserved

Configuração de recursos reservada para daemons do sistema.

O valor é calculado automaticamente por padrão. Para mais informações, consulte Política de reserva de recursos do nó.

N/A

topologyManagerPolicy

Política do gerenciador de topologia. Com uma arquitetura NUMA, alocar dados no mesmo nó NUMA reduz o acesso entre nós e melhora o desempenho. O gerenciador de topologia toma decisões de alocação de recursos alinhadas à topologia. Para mais informações, consulte Control Topology Management Policies on a node.

none

  • none (padrão): Não impõe uma política de gerenciamento de topologia.

  • restricted: O kubelet rejeita um pod se suas solicitações de recursos não puderem ser atendidas por um único nó NUMA.

  • best-effort: O kubelet tenta alocar recursos em um único nó NUMA, mas permite alocações de múltiplos nós NUMA se a alocação em um único nó não for possível.

  • single-numa-node: O kubelet permite apenas que recursos de CPU e dispositivo sejam alocados de um único nó NUMA para um pod.

containerLogMonitorInterval

O cluster deve executar Kubernetes 1.30 ou posterior.

Intervalo em que os logs do contêiner são verificados para rotação.

10s

[3s, 60s]

containerLogMaxWorkers

O cluster deve executar Kubernetes 1.30 ou posterior.

Número máximo de workers simultâneos para rotação de logs.

1

[1, 20]

tracing

Ativa o rastreamento para componentes do plano de controle ou do plano de dados do cluster.

Para mais informações, consulte Gerenciamento de rastreamento.

Nenhum

  • endpoint: A configuração recomendada é localhost:4317.

  • samplingRatePerMillion: [0, 1.000.000]

singleProcessOOMKill

Controla o comportamento de OOM Kill de contêineres em um ambiente cgroup v2. Quando definido como true, este parâmetro desativa o sinalizador memory.oom.group para o cgroup do contêiner, fazendo com que os processos dentro do contêiner sofram OOM kill individualmente, e não como um grupo. Esse comportamento é consistente com o cgroup v1. Se este parâmetro não for explicitamente configurado, o sistema determinará automaticamente o valor padrão com base no ambiente atual:

  • true: Aciona um OOM kill individualmente.

  • false: Aciona um OOM Kill por grupo (comportamento padrão para cgroup v2).

Em um ambiente cgroup v2, o padrão é false

  • Não-Linux: Apenas true é suportado.

  • Linux cgroup v1: Apenas true é suportado.

  • Linux cgroup v2: Suporta true e false

configMapAndSecretChangeDetectionStrategy

Modo de operação para o gerenciador de ConfigMap e Secret.

Watch

  • Get: O kubelet recupera diretamente os objetos necessários do servidor de API.

  • Cache: O kubelet usa um TTL para armazenar em cache objetos recuperados do servidor de API.

  • Watch: O kubelet usa o mecanismo Watch para monitorar alterações nos objetos relevantes.

serverTLSBootstrap

Apenas clusters ACK Managed Pro são suportados.
Garanta que o feature gate RotateKubeletServerCertificate esteja ativado.

Ative o bootstrap de certificado de servidor do Kubelet. Quando este recurso está ativado, o Kubelet solicita certificados de servidor ao cluster através da API certificates.k8s.io em vez de usar certificados autoassinados. O cluster aprova automaticamente essas Certificate Signing Requests (CSRs).

  • Para clusters 1.34 ou posteriores: true

  • Para clusters da versão 1.33 e anteriores: false

Valores válidos:

  • true

  • false

Perguntas frequentes

As configurações personalizadas serão descontinuadas?

À medida que o Kubernetes evolui, parâmetros e feature gates podem ser descontinuados ou removidos. Se um parâmetro personalizado gerenciado pelo ACK for descontinuado em uma nova versão do Kubernetes, o ACK removerá a configuração correspondente durante uma atualização do cluster.

Gerenciando o kubelet com um arquivo de configuração

O Container Service for Kubernetes ajusta a forma como as configurações do kubelet são gerenciadas com base nas melhores práticas da comunidade. Para clusters que executam Kubernetes 1.20 ou posterior, sinalizadores de linha de comando descontinuados do kubelet são gradualmente substituídos por um arquivo de configuração. Para mais informações, consulte Kubelet Configuration (v1beta1).

Novos nós usam tanto o arquivo de configuração quanto o método de configuração original. Os nós existentes não são afetados. Para gerenciar as configurações de todos os nós em um pool usando apenas o arquivo de configuração, aplique uma configuração personalizada conforme descrito em Parâmetros personalizáveis do kubelet para padronizar as configurações de todos os nós no pool.

Modificando parâmetros do kubelet sem suporte

O ACK permite gravar parâmetros personalizados no arquivo /etc/kubernetes/kubelet-customized-args.conf. Este arquivo armazena parâmetros de inicialização personalizados e opções de configuração para o kubelet. Os parâmetros neste arquivo têm precedência sobre os valores definidos através do recurso de configuração personalizada do kubelet do pool de nós quando o nó é reiniciado.

Importante

Ajustar parâmetros do kubelet pode causar problemas como falhas no registro de nós e falhas no agendamento de pods, afetando seus serviços. Antes de prosseguir, avalie totalmente os riscos da alteração.

  • (Recomendado) Para nós que serão adicionados ao pool de nós no futuro, adicione um script que escreve no arquivo de configuração de parâmetros personalizados na seção User Data do pool de nós. Isso garante que novos nós usem esses valores de parâmetros personalizados por padrão.

    Configure o seguinte conteúdo na seção User Data da configuração do pool de nós e substitua ${kubelet_key} e ${kubelet_value} pelos valores reais.

    Você pode escrever no arquivo kubelet-customized-args.conf apenas usando o comando > /etc/kubernetes/kubelet-customized-args.conf ou > kubelet-customized-args.conf em User Data . Se você modificar o arquivo usando qualquer outro método em Pre-defined Custom Data , o arquivo /etc/kubernetes/kubelet-customized-args.conf será sobrescrito durante o processo de inicialização do ACK.
    mkdir -p /etc/kubernetes  
    echo 'KUBELET_CUSTOMIZED_ARGS="--${kubelet_key}=${kubelet_value}"' > /etc/kubernetes/kubelet-customized-args.conf
    systemctl daemon-reload
    systemctl restart kubelet
    Para acessar a página de configuração, consulte Criar e gerenciar pools de nós .

  • Para nós existentes no pool de nós, faça login no nó para modificar o arquivo de configuração de parâmetros personalizados. Em seguida, execute os seguintes comandos para aplicar a configuração.

    systemctl daemon-reload
    systemctl restart kubelet

Referências