Stop and start node pools in Azure Kubernetes Service (AKS)

Talvez você não precise executar continuamente suas cargas de trabalho do AKS. Por exemplo, você pode ter um cluster de desenvolvimento que tenha pools de nós executando cargas de trabalho específicas. Para otimizar seus custos de computação, você pode parar completamente seus pools de nós em seu cluster AKS. Quando precisares de executar novamente as cargas de trabalho, podes reiniciar os pools de nós. Este artigo mostra-lhe como parar e iniciar pools de nós num cluster AKS usando a CLI do Azure.

Funcionalidades e limitações

  • Não pode parar os conjuntos do sistema.
  • Os conjuntos de nós spot são suportados.
  • Os conjuntos de nós parados podem ser atualizados.
  • Para parar um pool de nós, o cluster e o pool de nós utilizador devem estar a funcionar, e o pool provisioningState de nós deve ser Succeeded.
  • Para iniciar um pool de nós, o cluster deve estar a funcionar e o pool de nós do utilizador deve ser interrompido.
  • Não podes impedir pools de nós de clusters que usem auto-provisionamento de nós (NAP).

Sugestão

Pode usar o Azure Copilot para parar e iniciar os seus pools de nós no portal do Azure. Para mais informações, consulte Trabalhar com clusters AKS de forma eficiente usando o Azure Copilot.

Antes de começar

Este artigo pressupõe que você tenha um cluster AKS existente. Se você precisar de um cluster AKS, crie um usando a CLI do Azure, o Azure PowerShell ou o portal do Azure.

Este artigo requer CLI do Azure versão 2.38.0 ou posterior. Execute az --version para encontrar a versão instalada. Para mais informações sobre a instalação ou atualização da CLI do Azure, consulte Instalar a CLI do Azure.

Parar um pool de nós AKS em execução usando a CLI do Azure

Antes de parares um pool de nós, confirma que o cluster e o pool de nós de utilizador estão a funcionar, que o pool provisioningState de nós está Succeeded, e que o cluster não usa o auto-provisionamento de nós.

Aviso

Parar um pool de nós para todas as máquinas virtuais do pool. Antes de parar o pool, certifique-se de que as cargas de trabalho toleram uma interrupção ou podem correr noutro pool de nós.

  1. Pare um pool de nós AKS em execução usando o az aks nodepool stop comando.

    az aks nodepool stop --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool 
    
  2. Verifique se o pool de nós parou de usar o comando az aks nodepool show.

    az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool
    

    A saída de exemplo condensado a seguir mostra o powerState como Stopped:

    {
    [...]
     "osType": "Linux",
        "podSubnetId": null,
        "powerState": {
            "code": "Stopped"
            },
        "provisioningState": "Succeeded",
        "proximityPlacementGroupId": null,
    [...]
    }
    

    Nota

    Se o provisioningState mostrar Stopping, o seu pool de nós ainda está em processo de parar.

    Nota

    Parar o pool de nós também para o Autoscaler do Cluster para esse pool de nós. Iniciar o pool de nós reinicia o seu Cluster Autoscaler. Não modifiques manualmente o número de instâncias de escalas de máquinas virtuais no pool enquanto está parado. Modificar diretamente recursos de infraestrutura geridos por AKS não é suportado e pode causar inconsistências no Autoescalador de Cluster e falhas operacionais. Para mais informações, veja Personalização de nós agentes pelo Utilizador.


Reiniciar um pool de nós AKS usando a CLI do Azure

Antes de iniciar um pool de nós, confirme que o cluster está a funcionar e que o pool de nós de utilizador está parado.

  1. Reinicie um pool de nós parado usando o az aks nodepool start comando.

    az aks nodepool start --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool 
    
  2. Verifique se o pool de nós começou a usar o az aks nodepool show comando.

    az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool
    

    A saída de exemplo condensado a seguir mostra o powerState como Running:

    {
    [...]
     "osType": "Linux",
        "podSubnetId": null,
        "powerState": {
            "code": "Running"
            },
        "provisioningState": "Succeeded",
        "proximityPlacementGroupId": null,
    [...]
    }
    

    Nota

    Se o provisioningState exibir Starting, o pool de nós ainda está no processo de arranque.


Próximos passos