Compartilhar via


Escalar manualmente a contagem de nós em um cluster do AKS (Serviço de Kubernetes do Azure)

Se as necessidades de recursos dos aplicativos alterarem, o desempenho do cluster poderá ser afetado devido à baixa capacidade de CPU, memória, espaço de PID ou tamanhos de disco. Para resolver essas alterações, você poderá dimensionar manualmente o cluster AKS para executar um número diferente de nós. Ao reduzir horizontalmente, os nós são cuidadosamente isolados e drenados para minimizar a interrupção aos aplicativos em execução. Ao reduzir verticalmente, o AKS aguarda até que os nós sejam marcados como Prontos pelo cluster do Kubernetes antes de os pods serem agendados neles.

Este artigo descreve como aumentar ou diminuir manualmente o número de nós em um cluster do AKS.

Antes de começar

  • Revise as cotas e os limites de serviço do AKS para verificar se o cluster pode ser escalado para o número desejado de 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.

    • Nos pools de nós Linux, o comprimento deve variar entre 1 e 11 caracteres.
    • Para pools de nós do Windows, o comprimento deve ter entre 1 e 6 caracteres.

Escalar os nós do cluster

Importante

Não há suporte para a remoção de nós de um pool de nós usando o comando kubectl. Isso pode criar problemas de escalabilidade com o cluster do AKS.

  1. Obtenha o nome do seu pool de nós usando o comando az aks show. O exemplo a seguir obtém o nome de pool de nós para o cluster chamado myAKSCluster no grupo de recursos myResourceGroup:

    az aks show --resource-group myResourceGroup --name myAKSCluster --query agentPoolProfiles
    

    A saída de exemplo a seguir mostra que o nome é nodepool1:

    [
      {
        "count": 1,
        "maxPods": 110,
        "name": "nodepool1",
        "osDiskSizeGb": 30,
        "osType": "Linux",
        "vmSize": "Standard_DS2_v2"
      }
    ]
    
  2. Escale os nós de cluster usando o comando az aks scale. O exemplo a seguir escala um cluster chamado myAKSCluster para um único nó. Forneça seu próprio --nodepool-name do comando anterior, como nodepool1:

    az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 1 --nodepool-name <your node pool name>
    

    A saída de exemplo a seguir mostra que o cluster foi escalonado com êxito para um nó, conforme mostrado na seção agentPoolProfiles:

    {
      "aadProfile": null,
      "addonProfiles": null,
      "agentPoolProfiles": [
        {
          "count": 1,
          "maxPods": 110,
          "name": "nodepool1",
          "osDiskSizeGb": 30,
          "osType": "Linux",
          "vmSize": "Standard_DS2_v2",
          "vnetSubnetId": null
        }
      ],
      [...]
    }
    

Dimensione os pools de nós User para 0

Diferentemente dos pools de nós System que exigem sempre nós em execução, os pools de nós User permitem que você escalone para 0. Para saber mais sobre as diferenças entre pools de nós do usuário e do sistema, confira Pools de nós do usuário e do sistema.

Importante

Se você quiser forçar um pool de nós User a reduzir para 0 nós, será necessário desabilitar o autoscaler do cluster. Para obter mais informações, confira Desabilitar o dimensionador automático de cluster em um pool de nós.

  • Para escalonar um pool de usuários para 0, use az aks nodepool scale como alternativa ao comando az aks scale acima, e defina 0 como a contagem de nós.

    az aks nodepool scale --name <your node pool name> --cluster-name myAKSCluster --resource-group myResourceGroup  --node-count 0
    
  • Você pode permitir, mas não forçar, o escalonamento automático para zero nós em pools de nós User escalonados automaticamente ajustando o parâmetro --min-count do Dimensionador Automático de Cluster para 0.

Próximas etapas

Neste artigo, você dimensionou manualmente um cluster AKS para aumentar ou diminuir o número de nós. Você também pode usar o dimensionador automático de cluster para dimensionar automaticamente o cluster.