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.

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 provisioningStateStoppingcluster for exibido, o cluster ainda não parou totalmente.

Importante

Se você estiver usando orçamentos de interrupção de pod, a operação de parada pode levar mais tempo, pois o processo de drenagem levará mais tempo para ser concluído.

Iniciar um cluster AKS

Atenção

Não pare e inicie seus clusters repetidamente. Isso pode resultar em erros. Depois que o cluster for interrompido, você deverá aguardar pelo menos 15 a 30 minutos antes de iniciá-lo novamente.

  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 provisioningStateStartingcluster for exibido , o cluster ainda não foi totalmente iniciado.

Próximos passos