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.
Ao personalizar a configuração do seu nó, pode ajustar as definições do sistema operativo (SO) ou os parâmetros do kubelet para corresponder à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 de configurações de SO e kubelet comumente usadas. Para configurar definições para além deste subconjunto, usa um conjunto de daemons para personalizar as configurações necessárias sem perder o suporte AKS para os teus nós.
Pré-requisitos
À medida que o serviço passa a suportar novas definições e parâmetros do kubelet, poderá ser necessário registar o sinalizador de funcionalidade de pré-visualização. Se for necessária uma bandeira de pré-visualização, a referência de parâmetros de configuração personalizada do nó chama-a.
Requisitos de pré-visualização para as definições de kubelet kubeReserved e hardEvictionThreshold
Importante
Os recursos de pré-visualização do AKS estão disponíveis numa base de autosserviço e adesão voluntária. As visualizações prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões de teste do AKS são parcialmente cobertas pelo suporte ao cliente numa base de melhor esforço. Assim sendo, estas funcionalidades não se destinam ao uso em produção. Para obter mais informações, consulte os seguintes artigos de suporte:
Instala 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
Registe o sinalizador de funcionalidade CustomNodeConfigPreview na sua subscrição do Azure antes de utilizar as definições de kubelet de pré-visualização kubeReserved e hardEvictionThreshold.
Registar o sinalizador de funcionalidade CustomNodeConfigPreview
Regista o
CustomNodeConfigPreviewsinalizador de funcionalidade utilizando o comandoaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"Leva alguns minutos para que o status mostre Registrado.
Verifique o estado do registo usando o
az feature showcomando.az feature show --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"Quando o estado apresentar Registado, atualize o registo do fornecedor de recursos Microsoft.ContainerService utilizando o comando
az provider register.az provider register --namespace "Microsoft.ContainerService"
Criar ficheiros personalizados de configuração de nós para pools de nós AKS
Para alterar a configuração do sistema operativo e do kubelet, cria um novo ficheiro de configuração com os parâmetros e definições que pretendes. Se não especificar um valor para um parâmetro, é usado o valor padrão.
Nota
Os exemplos seguintes mostram definições de configuração comuns. Modifica as definições para satisfazer os requisitos da tua carga de trabalho. Para obter a lista completa dos parâmetros de configuração de nó personalizados suportados, consulte Parâmetros de configuração de nó personalizados para AKS.
Configuração do Kubelet
Crie um linuxkubeletconfig.json arquivo 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 utilizar as definições do kubelet na Pré-visualização da Personalização de Nós em conjuntos de nós Linux, adicione kubeReserved e hardEvictionThreshold ao seu ficheiro de configuração do kubelet. O exemplo seguinte reserva CPU e memória para daemons do sistema Kubernetes e configura os limiares de expulsão dura do Kubelet:
{
"cpuManagerPolicy": "static",
"kubeReserved": {
"cpuMillicores": 200,
"memoryMB": 1024
},
"hardEvictionThreshold": {
"memoryAvailable": "20%",
"nodeFsAvailable": "10%",
"nodeFsInodesFree": "5%"
}
}
Utilize kubeReserved e hardEvictionThreshold apenas nos pools de nós Linux. Ambas as definições exigem a CustomNodeConfigPreview feature flag.
Configuração do SO
Crie um linuxosconfig.json arquivo com o seguinte conteúdo:
{
"transparentHugePageEnabled": "madvise",
"transparentHugePageDefrag": "defer+madvise",
"swapFileSizeMB": 1500,
"sysctls": {
"netCoreSomaxconn": 163849,
"netIpv4TcpTwReuse": true,
"netIpv4IpLocalPortRange": "32000 60000"
}
}
Crie um cluster AKS usando ficheiros de configuração personalizados
Nota
Tenha em mente as seguintes informações ao usar ficheiros de configuração personalizados ao criar um novo cluster AKS:
- Se especificar uma configuração ao criar um cluster, a configuração aplica-se apenas aos nós do pool inicial de nós. O cluster mantém valores predefinidos para quaisquer definições não configuradas no ficheiro JSON.
-
CustomLinuxOsConfignão é suportado para o tipo de sistema operativo Windows. - As definições de pré-visualização do kubelet
kubeReservedehardEvictionThresholdsão suportadas apenas em conjuntos de nós Linux e requerem o sinalizador de funcionalidadeCustomNodeConfigPreview. Conclua os passos de registo em Requisitos de pré-visualização para as definições do kubeletkubeReservedehardEvictionThresholdantes de criar o cluster ou o agrupamento de nós.
Crie um novo cluster utilizando ficheiros de configuração personalizados, executando o comando az aks create e especificando os ficheiros de configuração para os parâmetros --kubelet-config e --linux-os-config. O comando de exemplo a seguir 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
Adicione um pool de nós usando ficheiros de configuração personalizados
Nota
Tenha em mente as seguintes informações ao usar ficheiros de configuração personalizados para adicionar um novo pool de nós a um cluster AKS existente:
- Ao adicionar um pool de nós Linux a um cluster existente, você pode especificar a configuração do kubelet, a configuração do sistema operacional ou ambas. Ao adicionar um pool de nós do Windows a um cluster existente, você só pode especificar a configuração do kubelet. Se especificar uma configuração ao adicionar um pool de nós, a configuração aplica-se apenas aos nós do novo pool de nós. O conjunto de nós mantém valores predefinidos para quaisquer definições não configuradas no ficheiro JSON.
-
CustomKubeletConfigé suportado para pools de nós Linux e Windows. - As definições de pré-visualização do kubelet
kubeReservedehardEvictionThresholdsão suportadas apenas em conjuntos de nós Linux e requerem o sinalizador de funcionalidadeCustomNodeConfigPreview. Conclua os passos de registo em Requisitos de pré-visualização para as definições de kubeletkubeReservedehardEvictionThresholdantes de criar o cluster ou o conjunto de nós.
Crie um novo pool de nós Linux utilizando o comando az aks nodepool add e especificando os ficheiros de configuração para os parâmetros --kubelet-config e --linux-os-config. O seguinte comando de exemplo cria um novo pool de nós Linux com o ficheiro personalizado ./linuxkubeletconfig.json :
az aks nodepool add --name <node-pool-name> --cluster-name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json
Confirme que as definições foram aplicadas
Depois de aplicares uma configuração personalizada de nós, podes confirmar que as definições foram aplicadas aos nós ligando-te ao host e verificando sysctl ou fazendo alterações de configuração no sistema de ficheiros.
Revisão dos parâmetros de configuração personalizados suportados
Para obter a lista completa dos parâmetros de configuração suportados do kubelet e do sistema operativo Linux, valores permitidos, predefinições e descrições, consulte Parâmetros de configuração personalizados de nós para o AKS.
Considerações sobre configurações personalizadas de nós
Tenha em mente as seguintes considerações ao personalizar a configuração do seu nó:
- As atualizações das imagens dos nós 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 a validação prévia de todos os parâmetros ou valores de configuração personalizados do nó. Certifique-se de que os parâmetros e valores de configuração personalizados dos nós que especifica são suportados e válidos para evitar potenciais problemas com os seus nós do cluster.
- As definições
kubeReservedehardEvictionThreshold, em pré-visualização, estão disponíveis apenas em conjuntos de nós Linux. - Se configurar
kubeReserved, os valores devem ser positivos e não podem exceder a CPU ou a capacidade de memória disponível no pool de nós alvo. - Se configurar
hardEvictionThreshold, use apenas as unidades suportadas:Ki,Mi,Gi, ou%paramemoryAvailableenodeFsAvailable, e um número bruto ou%paranodeFsInodesFree. - Os valores predefinidos para parâmetros de configuração personalizados de nós frequentemente mudam com novas versões do sistema operativo. Ao aplicar configurações personalizadas de nós, reveja os valores predefinidos dos parâmetros que está a configurar para garantir que as suas definições personalizadas são adequadas para a versão do sistema operativo dos seus nós do cluster.
- Limite o número de pessoas que têm permissões para modificar a configuração personalizada do nó para evitar consequências indesejadas na estabilidade e desempenho do cluster. Considere usar a autorização Microsoft Entra ID para a API Kubernetes para restringir o acesso às definições de configuração do cluster.
- Separe os grupos de nós com configurações personalizadas dos que não têm configurações personalizadas para evitar efeitos indesejados nas cargas de trabalho que possam ser sensíveis a determinadas alterações de configuração. Por exemplo, se tiver uma carga de trabalho crítica que requer definições específicas de kubelet, considere isolar essa carga de trabalho para um pool de nós dedicado com a necessária configuração personalizada de kubelet.
Conteúdo relacionado
- Saiba como configurar o cluster AKS.
- Aprenda como atualizar as imagens dos nós no seu cluster.
- Consulte Atualizar um cluster do Serviço Kubernetes do Azure (AKS) para saber como atualizar seu cluster para a versão mais recente do Kubernetes.
- Consulte a lista de Perguntas frequentes sobre o AKS para encontrar respostas para algumas perguntas comuns do AKS.