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.
Ao personalizar a configuração do nó, você pode ajustar as configurações do sistema operacional (SO) ou os parâmetros do kubelet para atender às necessidades das suas cargas de trabalho. Ao criar um cluster AKS ou adicionar um pool de nós ao cluster, você pode personalizar um subconjunto das configurações de SO e kubelet usadas com frequência. Para definir configurações além desse subconjunto, use um conjunto de daemon para personalizar as configurações necessárias sem perder o suporte do AKS para seus nós.
Prerequisites
À medida que o serviço adiciona suporte para novas configurações e parâmetros de kubelet, ele pode exigir o registro do sinalizador de recurso de visualização. Se uma flag de visualização for necessária, a referência dos parâmetros de configuração de nós personalizados indicará isso explicitamente.
Requisitos de prévia para as configurações de kubelet kubeReserved e hardEvictionThreshold
Importante
As funcionalidades em versão preliminar do AKS estão disponíveis de forma optativa e por autoatendimento. As versões prévias são fornecidas “no estado em que se encontram” e “conforme disponíveis” e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões prévias do AKS são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção. Para obter mais informações, consulte os seguintes artigos:
Instalar a extensão aks-preview CLI do Azure
Para instalar a extensão aks-preview, execute o seguinte comando:
az extension add --name aks-previewExecute o seguinte comando para atualizar para a versão mais recente da extensão:
az extension update --name aks-preview
Registre o CustomNodeConfigPreview sinalizador de funcionalidade em sua assinatura do Azure antes de usar as configurações de versão prévia do kubelet kubeReserved e hardEvictionThreshold.
Registrar o sinalizador de recurso CustomNodeConfigPreview
Registre o sinalizador de recurso
CustomNodeConfigPreviewusando o comandoaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"Demora alguns minutos para o status mostrar Registrado.
Verifique o status do registro usando o
az feature showcomando.az feature show --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"Quando o status mostrar Registrado, atualize o registro do provedor de recursos Microsoft.ContainerService usando o comando
az provider register.az provider register --namespace "Microsoft.ContainerService"
Criar arquivos de configuração de nós personalizados para pools de nós do AKS
Para alterar a configuração do sistema operacional e do kubelet, crie um novo arquivo de configuração com os parâmetros e as configurações desejadas. Se você não especificar um valor para um parâmetro, o valor padrão será usado.
Observação
Os exemplos a seguir mostram as configurações comuns. Modifique as configurações para atender aos requisitos de carga de trabalho. Para obter a lista completa de parâmetros de configuração personalizados com suporte, consulte parâmetros de configuração de nó personalizado para AKS.
Configuração do Kubelet
Crie um arquivo linuxkubeletconfig.json com o seguinte conteúdo:
{
"cpuManagerPolicy": "static",
"cpuCfsQuota": true,
"cpuCfsQuotaPeriod": "200ms",
"imageGcHighThreshold": 90,
"imageGcLowThreshold": 70,
"topologyManagerPolicy": "best-effort",
"allowedUnsafeSysctls": [
"kernel.msg*",
"net.*"
],
"failSwapOn": false
}
Para usar as configurações de kubelet da prévia de personalização de nós em pools de nós Linux, adicione kubeReserved e hardEvictionThreshold ao arquivo de configuração do kubelet. O exemplo a seguir reserva CPU e memória para daemons de sistema do Kubernetes e configura os limiares rígidos de despejo do kubelet:
{
"cpuManagerPolicy": "static",
"kubeReserved": {
"cpuMillicores": 200,
"memoryMB": 1024
},
"hardEvictionThreshold": {
"memoryAvailable": "20%",
"nodeFsAvailable": "10%",
"nodeFsInodesFree": "5%"
}
}
Use kubeReserved e hardEvictionThreshold somente em pools de nós do Linux. Ambas as configurações exigem o sinalizador de recurso CustomNodeConfigPreview.
Configuração do SO
Crie um arquivo linuxosconfig.json com o seguinte conteúdo:
{
"transparentHugePageEnabled": "madvise",
"transparentHugePageDefrag": "defer+madvise",
"swapFileSizeMB": 1500,
"sysctls": {
"netCoreSomaxconn": 163849,
"netIpv4TcpTwReuse": true,
"netIpv4IpLocalPortRange": "32000 60000"
}
}
Criar um cluster do AKS usando arquivos de configuração personalizados
Observação
Tenha as seguintes informações em mente ao usar arquivos de configuração personalizados ao criar um novo cluster do AKS:
- Se você especificar uma configuração ao criar um cluster, a configuração se aplicará somente aos nós no pool de nós inicial. O cluster retém valores padrão para quaisquer configurações não configuradas no arquivo JSON.
-
CustomLinuxOsConfignão há suporte para o tipo de sistema operacional Windows. - As configurações do kubelet
kubeReservedehardEvictionThresholdem versão prévia são compatíveis apenas com pools de nós Linux e exigem o sinalizador de recursoCustomNodeConfigPreview. Conclua as etapas de registro descritas em Requisitos de visualização prévia para as configurações dekubeReservedehardEvictionThresholddo kubelet antes de criar o cluster ou pool de nós.
Crie um novo cluster usando arquivos de configuração personalizados ao executar o comando az aks create e especificar seus arquivos de configuração para os parâmetros --linux-os-config e --kubelet-config. O seguinte comando de exemplo cria um novo cluster com os arquivos personalizados ./linuxkubeletconfig.json e ./linuxosconfig.json:
az aks create --name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json --linux-os-config ./linuxosconfig.json
Adicionar um pool de nós usando arquivos de configuração personalizados
Observação
Tenha as seguintes informações em mente ao usar arquivos de configuração personalizados para adicionar um novo pool de nós a um cluster do AKS existente:
- Quando você adiciona um pool de nós do Linux a um cluster existente, você pode especificar a configuração do kubelet, a configuração do SO, ou ambos. Quando você adiciona um pool de nós do Windows a um cluster existente, você pode especificar a configuração do kubelet. Se você especificar uma configuração ao adicionar um pool de nós, a configuração se aplicará somente aos nós no novo pool de nós. O pool de nós retém valores padrão para quaisquer configurações não configuradas no arquivo JSON.
-
CustomKubeletConfigtem suporte para pools de nós de Linux e Windows. - As configurações do kubelet
kubeReservedehardEvictionThresholdem versão prévia são compatíveis apenas com pools de nós Linux e exigem o sinalizador de recursoCustomNodeConfigPreview. Conclua as etapas de registro nos requisitos de visualização parakubeReservedehardEvictionThresholdconfigurações de kubelet antes de criar o pool de clusters ou nós.
Crie um novo pool de nós Linux usando o comando az aks nodepool add e especificando seus arquivos de configuração para os parâmetros --linux-os-config e --kubelet-config. O seguinte comando de exemplo cria um novo pool de nós do Linux com o arquivo personalizado ./linuxkubeletconfig.json :
az aks nodepool add --name <node-pool-name> --cluster-name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json
Confirmar se as configurações foram aplicadas
Depois de aplicar a configuração de nó personalizado, você pode confirmar se as configurações foram aplicadas aos nós pela conexão ao host e verificar sysctl ou se as alterações de configuração foram feitas no sistema de arquivos.
Revisar parâmetros de configuração personalizados compatíveis
Para obter a lista completa dos parâmetros de configuração do kubelet e do sistema operacional Linux compatíveis, dos valores permitidos, dos padrões e das descrições, consulte Parâmetros de configuração personalizados de nó para o AKS.
Considerações sobre configurações de nó personalizadas
Tenha as seguintes considerações em mente ao personalizar a configuração do nó:
- As atualizações de imagens de nó reaplicam as configurações personalizadas dos nós.
- As operações de expansão horizontal preservam as configurações personalizadas dos nós.
- O AKS não realiza validação prévia de todos os parâmetros ou valores de configuração personalizada de nó. Verifique se os parâmetros e os valores de configuração de nó personalizados especificados são compatíveis e válidos para evitar possíveis problemas com os nós de cluster.
- As configurações de visualização
kubeReservedehardEvictionThresholdestão disponíveis somente em pools de nós do Linux. - Se você configurar
kubeReserved, os valores deverão ser positivos e não poderão exceder a capacidade de CPU ou memória disponível no pool de nós de destino. - Se você configurar
hardEvictionThreshold, use apenas as unidades com suporte:Ki, ,MiGiou%paramemoryAvailablee ,nodeFsAvailablee um número bruto ou%paranodeFsInodesFree. - Os valores padrão para parâmetros de configuração de nó personalizado geralmente são alterados com novas versões do sistema operacional. Ao aplicar configurações de nó personalizadas, examine os valores padrão para os parâmetros que você está configurando para garantir que suas configurações personalizadas sejam apropriadas para a versão do sistema operacional de seus nós de cluster.
- Limite o número de pessoas que têm permissões para modificar a configuração de nó personalizado para evitar consequências não intencionais na estabilidade e no desempenho do cluster. Considere usar a autorização do Microsoft Entra ID para a API do Kubernetes para restringir o acesso às configurações do cluster.
- Separe pools de nós com configurações personalizadas daqueles sem configurações personalizadas para evitar consequências não intencionais em cargas de trabalho que podem ser sensíveis a determinadas alterações de configuração. Por exemplo, se você tiver uma carga de trabalho crítica que exija configurações de kubelet específicas, considere isolar essa carga de trabalho em um pool de nós dedicado com a configuração de kubelet personalizada necessária.
Conteúdo relacionado
- Saiba como configurar o cluster AKs.
- Saiba como atualizar as imagens do nó em seu cluster.
- Confira Atualizar um cluster do AKS (Serviço de Kubernetes do Azure) para saber como atualizar o cluster para a versão mais recente do Kubernetes.
- Confira a lista de Perguntas frequentes sobre o AKS para encontrar respostas a algumas perguntas comuns sobre o AKS.