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.
No Serviço Kubernetes do Azure (AKS), nós da mesma configuração são agrupados em pools de nós. Esses pools de nós contêm as VMs subjacentes que executam seus aplicativos. Ao criar um cluster AKS, você define o número inicial de nós e seu tamanho (SKU), o que cria um pool de nós do sistema.
Para dar suporte a aplicativos com diferentes demandas de computação ou armazenamento, você pode criar pools de nós de usuário. Os grupos de nós do sistema têm como principal finalidade hospedar pods críticos do sistema, como CoreDNS e konnectivity
. Os pools de nós de usuário têm o objetivo principal de hospedar seus pods de aplicativo. Por exemplo, utilize mais pools de nós de utilizador para fornecer GPUs para aplicações de computação intensiva ou para acesso a armazenamento SSD de alto desempenho. No entanto, se desejar ter apenas um pool no seu cluster AKS, pode programar pods de aplicações em pools de nós do sistema.
Observação
Esse recurso permite mais controle sobre a criação e o gerenciamento de vários pools de nós e requer comandos separados para operações de criação/atualização/exclusão (CRUD). Anteriormente, as operações de cluster por meio az aks create
ou az aks update
usavam a API managedCluster e eram as únicas opções para alterar seu plano de controle e um único pool de nós. Esta funcionalidade expõe um conjunto de operações separado para pools de agentes através da API agentPool e requer o uso do conjunto de comandos az aks nodepool
para executar operações em um pool de nós específico.
Este artigo mostra como criar um ou mais pools de nós em um cluster AKS.
Importante
A partir de 30 de novembro de 2025, o AKS deixará de suportar ou fornecer atualizações de segurança para o Azure Linux 2.0. A partir de 31 de março de 2026, as imagens dos nós serão removidas e não poderás dimensionar os teus pools de nós. Migre para uma versão Linux do Azure com suporte atualizando seus pools de nós para uma versão do Kubernetes com suporte ou migrando para o osSku AzureLinux3
. Para obter mais informações, consulte [Desativação] Pools de nós do Azure Linux 2.0 no AKS.
Antes de começar
- Você precisa da CLI do Azure versão 2.2.0 ou posterior instalada e configurada. Executar
az --version
para localizar a versão. Se precisar de instalar ou atualizar, consulte Install Azure CLI. - Analise as opções de armazenamento para aplicativos no Serviço Kubernetes do Azure para planejar sua configuração de armazenamento.
Limitações
As limitações a seguir se aplicam quando você cria clusters AKS que suportam vários pools de nós:
- Consulte Cotas, restrições de tamanho de máquina virtual e disponibilidade de região no Serviço Kubernetes do Azure (AKS).
- Você pode excluir o pool de nós do sistema se tiver outro pool de nós do sistema para ocupar seu lugar no cluster AKS. Caso contrário, não será possível excluir o pool de nós do sistema.
- Os pools de sistema devem conter pelo menos um nó e os pools de nós de usuário podem conter zero ou mais nós.
- O cluster AKS deve usar o balanceador de carga SKU padrão para usar vários pools de nós. Esse recurso não é suportado com balanceadores de carga SKU básicos.
- O cluster AKS deve usar Conjuntos de Escala de Máquina Virtual para os nós.
- O nome de um pool de nós pode conter apenas caracteres alfanuméricos minúsculos e deve começar com uma letra minúscula.
- Para pools de nós Linux, o comprimento deve estar entre 1 e 12 caracteres.
- Para pools de nós do Windows, o comprimento deve estar entre 1 e 6 caracteres.
- Todos os pools de nós devem residir na mesma rede virtual.
- Quando você cria vários pools de nós no momento da criação do cluster, as versões do Kubernetes para os pools de nós devem corresponder à versão definida para o plano de controle.
Definir variáveis de ambiente
export RESOURCE_GROUP_NAME="my-aks-rg"
export LOCATION="eastus"
export CLUSTER_NAME="my-aks-cluster"
export NODE_POOL_NAME="mynodepool"
Criar um cluster AKS com um único pool de nós
Importante
Se você executar um único pool de nós do sistema para seu cluster AKS em um ambiente de produção, recomendamos usar pelo menos três nós para o pool de nós. Se um nó falhar, a redundância fica prejudicada. Você pode reduzir esse risco aumentando o número de nós no cluster do sistema.
Crie um grupo de recursos do Azure usando o
az group create
comando.az group create --name $RESOURCE_GROUP_NAME --___location $LOCATION
Crie um cluster AKS com um único pool de nós usando o
az aks create
comando. Esta etapa especifica dois nós no pool de nós únicos.az aks create \ --resource-group $RESOURCE_GROUP_NAME \ --name $CLUSTER_NAME \ --vm-set-type VirtualMachineScaleSets \ --node-count 2 \ --___location $LOCATION \ --load-balancer-sku standard \ --generate-ssh-keys
A criação do cluster demora alguns minutos.
Quando o cluster estiver pronto, obtenha as credenciais do cluster usando o
az aks get-credentials
comando.az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
Adicionar um segundo pool de nós
O cluster criado na etapa anterior tem um único pool de nós. Nesta seção, adicionamos um segundo pool de nós ao cluster.
Crie um novo pool de nós usando o
az aks nodepool add
comando. O exemplo a seguir cria um pool de nós chamado mynodepool que executa três nós:az aks nodepool add \ --resource-group $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $NODE_POOL_NAME \ --node-count 3
Verifique o estado dos pools de nós usando o comando
az aks node pool list
e especifique o grupo de recursos e o nome do cluster.az aks nodepool list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
A saída de exemplo condensado a seguir mostra que mynodepool foi criado com êxito com três nós. Quando o cluster AKS foi criado na etapa anterior, um nodepool1 padrão foi criado com uma contagem de nós de 2.
[ { ... "count": 3, ... "name": "mynodepool", "orchestratorVersion": "1.15.7", ... "vmSize": "Standard_DS2_v2", ... }, { ... "count": 2, ... "name": "nodepool1", "orchestratorVersion": "1.15.7", ... "vmSize": "Standard_DS2_v2", ... } ]
Pools de nós Linux do Azure
O host de contêiner do Azure Linux para AKS é uma distribuição Linux de código aberto disponível como um host de contêiner AKS. Ele fornece alta confiabilidade, segurança e consistência. Ele inclui apenas o conjunto mínimo de pacotes necessários para executar cargas de trabalho de contêiner, que melhoram os tempos de inicialização e o desempenho geral.
Adicionar um pool de nós do Azure Linux
Adicione um pool de nós do Azure Linux ao cluster existente usando o
az aks nodepool add
comando e especifique--os-sku AzureLinux
.az aks nodepool add \ --resource-group $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $AZ_LINUX_NODE_POOL_NAME \ --os-sku AzureLinux
Migrar nós do Ubuntu para nós do Azure Linux
Você pode migrar seus nós existentes do Ubuntu para o Azure Linux usando um dos seguintes métodos:
- Remova os pools de nós existentes e adicione novos pools de nós Linux do Azure.
- Migração de SKU no local do Sistema Operativo.
Pools de nós com sub-redes exclusivas
Uma carga de trabalho pode exigir a divisão de nós de cluster em pools separados para isolamento lógico. Sub-redes separadas dedicadas a cada pool de nós no cluster podem ajudar a dar suporte a esse isolamento, que pode atender a requisitos como ter espaço de endereço de rede virtual não contíguo para dividir entre pools de nós.
Observação
Certifique-se de usar a versão 2.35.0
da CLI do Azure ou posterior.
Limitações
- Todas as sub-redes atribuídas a pools de nós devem pertencer à mesma rede virtual.
- Os pods do sistema devem ter acesso a todos os nós e pods no cluster para fornecer funcionalidades críticas, como resolução de DNS e tunelamento kubectl logs/exec/port-forward proxy.
- Se você expandir sua VNET depois de criar o cluster, deverá atualizá-lo antes de adicionar uma sub-rede fora do bloco CIDR original. Enquanto o AKS apresenta erros na adição do pool de agentes, a
aks-preview
extensão da CLI do Azure (versão 0.5.66 e superior) agora oferece suporte à execução doaz aks update
comando com apenas os argumentos necessários-g <resourceGroup> -n <clusterName>
. Este comando executa uma operação de atualização sem fazer alterações, o que pode recuperar um cluster preso em um estado de falha. - Em clusters com a versão do Kubernetes inferior a 1.23.3, o kube-proxy aplica SNAT ao tráfego de novas sub-redes, o que pode fazer com que a Política de Rede do Azure descarte os pacotes.
- Os nós do Windows realizam SNAT do tráfego para as novas sub-redes até que o pool de nós seja recriado.
- Os balanceadores de carga internos usam como padrão uma das sub-redes do pool de nós.
Adicionar um pool de nós com uma sub-rede exclusiva
Adicione um pool de nós com uma sub-rede exclusiva ao cluster existente usando o
az aks nodepool add
comando e especifique o--vnet-subnet-id
.az aks nodepool add \ --resource-group $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $NODE_POOL_NAME \ --node-count 3 \ --vnet-subnet-id $SUBNET_RESOURCE_ID
Pools de nós habilitados para FIPS
Para obter mais informações sobre como habilitar o FIPS (Federal Information Process Standard) para seu cluster AKS, consulte Habilitar FIPS (Federal Information Process Standard) para pools de nós do Serviço Kubernetes do Azure (AKS).
Pools de nós do Windows Server com containerd
A partir do Kubernetes versão 1.20 e superior, você pode especificar containerd
como o tempo de execução do contêiner para pools de nós do Windows Server 2019. A partir do Kubernetes 1.23, containerd
é o tempo de execução de contêiner padrão e único para Windows.
Importante
Ao utilizar containerd
com pools de nós do Windows Server 2019:
- O plano de controle e os pools de nós do Windows Server 2019 devem usar o Kubernetes versão 1.20 ou superior.
- Quando você cria ou atualiza um pool de nós para executar contêineres do Windows Server, o valor padrão para
--node-vm-size
é Standard_D2s_v3, que era o tamanho mínimo recomendado para pools de nós do Windows Server 2019 antes do Kubernetes versão 1.20. O tamanho mínimo recomendado para pools de nós do Windows Server 2019 utilizandocontainerd
é Standard_D4s_v3. Ao definir o--node-vm-size
parâmetro, verifique a lista de tamanhos de VM restritos. - Recomendamos o uso de manchas ou rótulos com os seus grupos de nós do Windows Server 2019 no seu ambiente
containerd
e tolerâncias ou seletores de nós com suas implementações para garantir que suas cargas de trabalho sejam atribuídas corretamente.
Adicionar um pool de nós do Windows Server com containerd
Adicione um pool de nós do Windows Server com
containerd
ao cluster existente usando oaz aks nodepool add
.Observação
Se não especificar o cabeçalho personalizado
WindowsContainerRuntime=containerd
, o pool de nós ainda usarácontainerd
como o ambiente de execução do contêiner por padrão.az aks nodepool add \ --resource-group $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --os-type Windows \ --name $CONTAINER_D_NODE_POOL_NAME \ --node-vm-size Standard_D4s_v3 \ --kubernetes-version 1.20.5 \ --aks-custom-headers WindowsContainerRuntime=containerd \ --node-count 1
Atualizar um pool de nós do Windows Server existente específico para containerd
Atualize um pool de nós específico do Docker para
containerd
usando o comandoaz aks nodepool upgrade
.export CONTAINER_D_NODE_POOL_NAME="mywindowsnodepool" az aks nodepool upgrade \ --resource-group $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $CONTAINER_D_NODE_POOL_NAME \ --kubernetes-version 1.20.7 \ --aks-custom-headers WindowsContainerRuntime=containerd
Atualize todos os conjuntos de nós existentes do Windows Server para containerd
Atualize todos os pools de nós do Docker para
containerd
, usando o comandoaz aks nodepool upgrade
.az aks nodepool upgrade \ --resource-group $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --kubernetes-version 1.20.7 \ --aks-custom-headers WindowsContainerRuntime=containerd
Pools de nós com discos de SO efémeros
Adicione um pool de nós que utiliza discos efémeros do sistema operativo a um cluster existente usando o comando
az aks nodepool add
com o sinalizador--node-osdisk-type
definido paraEphemeral
.Observação
- Pode especificar discos efémeros do sistema operativo durante a criação do cluster usando o sinalizador
--node-osdisk-type
com o comandoaz aks create
. - Se quiser criar pools de nós com discos de sistema operacional conectados à rede, você pode fazer isso especificando
--node-osdisk-type Managed
.
export EPHEMERAL_NODE_POOL_NAME="mydiskpool" az aks nodepool add --name $EPHEMERAL_NODE_POOL_NAME --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME -s Standard_DS3_v2 --node-osdisk-type Ephemeral
- Pode especificar discos efémeros do sistema operativo durante a criação do cluster usando o sinalizador
Importante
Com o Ephemeral OS, pode-se implantar VMs e imagens de instância até ao limite do cache da VM. A configuração de disco do SO do nó padrão no AKS usa 128 GB, o que significa que você precisa de um tamanho de VM que tenha um cache maior que 128 GB. O Standard_DS2_v2 padrão tem um tamanho de cache de 86 GB, que não é grande o suficiente. O Standard_DS3_v2 VM SKU tem um tamanho de cache de 172 GB, que é grande o suficiente. Você também pode reduzir o tamanho padrão do disco do sistema operacional usando --node-osdisk-size
, mas lembre-se de que o tamanho mínimo para imagens AKS é de 30 GB.
Eliminar um pool de nós
Se você não precisar mais de um pool de nós, poderá excluí-lo e remover os nós de VM subjacentes.
Atenção
Quando se elimina um pool de nós, o AKS não realiza as ações de isolamento e drenagem, e não há opções de recuperação para perda de dados que pode ocorrer nesse processo. Se os pods não puderem ser agendados em outros pools de nós, esses aplicativos tornam-se indisponíveis. Certifique-se de não excluir um pool de nós quando os aplicativos em uso não tiverem backups de dados ou a capacidade de executar em outros pools de nós em seu cluster. Para minimizar a interrupção do reagendamento de pods atualmente em execução no pool de nós que você deseja excluir, execute um cordão e drene todos os nós no pool de nós antes de excluir.
Exclua um pool de nós usando o
az aks nodepool delete
comando e especifique o nome do pool de nós.az aks nodepool delete --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --no-wait
Leva alguns minutos para excluir os nós e o pool de nós.
Próximos passos
Neste artigo, você aprendeu como criar vários pools de nós em um cluster AKS. Para saber mais sobre como gerenciar vários pools de nós, consulte Gerenciar vários pools de nós para um cluster no Serviço Kubernetes do Azure (AKS).
Azure Kubernetes Service