Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo lista os parâmetros de configuração de nó personalizado com suporte para pools de nós AKS (Serviço de Kubernetes do Azure). Para saber como criar e aplicar arquivos de configuração, consulte Personalizar a configuração do nó para pools de nós do AKS.
Parâmetros de configuração personalizados do Kubelet
Importante
Ao habilitar sysctls não seguros, você assume a responsabilidade pela estabilidade do nó e pelo comportamento da carga de trabalho. Sysctls não seguros podem possivelmente causar instabilidade no nó ou vulnerabilidades de segurança se configurados incorretamente. Certifique-se de entender as implicações de habilitar sysctls não seguros específicos e monitore a integridade do cluster de perto depois de fazer alterações.
Configuração personalizada do kubelet do Linux
| Parâmetro | Os valores/intervalos permitidos | Default | Description |
|---|---|---|---|
cpuManagerPolicy |
nenhum, estático | Nenhum | A política estática permite que contêineres em pods garantidos com solicitações de CPU por número inteiro tenham acesso exclusivo a CPUs no nó. |
cpuCfsQuota |
verdadeiro, falso | verdadeiro | Habilitar/desabilitar a imposição de cota de CFS da CPU para contêineres que especificam limites de CPU. |
cpuCfsQuotaPeriod |
Intervalo emmilissegundos(ms) | 100ms |
Define o valor do período de cota do CFS da CPU. |
imageGcHighThreshold |
0-100 | 85 | A porcentagem de uso do disco após a qual a coleta de lixo da imagem é sempre executada. Uso mínimo de disco que inicia a coleta de lixo. Para desabilitar a coleta de lixo de imagem, defina como 100. |
imageGcLowThreshold |
0-100, não é maior que imageGcHighThreshold |
80 | A porcentagem de uso do disco antes da qual a coleta de lixo da imagem nunca é executada. Uso mínimo do disco que pode disparar a coleta de lixo. |
topologyManagerPolicy |
nenhum, melhor esforço, restrito, nó único | Nenhum | Otimize o alinhamento do nó NUMA. Para obter mais informações, consulte Políticas de Gerenciamento de Topologia de Controle em um nó. |
allowedUnsafeSysctls |
kernel.shm*, kernel.msg*, kernel.sem, , fs.mqueue.*net.* |
None | Lista permitida de padrões de sysctl sysctls ou inseguros. |
containerLogMaxSizeMB |
Tamanho em megabytes (MB) | 50 | O tamanho máximo (por exemplo, 10 MB) de um arquivo de log de contêiner antes de ser rotacionado. |
containerLogMaxFiles |
2 ou superior | 5 | O número máximo de arquivos de log de contêiner a serem retidos para um contêiner. |
podMaxPids |
-1 para o limite de PID do kernel | -1 (infinito) | O número máximo de IDs de processo que podem ser executadas em um pod. |
seccompDefault |
Unconfined, RuntimeDefault |
Unconfined |
Define o perfil de seccomp padrão para todas as cargas de trabalho.
RuntimeDefault usa o perfil de seccomp padrão do contêiner, restringindo determinadas chamadas do sistema para aprimorar a segurança. As chamadas restritas falham.
Unconfined não impõe restrições a chamadas de sistema (syscalls), permitindo todas as chamadas do sistema e reduzindo a segurança. Para obter mais informações, consulte o perfil de seccomp padrão do containerd. Esse parâmetro está em versão prévia.
Registre o sinalizador de recurso "KubeletDefaultSeccompProfilePreview" com o comando az feature register usando --namespace "Microsoft.ContainerService". |
kubeReserved.cpuMillicores |
1 para a capacidade de CPU do pool de nós em millicores | None | Reserva CPU para daemons do sistema Kubernetes em pools de nós do Linux. Esse parâmetro está em prévia e requer o sinalizador de recurso CustomNodeConfigPreview. |
kubeReserved.memoryMB |
1 para a capacidade de memória do pool de nós no MiB | None | Reserva memória para daemons do sistema Kubernetes em pools de nós do Linux. Esse parâmetro está em prévia e requer o sinalizador de recurso CustomNodeConfigPreview. |
hardEvictionThreshold.memoryAvailable |
<number>Ki, <number>Miou <number>Gi<number>% onde a porcentagem não é superior a 100 |
None | Define o limiar rígido de despejo do kubelet para a memória disponível em pools de nós Linux. Esse parâmetro está em prévia e requer o sinalizador de recurso CustomNodeConfigPreview. |
hardEvictionThreshold.nodeFsAvailable |
<number>Ki, <number>Miou <number>Gi<number>% onde a porcentagem não é superior a 100 |
None | Define o limite rígido de expulsão do kubelet para o espaço disponível no sistema de arquivos do nó nos pools de nós Linux. Esse parâmetro está em prévia e requer o sinalizador de recurso CustomNodeConfigPreview. |
hardEvictionThreshold.nodeFsInodesFree |
<number> ou <number>% onde a porcentagem não é superior a 100 |
None | Define o limite de remoção rígido do kubelet para inodes de sistema de arquivos de nó gratuito em pools de nós do Linux. Esse parâmetro está em prévia e requer o sinalizador de recurso CustomNodeConfigPreview. |
Configuração personalizada do kubelet do Windows
| Parâmetro | Os valores/intervalos permitidos | Default | Description |
|---|---|---|---|
imageGcHighThreshold |
0-100 | 85 | A porcentagem de uso do disco após a qual a coleta de lixo da imagem é sempre executada. Uso mínimo de disco que inicia a coleta de lixo. Para desabilitar a coleta de lixo de imagem, defina como 100. |
imageGcLowThreshold |
0-100, não é maior que imageGcHighThreshold |
80 | A porcentagem de uso do disco antes da qual a coleta de lixo da imagem nunca é executada. Uso mínimo do disco que pode disparar a coleta de lixo. |
containerLogMaxSizeMB |
Tamanho em megabytes (MB) | 10 | O tamanho máximo (por exemplo, 10 MB) de um arquivo de log de contêiner antes de ser rotacionado. |
containerLogMaxFiles |
2 ou superior | 5 | O número máximo de arquivos de log de contêiner a serem retidos para um contêiner. |
Parâmetros de configuração do sistema operacional personalizado do Linux
Importante
Para simplificar a pesquisa e a legibilidade, as configurações do sistema operacional são exibidas neste artigo pelo nome, mas devem ser adicionadas ao arquivo JSON de configuração ou à API do AKS usando a convenção de capitalização camelCase.
Por exemplo, se você modificar a vm.max_map_count configuração, deverá reformatá-la vmMaxMapCount no arquivo JSON de configuração.
Limites do identificador de arquivo do Linux
Ao atender a altas quantidades de tráfego, esse tráfego geralmente vem de um grande número de arquivos locais. É possível ajustar as seguintes configurações de kernel e limites internos para aumentar a capacidade de processamento, ao custo de uma parte da memória do sistema.
A tabela a seguir lista os limites de manipuladores de arquivos que você pode personalizar por pool de nós.
| Setting | Os valores/intervalos permitidos | Padrão do Ubuntu 22.04 | Padrão do Ubuntu 24.04 | Padrão do Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
fs.file-max |
8192 - 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | Número máximo de descritores de arquivo alocados pelo kernel do Linux. Esse valor é definido como o valor máximo possível (2^63-1) para evitar o esgotamento do descritor de arquivo e garantir um número ilimitado de identificadores de arquivo em nível de sistema para cargas de trabalho em contêineres. |
fs.inotify.max_user_watches |
781250 - 2097152 | 1048576 | 1048576 | 1048576 | Número máximo de inspeções de arquivo permitidas pelo sistema. Cada inspeção tem aproximadamente 90 bytes em um kernel de 32 bits e aproximadamente 160 bytes em um kernel de 64 bits. |
fs.aio-max-nr |
65536 - 6553500 | 65536 | 65536 | 65536 | O aio-nr mostra o número atual de solicitações de E/S assíncronas em todo o sistema. AIO-Max-NR permite que você altere o valor máximo AIO-NR pode aumentar para. |
fs.nr_open |
8192 - 20000500 | 1048576 | 1048576 | 1073741816 | O número máximo de identificadores de arquivo que um processo pode alocar. |
Note
O fs.file-max parâmetro é definido como 9223372036854775807 (o valor máximo para um inteiro de 64 bits assinado) no Ubuntu e no Azure Linux com base em padrões upstream. Esta configuração:
- Impede ataques de negação de serviço com base no esgotamento do descritor de arquivos em todo o sistema.
- Garante que as cargas de trabalho de contêiner nunca sejam afuniladas pelos limites de identificador de arquivo de todo o sistema.
-
Mantém a segurança por meio de limites por processo (
fs.nr_openeulimit) que ainda se aplicam a processos individuais. - Otimiza para plataformas de contêiner em que muitos contêineres podem ser executados simultaneamente, cada um potencialmente abrindo muitos arquivos e conexões de rede.
Ajuste de rede e soquete do Linux
Para nós de agentes, que devem lidar com um grande número de sessões simultâneas, podem-se usar as seguintes opções de TCP e rede e ajustá-las por pool de nós:
| Setting | Os valores/intervalos permitidos | Padrão do Ubuntu 22.04 | Padrão do Ubuntu 24.04 | Padrão do Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
net.core.somaxconn |
4096 - 3240000 | 16384 | 16384 | 16384 | Número máximo de solicitações de conexão que podem ser enfileiradas para qualquer soquete de escuta específico. Um limite superior para o valor do parâmetro backlog passado para a função Listen (2). Se o argumento da pendência for maior que o somaxconn, ele será silenciosamente truncado para esse limite. |
net.core.netdev_max_backlog |
1000 - 3240000 | 1000 | 1000 | 1000 | Número máximo de pacotes, em fila no lado de entrada, quando a interface recebe pacotes mais rápidos do que o kernel pode processá-los. |
net.core.rmem_max |
212992 - 134217728 | 1048576 | 1048576 | 212992 | O tamanho do buffer do soquete recebido máximo em bytes |
net.core.wmem_max |
212992 - 134217728 | 212992 | 212992 | 212992 | O tamanho do buffer do soquete enviado máximo em bytes |
net.core.optmem_max |
20480 - 4194304 | 20480 | 131072 | 20480 | Tamanho máximo de buffer auxiliar (buffer de memória de opção) permitido por soquete. A memória de opção de soquete é usada em alguns casos para armazenar estruturas extras relacionadas ao uso do soquete. |
net.ipv4.tcp_max_syn_backlog |
128 - 3240000 | 16384 | 16384 | 16384 | O número máximo de solicitações de conexão na fila que não receberam uma confirmação do cliente de conexão. Se esse número for excedido, o kernel começará a remover solicitações. |
net.ipv4.tcp_max_tw_buckets |
8000 - 1440000 | 262144 | 262144 | 131072 | Número máximo de TIME-WAIT soquetes mantidos pelo sistema simultaneamente. Se esse número for excedido, o soquete de espera de tempo será destruído imediatamente e o aviso será impresso. |
net.ipv4.tcp_fin_timeout |
5 - 120 | 60 | 60 | 60 | O período de tempo em que uma conexão órfã (não referenciada por nenhum aplicativo) permanece no estado FIN_WAIT_2 antes de ser anulada no final local. |
net.ipv4.tcp_keepalive_time |
30 - 432000 | 7200 | 7200 | 7200 | Com que frequência o TCP envia keepalive mensagens quando keepalive está habilitado. |
net.ipv4.tcp_keepalive_probes |
1 - 15 | 9 | 9 | 9 | Quantas keepalive investigações o TCP envia, até que decida que a conexão foi interrompida. |
net.ipv4.tcp_keepalive_intvl |
10 - 90 | 75 | 75 | 75 | Com que frequência as investigações são enviadas. Multiplicado por tcp_keepalive_probes ele torna-se o tempo para eliminar uma conexão que não está respondendo, após o início das investigações. |
net.ipv4.tcp_tw_reuse |
2 | 2 | 2 | Permite a reutilização de TIME-WAIT soquetes para novas conexões quando ele estiver seguro em um ponto de vista de protocolo. |
|
net.ipv4.ip_local_port_range |
Primeiro: 1024 - 60999 e último: 32768 - 65535] | Primeiro: 32768 e último: 60999 | Primeiro: 32768 e último: 60999 | Primeiro: 32768 e último: 60999 | O intervalo de portas local que é usado pelo tráfego TCP e UDP para escolher a porta local. O intervalo é composto por dois números: a primeira porta local permitida para tráfego TCP e UDP no nó do agente e o último número da porta local. |
net.ipv4.neigh.default.gc_thresh1 |
128 - 80000 | 4096 | 4096 | 4096 | Número mínimo de entradas que podem estar no cache ARP. A coleta de lixo não será disparada se o número de entradas estiver abaixo dessa configuração. |
net.ipv4.neigh.default.gc_thresh2 |
512 - 90000 | 8192 | 8192 | 8192 | Número máximo flexível de entradas que podem estar no cache ARP. Essa configuração é, sem dúvida, a mais importante, pois a coleta de lixo ARP inicia cerca de 5 segundos depois de atingir esse limite flexível. |
net.ipv4.neigh.default.gc_thresh3 |
1024 - 100000 | 16384 | 16384 | 16384 | O número máximo inflexível de entradas no cache ARP. |
net.netfilter.nf_conntrack_max |
131072 - 2097152 | Calculado dinamicamente | Calculado dinamicamente | Calculado dinamicamente |
nf_conntrack é um módulo que controla as entradas de conexão para NAT no Linux. O nf_conntrack módulo usa uma tabela de hash para registrar o registro de conexão estabelecido do protocolo TCP.
nf_conntrack_max é o número máximo de nós na tabela de hash, ou seja, o número máximo de conexões com suporte no nf_conntrack módulo ou o tamanho da tabela de controle de conexão.
O valor padrão é calculado dinamicamente com base na memória do sistema usando a fórmula: RAM_in_bytes / 16384 (ou RAM_in_MB * 64). Por exemplo, uma máquina virtual com 8 GB de RAM tem um padrão de aproximadamente 524.288 conexões. Os valores reais variam de acordo com o tamanho da máquina virtual e a memória disponível. |
net.netfilter.nf_conntrack_buckets |
65536 - 524288 | Calculado dinamicamente | Calculado dinamicamente | Calculado dinamicamente |
nf_conntrack é um módulo que controla as entradas de conexão para NAT no Linux. O nf_conntrack módulo usa uma tabela de hash para registrar o registro de conexão estabelecido do protocolo TCP.
nf_conntrack_buckets é o tamanho da tabela de hash.
O valor padrão é calculado dinamicamente com base na memória do sistema usando a fórmula: RAM_in_bytes / 16384, com um mínimo de 1.024 buckets e um máximo de 262.144 buckets. O padrão nf_conntrack_max normalmente é definido como nf_conntrack_buckets * 4. Os valores reais variam de acordo com o tamanho da máquina virtual e a memória disponível. |
Limites de trabalho do Linux
Como os limites do descritor de arquivo, o número de trabalhos ou threads que um processo pode criar são limitados por uma configuração de kernel e limites de usuário. O limite de usuários em AKS é ilimitado. A tabela a seguir lista a configuração do kernel que você pode personalizar por pool de nós:
| Setting | Padrão do Ubuntu 22.04 | Padrão do Ubuntu 24.04 | Padrão do Azure Linux 3.0 | Description |
|---|---|---|---|---|
kernel.threads-max |
Calculado dinamicamente | Calculado dinamicamente | Calculado dinamicamente | Os processos podem criar threads de trabalho. O número máximo de todos os threads que podem ser criados é definido com a configuração do kernel kernel.threads-max.
O valor padrão é calculado dinamicamente com base na memória do sistema usando a fórmula: total_ram_pages / 4 (em que cada página normalmente tem 4 KB). Os valores reais variam de acordo com o tamanho da máquina virtual e a memória disponível. |
Memória virtual do Linux
A tabela a seguir lista as configurações de kernel que você pode personalizar por pool de nós para ajustar a operação do subsistema de memória virtual (VM) do kernel do Linux e os writeout dados sujos em disco:
| Setting | Os valores/intervalos permitidos | Padrão do Ubuntu 22.04 | Padrão do Ubuntu 24.04 | Padrão do Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
vm.max_map_count |
65530 | 1048576 | 1048576 | Esse arquivo contém o número máximo de áreas de mapa de memória que um processo pode ter. As áreas de mapa de memória são usadas como um efeito colateral de chamar malloc , diretamente por mmap, mprotect e madvise também ao carregar bibliotecas compartilhadas. |
|
vm.vfs_cache_pressure |
1 a 100 | 100 | 100 | 100 | Esse valor de porcentagem controla a tendência do kernel de recuperar a memória, que é usada para armazenar em cache os objetos de diretório e inode. |
vm.swappiness |
0 - 100 | 60 | 60 | 60 | Esse controle é usado para definir a agressividade com que o kernel troca páginas de memória. Valores mais altos aumentam a agressividade, os valores mais baixos diminuem a quantidade de troca. Um valor de 0 instrui o kernel a não iniciar a permuta até que a quantidade de páginas livres e com backup em arquivo seja menor que a marca d' água alta em uma zona. |
swapFileSizeMB |
1 MB - Tamanho temporário de disco (/dev/sdb) | None | None | None | SwapFileSizeMB especifica o tamanho em MB de um arquivo de troca a ser criado nos nós de agente deste pool de nós. |
transparentHugePageEnabled |
always, madvise, never |
always |
always |
madvise |
Transparent Hugepages é um recurso de kernel do Linux destinado a melhorar o desempenho, fazendo uso mais eficiente do hardware de mapeamento de memória do processador. Quando habilitado, o kernel tenta alocar hugepages sempre que possível e qualquer processo do Linux recebe páginas de 2 MB se a região mmap estiver naturalmente alinhada em 2 MB. Quando hugepages estão habilitados para todo o sistema, os aplicativos podem acabar alocando mais recursos de memória. Um aplicativo pode mmap um grande espaço de memória, mas apenas acessar 1 byte dele; nesse caso, uma página de 2 MB pode ser alocada em vez de uma página de 4k sem motivo justificado. Esse cenário é o motivo pelo qual é possível desabilitar hugepages todo o sistema ou apenas tê-los dentro de MADV_HUGEPAGE madvise regiões. |
transparentHugePageDefrag |
always, defer, defer+madvise, , madvisenever |
madvise |
madvise |
madvise |
Esse valor controla se o kernel deve fazer uso agressivo da compactação de memória para tornar mais hugepages disponível. |