Usar o Modo de Redução de Escala para excluir/desalocar nós no Serviço Kubernetes do Azure (AKS)

Por padrão, as operações de expansão executadas manualmente ou pelo autoscaler do cluster exigem a alocação e o provisionamento de novos nós, e as operações de redução de escala excluem nós. O Modo de Redução de Escala permite que você decida se deseja excluir ou desalocar os nós em seu cluster do Serviço Kubernetes do Azure (AKS) após a redução da escala.

Quando uma VM do Stopped Azure estiver no estado (deslocalizado), você não será cobrado pelos recursos de computação da VM. No entanto, você ainda precisará pagar por qualquer sistema operacional e discos de armazenamento de dados conectados à VM. Isso também significa que as imagens do contêiner serão preservadas nesses nós. Para obter mais informações, consulte Estados e cobrança de Máquinas Virtuais do Azure. Esse comportamento permite velocidades de operação mais rápidas, já que sua implantação usa imagens armazenadas em cache. O modo de redução de escala elimina a necessidade de pré-provisionar nós e pré-extrair imagens de contêiner, economizando custos de computação.

Antes de começar

Aviso

Para preservar as VMs desalocadas, você deve definir o Modo de redução de escala como Deslocalizar. Isso inclui VMs que foram desalocadas usando APIs IaaS (APIs do Conjunto de Escala de Máquina Virtual). Definir o Modo de redução de escala como Excluir removerá todas as VMs de desalocar. Uma vez aplicado o modo desalocado e a operação de redução de escala, esses nós permanecem registrados no APIserver e aparecem como estado NotReady.

Este artigo pressupõe que você tenha um cluster AKS existente. Se você não tiver um cluster AKS, para obter orientação sobre como projetar uma implementação em escala empresarial do AKS, consulte Planejar seu design AKS.

Limitações

Nota

Anteriormente, enquanto o Modo de Redução de Escala estava em visualização, os pools de nós spot não eram suportados. Agora que o Modo de Redução de Escala está Geralmente Disponível, essa limitação não se aplica mais.

Usando o Modo de Redução de Escala para desalocar nós em escala reduzida

Ao definir --scale-down-mode Deallocateo , os nós serão desalocados durante uma redução de escala do pool de clusters/nós. Todos os nós desalocados são interrompidos. Quando o pool de clusters/nós precisa ser dimensionado, os nós desalocados são iniciados primeiro antes que novos nós sejam provisionados.

Neste exemplo, criamos um novo pool de nós com 20 nós e especificamos que, após a redução da escala, os nós devem ser desalocados usando o argumento --scale-down-mode Deallocate.

az aks nodepool add --node-count 20 --scale-down-mode Deallocate --node-osdisk-type Managed --max-pods 10 --name nodepool2 --cluster-name myAKSCluster --resource-group myResourceGroup

Ao dimensionar o pool de nós e alterar a contagem de nós para 5, desalocaremos 15 nós.

az aks nodepool scale --node-count 5 --name nodepool2 --cluster-name myAKSCluster --resource-group myResourceGroup

Para desalocar nós do Windows durante a redução da escala, execute o seguinte comando. O comportamento padrão é consistente com os nós do Linux, onde os nós são excluídos durante a redução da escala.

az aks nodepool add --node-count 20 --scale-down-mode Deallocate --os-type Windows --node-osdisk-type Managed --max-pods 10 --name npwin2 --cluster-name myAKSCluster --resource-group myResourceGroup

Excluindo nós desalocados anteriormente

Para excluir os nós desalocados, você pode alterar o Modo de redução de escala para Delete definindo --scale-down-mode Delete. Os 15 nós desalocados serão agora eliminados.

az aks nodepool update --scale-down-mode Delete --name nodepool2 --cluster-name myAKSCluster --resource-group myResourceGroup

Nota

Alterar o modo de redução de Deallocate escala de para Delete depois de volta para Deallocate excluirá todos os nós desalocados enquanto mantém o pool de nós no Deallocate modo de redução de escala.

Usando o Modo de Redução de Escala para excluir nós em redução de escala

O comportamento padrão do AKS sem usar o Modo de Redução de Escala é excluir os nós quando você reduz a escala do cluster. Com o Modo de Redução de Escala, esse comportamento pode ser explicitamente alcançado definindo --scale-down-mode Delete.

Neste exemplo, criamos um novo pool de nós e especificamos que nossos nós serão excluídos após a redução da escala usando o argumento --scale-down-mode Delete. As operações de dimensionamento serão tratadas usando o autoscaler do cluster.

az aks nodepool add --enable-cluster-autoscaler --min-count 1 --max-count 10 --max-pods 10 --node-osdisk-type Managed --scale-down-mode Delete --name nodepool3 --cluster-name myAKSCluster --resource-group myResourceGroup

Próximos passos