Partilhar via


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 a funcionalidade de iniciar/parar do cluster

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

  • Este recurso só é suportado para clusters baseados em Conjunto de Escala de Máquina Virtual.
  • Não é possível parar clusters que usam o recurso NAP (Autoprovisionamento de Nós).
  • O estado 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 paragem drena todos os nós, todos os pods autónomos (ou seja, pods não geridos 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 comando az aks show e confirme que o powerState apresenta 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 mostrar Stopping, o seu 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 drenagem 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 reinicia com o estado anterior do plano de controlo e o número de nós dos agentes. O exemplo a seguir inicia um cluster chamado myAKSCluster:

    az aks start --name myAKSCluster --resource-group myResourceGroup
    
  2. Verifique se o cluster começou usando o comando az aks show e confirmando que o powerState mostre 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 mostrar Starting, o seu cluster ainda não foi totalmente iniciado.

Próximos passos