Parar e iniciar um cluster do Serviço Kubernetes do Azure (AKS)

Talvez não seja necessário executar continuamente suas cargas de trabalho do Serviço Kubernetes do Azure (AKS). Por exemplo, você pode ter um cluster de desenvolvimento que você só usa durante o horário comercial. Isso significa que há momentos em que o cluster pode estar ocioso, executando nada mais do que os componentes do sistema. Você pode reduzir o espaço ocupado pelo cluster dimensionando todos os User pools de nós para 0, mas o System pool ainda é necessário para executar os componentes do sistema enquanto o cluster está em execução.

Para otimizar melhor seus custos durante esses períodos, você pode desativar ou interromper o cluster. Essa ação interrompe o plano de controle e os nós do agente, permitindo que você economize em todos os custos de computação, mantendo todos os objetos, exceto pods autônomos. O estado do cluster é armazenado para quando você iniciá-lo novamente, permitindo que você continue de onde parou.

Atenção

Parar o cluster deslocaliza o plano de controle e libera a capacidade. Em regiões com restrições de capacidade, os clientes podem não conseguir iniciar um cluster interrompido. Não recomendamos interromper cargas de trabalho de missão crítica por esse motivo.

Nota

As operações iniciais do AKS restaurarão todos os objetos do ETCD, com exceção de pods independentes com os mesmos nomes e idades. o que significa que a idade de um pod continuará a ser calculada a partir do seu tempo de criação original. Essa contagem continuará aumentando ao longo do tempo, independentemente de o cluster estar em um estado interrompido.

Antes de começar

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

Sobre o recurso stop/start do cluster

Ao usar o recurso stop/start do cluster, as seguintes condições se aplicam:

  • Esse recurso só é suportado para clusters com backup do Conjunto de Escala de Máquina Virtual.
  • Não é possível parar clusters que usam o recurso NAP (Autoprovisionamento de Nós).
  • O estado do cluster de um cluster AKS interrompido é preservado por até 12 meses. Se o cluster estiver parado por mais de 12 meses, não será possível recuperar o estado. Para obter mais informações, consulte as políticas de suporte do AKS.
  • Você só pode executar operações de inicialização ou exclusão em um cluster AKS interrompido. Para executar outras operações, como dimensionamento ou atualização, você precisa iniciar o cluster primeiro.
  • Se você provisionou PrivateEndpoints vinculados a clusters privados, eles precisarão ser excluídos e recriados novamente ao iniciar um cluster AKS interrompido.
  • Como o processo de parada drena todos os nós, todos os pods autônomos (ou seja, pods não gerenciados por um Deployment, StatefulSet, DaemonSet, Job, etc.) serão excluídos.
  • Quando você inicia o backup do cluster, o seguinte comportamento é esperado:
    • O endereço IP do servidor de API pode mudar.
    • Se você estiver usando o autoscaler de cluster, quando iniciar o cluster, sua contagem de nós atual pode não estar entre os valores de intervalo mínimo e máximo definidos. O cluster começa com o número de nós necessários para executar as cargas de trabalho, o que não é afetado pelas definições do dimensionamento automático. Quando o cluster executar as operações de dimensionamento, os valores mínimo e máximo irão afetar a contagem de nós existentes e o cluster irá eventualmente entrar e permanecer nesse intervalo pretendido até parar o cluster.

Parar um cluster AKS

  1. Use o az aks stop comando para parar um cluster AKS em execução, incluindo os nós e o plano de controle. O exemplo a seguir interrompe um cluster chamado myAKSCluster:

    az aks stop --name myAKSCluster --resource-group myResourceGroup
    
  2. Verifique se o cluster parou de usar o az aks show comando e confirme os powerState shows como Stopped.

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

    Sua saída deve ser semelhante à seguinte saída de exemplo condensada:

    {
    [...]
      "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2",
      "powerState":{
        "code":"Stopped"
      },
      "privateFqdn": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
    [...]
    }
    

    Se o provisioningState Stoppingcluster for exibido, o cluster ainda não parou totalmente.

Importante

Se estiver a utilizar orçamentos de interrupção de pods, a operação de paragem pode demorar mais tempo, uma vez que o processo de esvaziamento levará mais tempo a ser concluído.

Iniciar um cluster AKS

Atenção

Depois de utilizar o recurso start/stop no AKS, é essencial esperar de 15 a 30 minutos antes de reiniciar seu cluster AKS. Este período de espera é necessário porque os serviços relevantes demoram vários minutos a parar totalmente. A tentativa de reiniciar o cluster durante esse processo pode interromper o processo de desligamento e potencialmente causar problemas com o cluster ou suas cargas de trabalho.

  1. Use o az aks start comando para iniciar um cluster AKS interrompido. O cluster é reiniciado com o estado do plano de controle anterior e o número de nós do agente. O exemplo a seguir inicia um cluster chamado myAKSCluster:

    az aks start --name myAKSCluster --resource-group myResourceGroup
    
  2. Verifique se o cluster começou a usar o az aks show comando e confirmar os powerState shows Running.

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

    Sua saída deve ser semelhante à seguinte saída de exemplo condensada:

    {
    [...]
      "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2",
      "powerState":{
        "code":"Running"
     },
     "privateFqdn": null,
     "provisioningState": "Succeeded",
     "resourceGroup": "myResourceGroup",
    [...]
    }
    

    Se o provisioningState Startingcluster for exibido , o cluster ainda não foi totalmente iniciado.

Próximos passos