Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo lista parâmetros de configuração personalizados suportados para pools de nós do Azure Kubernetes Service (AKS). Para aprender a criar e aplicar ficheiros de configuração, veja Personalizar a configuração dos nós para pools de nós AKS.
Parâmetros personalizados de configuração Kubelet
Importante
Ao ativar sysctls inseguros, assumes a responsabilidade pela estabilidade do nó e pelo comportamento da carga de trabalho. Sysctls inseguros podem potencialmente causar instabilidade de nós ou vulnerabilidades de segurança se forem mal configurados. Assegure-se de que compreende as implicações de ativar sysctls específicos e inseguros e monitorize de perto a saúde do seu cluster após efetuar as alterações.
Configuração personalizada do kubelet no Linux
| Parâmetro | Valores/intervalo permitidos | Predefinição | Description |
|---|---|---|---|
cpuManagerPolicy |
nenhum, estático | nenhuma | A política estática permite que contentores em pods garantidos com pedidos de CPU inteiros acessem CPUs exclusivas no nó. |
cpuCfsQuota |
verdadeiro, falso | verdadeiro | Ativar/desativar a aplicação de quotas CFS da CPU para contentores que especificam limites de CPU. |
cpuCfsQuotaPeriod |
Intervalo em milissegundos (ms) | 100ms |
Define o valor do período de cota CFS da CPU. |
imageGcHighThreshold |
0-100 | 85 | A porcentagem de uso do disco após a qual a coleta de lixo de imagem é sempre executada. Uso mínimo de disco que desencadeia a recolha de lixo. Para desativar a coleta de lixo de imagem, defina para 100. |
imageGcLowThreshold |
0-100, não superior a imageGcHighThreshold |
80 | A porcentagem de uso do disco antes da qual a coleta de lixo de imagem nunca é executada. Uso mínimo de disco que pode acionar o coletor de lixo. |
topologyManagerPolicy |
nenhum, melhor esforço, restrito, nó único | nenhuma | Otimize o alinhamento dos nós NUMA. Para mais informações, consulte Políticas de Gestão de Topologia de Controlo num nó. |
allowedUnsafeSysctls |
kernel.shm*, kernel.msg*, kernel.sem, fs.mqueue.*, net.* |
None | Lista permitida de sysctls não seguros ou padrões de sysctl não seguros. |
containerLogMaxSizeMB |
Tamanho em megabytes (MB) | 50 | O tamanho máximo (por exemplo, 10 MB) de um ficheiro de registo de contentor antes de ser rodado. |
containerLogMaxFiles |
2 ou superior | 5 | O número máximo de ficheiros de registo do contentor a reter para um contentor. |
podMaxPids |
-1 para o limite PID do kernel | -1 (infinito) | O número máximo de IDs de processo que podem ser executados num pod. |
seccompDefault |
Unconfined, RuntimeDefault |
Unconfined |
Define o perfil seccomp padrão para todas as cargas de trabalho.
RuntimeDefault Usa o perfil Seccomp padrão do Containerd, restringindo determinadas chamadas do sistema para aumentar a segurança. Chamadas de sistema restritas falham.
Unconfined não impõe restrições às chamadas de sistema, permitindo todas as chamadas ao sistema e reduzindo a segurança. Para obter mais informações, consulte o perfil seccomp predefinido containerd. Este parâmetro está em pré-visualização.
Regista o flag de funcionalidade "KubeletDefaultSeccompProfilePreview" usando o az feature register comando com --namespace "Microsoft.ContainerService". |
kubeReserved.cpuMillicores |
1 da capacidade de CPU do conjunto de nós em milicores | None | Reserva CPU para os processos de sistema do Kubernetes em conjuntos de nós Linux. Este parâmetro está em pré-visualização e requer a CustomNodeConfigPreview feature flag. |
kubeReserved.memoryMB |
1 para a capacidade de memória do pool de nós em MiB | None | Reserva memória para os daemons do sistema Kubernetes em pools de nós Linux. Este parâmetro está em pré-visualização e requer a CustomNodeConfigPreview feature flag. |
hardEvictionThreshold.memoryAvailable |
<number>Ki, <number>Mi, <number>Gi, ou <number>% onde a percentagem não ultrapassa 100 |
None | Define o limiar de eliminação forçada do kubelet para a memória disponível em conjuntos de nós Linux. Este parâmetro está em pré-visualização e requer a CustomNodeConfigPreview feature flag. |
hardEvictionThreshold.nodeFsAvailable |
<number>Ki, <number>Mi, <number>Gi, ou <number>% onde a percentagem não ultrapassa 100 |
None | Define o limiar de expulsão dura do kubelet para o espaço disponível no sistema de ficheiros de nós em pools de nós Linux. Este parâmetro está em pré-visualização e requer a CustomNodeConfigPreview feature flag. |
hardEvictionThreshold.nodeFsInodesFree |
<number> ou <number>% onde a percentagem não ultrapassa 100 |
None | Define o limiar de expulsão dura do kubelet para inodes gratuitos do sistema de ficheiros de nós em pools de nós Linux. Este parâmetro está em pré-visualização e requer a CustomNodeConfigPreview feature flag. |
Windows kubelet configuração personalizada
| Parâmetro | Valores/intervalo permitidos | Predefinição | Description |
|---|---|---|---|
imageGcHighThreshold |
0-100 | 85 | A porcentagem de uso do disco após a qual a coleta de lixo de imagem é sempre executada. Uso mínimo de disco que desencadeia a recolha de lixo. Para desativar a coleta de lixo de imagem, defina para 100. |
imageGcLowThreshold |
0-100, não superior a imageGcHighThreshold |
80 | A porcentagem de uso do disco antes da qual a coleta de lixo de imagem nunca é executada. Uso mínimo de disco que pode acionar o coletor de lixo. |
containerLogMaxSizeMB |
Tamanho em megabytes (MB) | 10 | O tamanho máximo (por exemplo, 10 MB) de um ficheiro de registo de contentor antes de ser rodado. |
containerLogMaxFiles |
2 ou superior | 5 | O número máximo de ficheiros de registo do contentor a reter para um contentor. |
Parâmetros de configuração do sistema operativo personalizado Linux
Importante
Para simplificar a pesquisa e a legibilidade, as definições do sistema operativo são apresentadas neste artigo pelo nome, mas devem ser adicionadas ao ficheiro JSON de configuração ou à API AKS usando a convenção de capitalização camelCase.
Por exemplo, se modificar a vm.max_map_count definição, deve reformatá-la para vmMaxMapCount o ficheiro JSON de configuração.
Limites de controlo de ficheiros Linux
Ao servir grandes quantidades de tráfego, esse tráfego normalmente provém de um grande número de ficheiros locais. Pode ajustar as seguintes definições do kernel e os limites incorporados para permitir lidar com mais, à custa de alguma memória do sistema.
A tabela seguinte lista os limites de handles de ficheiros que pode personalizar para cada pool de nós:
| Setting | Valores/intervalo permitidos | Ubuntu 22.04 predefinido | Ubuntu 24.04 por defeito | Azure Linux 3.0 predefinição | Description |
|---|---|---|---|---|---|
fs.file-max |
8192 - 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | Número máximo de handles de ficheiros alocados pelo kernel Linux. Este valor é definido para o valor máximo possível (2^63-1) para evitar o esgotamento dos descritores de ficheiro e garantir descritores de ficheiro ilimitados em todo o sistema para cargas de trabalho containerizadas. |
fs.inotify.max_user_watches |
781250 - 2097152 | 1048576 | 1048576 | 1048576 | Número máximo de inspeções de arquivos permitido pelo sistema. Cada relógio 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 pedidos de E/S assíncronos em todo o sistema. AIO-Max-NR permite que você altere o valor máximo para o qual AIO-NR pode crescer. |
fs.nr_open |
8192 - 20000500 | 1048576 | 1048576 | 1073741816 | O número máximo de descritores de ficheiro 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:
- Previne 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 contentores nunca sejam congestionadas por limites de manipuladores de ficheiros em todo o sistema.
-
Mantém a segurança através de limites por processo (
fs.nr_openeulimit) que ainda se aplicam a processos individuais. - Otimiza para plataformas de contentores onde muitos contentores podem correr simultaneamente, cada um abrindo potencialmente muitos ficheiros e ligações de rede.
Ajuste de sockets Linux e rede
Para os nós de agente, que se espera que lidem com um grande número de sessões concorrentes, você pode usar as seguintes opções TCP e de rede e ajustá-las de acordo com o pool de nós:
| Setting | Valores/intervalo permitidos | Ubuntu 22.04 predefinido | Ubuntu 24.04 por defeito | Azure Linux 3.0 predefinição | 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. Um limite superior para o valor do parâmetro backlog passado para a função listen(2 ). Se o argumento da lista de pendências for maior que o somaxconn, ele será silenciosamente truncado até esse limite. |
net.core.netdev_max_backlog |
1000 - 3240000 | 1000 | 1000 | 1000 | Número máximo de pacotes, enfileirados no lado INPUT, quando a interface recebe pacotes mais rápido do que o kernel pode processá-los. |
net.core.rmem_max |
212992 - 134217728 | 1048576 | 1048576 | 212992 | O tamanho máximo do buffer de soquete de recebimento em bytes. |
net.core.wmem_max |
212992 - 134217728 | 212992 | 212992 | 212992 | O tamanho máximo do buffer de soquete de envio em bytes. |
net.core.optmem_max |
20480 - 4194304 | 20480 | 131072 | 20480 | Tamanho máximo do buffer auxiliar (buffer de memória opcional) 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 pedidos de ligação em fila que não receberam confirmação do cliente de ligação. Se este número for ultrapassado, o kernel começa a perder pedidos. |
net.ipv4.tcp_max_tw_buckets |
8000 - 1440000 | 262144 | 262144 | 131072 | Número máximo de TIME-WAIT soquetes mantidas pelo sistema simultaneamente. Se esse número for excedido, o soquete de espera é imediatamente destruído e o aviso é impresso. |
net.ipv4.tcp_fin_timeout |
5 - 120 | 60 | 60 | 60 | O tempo em que uma ligação órfã (já não referenciada por qualquer aplicação) permanece no estado FIN_WAIT_2 antes de ser abortada na extremidade local. |
net.ipv4.tcp_keepalive_time |
30 - 432000 | 7200 | 7200 | 7200 | Com que frequência o keepalive TCP envia mensagens quando keepalive está ativado. |
net.ipv4.tcp_keepalive_probes |
1 - 15 | 9 | 9 | 9 | Quantas keepalive sondas o TCP envia, até decidir que a conexão está quebrada. |
net.ipv4.tcp_keepalive_intvl |
10 - 90 | 75 | 75 | 75 | Com que frequência as sondas são enviadas. Multiplicado por tcp_keepalive_probes determina o tempo para desligar uma conexão que não está respondendo, depois que as sondas tiverem começado. |
net.ipv4.tcp_tw_reuse |
2 | 2 | 2 | Permite a reutilização de TIME-WAIT soquetes para novas ligações quando é seguro do ponto de vista do 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 locais usado pelo tráfego TCP e UDP para escolher a porta local. O intervalo é composto por dois números: a primeira porta local permitia tráfego TCP e UDP no nó agente, e a última porta local. |
net.ipv4.neigh.default.gc_thresh1 |
128 - 80000 | 4096 | 4096 | 4096 | Número mínimo de entradas que podem estar na cache ARP. A recolha de lixo não é ativada se o número de entradas estiver abaixo desta definição. |
net.ipv4.neigh.default.gc_thresh2 |
512 - 90000 | 8192 | 8192 | 8192 | Número máximo suave de entradas que podem estar na cache ARP. Esta configuração é, provavelmente, a mais importante, pois a recolha de lixo ARP é ativada cerca de 5 segundos após atingir este limite suave. |
net.ipv4.neigh.default.gc_thresh3 |
1024 - 100000 | 16384 | 16384 | 16384 | Número máximo rígido de entradas no cachê ARP. |
net.netfilter.nf_conntrack_max |
131072 - 2097152 | Calculado dinamicamente | Calculado dinamicamente | Calculado dinamicamente |
nf_conntrack é um módulo que rastreia entradas de conexão para NAT dentro do Linux. O módulo nf_conntrack utiliza uma tabela hash para registar o registo de ligação estabelecida do protocolo TCP.
nf_conntrack_max é o número máximo de nós na tabela hash, ou seja, o número máximo de ligações suportadas pelo módulo nf_conntrack ou o tamanho da tabela de rastreio de ligações.
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 ligações. Os valores reais variam consoante 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 rastreia entradas de conexão para NAT dentro do Linux. O módulo nf_conntrack utiliza uma tabela hash para registar o registo de ligação estabelecida do protocolo TCP.
nf_conntrack_buckets é o tamanho da tabela 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 consoante o tamanho da máquina virtual e a memória disponível. |
Limites de trabalhador Linux
Como os limites do descritor de arquivo, o número de trabalhadores ou threads que um processo pode criar são limitados por uma configuração do kernel e limites de usuário. O limite de usuários no AKS é ilimitado. A tabela seguinte lista as definições do kernel que pode personalizar por grupo de nós.
| Setting | Ubuntu 22.04 predefinido | Ubuntu 24.04 por defeito | Azure Linux 3.0 predefinição | Description |
|---|---|---|---|---|
kernel.threads-max |
Calculado dinamicamente | Calculado dinamicamente | Calculado dinamicamente | Os processos podem inicializar threads. O número máximo de todos os threads que podem ser criados é definido com a configuração kernel.threads-maxdo kernel.
O valor padrão é calculado dinamicamente com base na memória do sistema usando a fórmula: total_ram_pages / 4 (onde cada página tem tipicamente 4 KB). Os valores reais variam consoante o tamanho da máquina virtual e a memória disponível. |
Memória virtual Linux
A tabela seguinte lista as definições do kernel que pode personalizar por pool de nós para ajustar o funcionamento do subsistema de memória virtual (VM) do kernel Linux e os writeout dados sujos no disco:
| Setting | Valores/intervalo permitidos | Ubuntu 22.04 predefinido | Ubuntu 24.04 por defeito | Azure Linux 3.0 predefinição | Description |
|---|---|---|---|---|---|
vm.max_map_count |
65530 | 1048576 | 1048576 | Este ficheiro contém o número máximo de áreas de mapa de memória que um processo pode ter. As áreas do mapa de memória são usadas como efeito colateral de chamar malloc, diretamente por mmap, mprotect e madvise, assim como ao carregar bibliotecas partilhadas. |
|
vm.vfs_cache_pressure |
1 - 100 | 100 | 100 | 100 | Esse valor percentual controla a tendência do kernel de recuperar a memória, que é usada para a cache de objetos de diretório e inode. |
vm.swappiness |
0 - 100 | 60 | 60 | 60 | Este controlo é usado para definir quão agressivamente o kernel troca as páginas de memória. Valores mais altos aumentam a agressividade, valores mais baixos diminuem a quantidade de troca. Um valor de 0 instrui o kernel a não iniciar o swap até que a quantidade de páginas livres e suportadas por ficheiros seja menor do que o ponto de referência alto em uma zona. |
swapFileSizeMB |
1 MB - Tamanho do disco temporário (/dev/sdb) | None | None | None | SwapFileSizeMB especifica o tamanho em MB de um ficheiro de swap a criar nos nós agente deste pool de nós. |
transparentHugePageEnabled |
always, madvise, never |
always |
always |
madvise |
Transparent Hugepages é um recurso do kernel Linux destinado a melhorar o desempenho, fazendo um uso mais eficiente do hardware de mapeamento de memória do seu processador. Quando ativado, o kernel tenta alocar hugepages sempre que possível, e qualquer processo Linux recebe páginas de 2 MB se a região mmap estiver naturalmente alinhada a 2 MB. Em certos casos, quando hugepages estão ativados em todo o sistema, as aplicações podem acabar por alocar mais recursos de memória. Uma aplicação pode mmap ter uma região grande mas tocar apenas 1 byte dela; nesse caso, pode ser alocada uma página de 2 MB em vez de uma de 4k sem razão aparente. Esse cenário é o motivo pelo qual é possível desativar hugepages todo o sistema ou tê-los apenas dentro MADV_HUGEPAGE madvise de regiões. |
transparentHugePageDefrag |
always, defer, defer+madvise, madvise, never |
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. |