Поделиться через


Остановка и запуск кластера Служба Azure Kubernetes (AKS)

Возможно, вам не нужно постоянно запускать рабочие нагрузки Служба Azure Kubernetes (AKS). Например, у вас может быть кластер разработки, который используется только в рабочее время. Это означает, что кластер может находиться в состоянии простоя, не выполняя ничего больше, чем системные компоненты. Вы можете уменьшить объем ресурсов кластера, масштабируя все User пулы узлов до 0, но System пул по-прежнему необходим для запуска системных компонентов во время работы кластера.

Чтобы оптимизировать затраты в течение этих периодов, можно отключить или остановить кластер. Это действие останавливает узлы уровня управления и агента, что позволяет сэкономить на всех затратах на вычисления, сохраняя все объекты, кроме автономных модулей pod. Состояние кластера сохраняется при повторном запуске, что позволяет выбрать место, где вы оставили.

Внимание

Остановка кластера освобождает плоскость управления и освобождает емкость. В регионах с ограничениями емкости клиенты могут не запускать остановленный кластер. По этой причине не рекомендуется останавливать критически важные рабочие нагрузки.

Примечание.

Операции запуска AKS восстанавливают все объекты из ETCD, за исключением автономных модулей pod с одинаковыми именами и возрастами. означает, что возраст модуля pod будет вычислен с момента его первоначального создания. Это число будет продолжать увеличиваться с течением времени независимо от того, находится ли кластер в остановленном состоянии.

Подготовка к работе

В этой статье предполагается, что у вас есть существующий кластер AKS. Если вам нужен кластер AKS, можно создать его с помощью Azure CLI, Azure PowerShell или портал Azure.

Сведения о функции остановки и запуска кластера

При использовании функции остановки и запуска кластера применяются следующие условия:

  • Эта функция поддерживается только для кластеров с поддержкой масштабируемого набора виртуальных машин.
  • Вы не можете остановить кластеры, использующие функцию автоматической подготовки узлов (NAP ).
  • Состояние остановленного кластера AKS сохраняется в течение 12 месяцев. Если кластер остановлен более чем на 12 месяцев, вы не сможете восстановить состояние. Дополнительные сведения см. в политиках поддержки AKS.
  • Вы можете выполнять только операции запуска или удаления в остановленном кластере AKS. Для выполнения других операций, таких как масштабирование или обновление, необходимо сначала запустить кластер.
  • Если вы подготовили PrivateEndpoints, связанные с частными кластерами, их необходимо удалить и повторно создать при запуске остановленного кластера AKS.
  • Так как процесс остановки завершает работу всех узлов, автономные модули (т. е. объекты pod, которые не управляются развертыванием, StatefulSet, DaemonSet, заданием и т. д.) будут удалены
  • При запуске резервного копирования кластера ожидается следующее поведение:
    • IP-адрес сервера API может измениться.
    • Если вы используете автомасштабирование кластера, при запуске кластера текущее число узлов может не находиться между заданными значениями минимального и максимального диапазона. Кластер запускается с тем числом узлов, которое необходимо для выполнения рабочих нагрузок, на что параметры средства автомасштабирования не влияют. Когда кластер выполняет операции масштабирования, минимальное и максимальное значения повлияют на текущее число узлов, и в конечном счете кластер войдет в нужный диапазон и останется в нем, пока не будет остановлен.

Остановка кластера AKS

  1. az aks stop Используйте команду, чтобы остановить запущенный кластер AKS, включая узлы и плоскость управления. В следующем примере останавливается кластер myAKSCluster:

    az aks stop --name myAKSCluster --resource-group myResourceGroup
    
  2. Убедитесь, что кластер перестал использовать az aks show команду и подтвердите powerState отображение как Stopped.

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

    Выходные данные должны выглядеть примерно так:

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

    Если отображается provisioningState Stopping, кластер еще не остановился.

Внимание

Если вы используете Pod Disruption Budgets, операция остановки может занять больше времени, так как процесс очистки будет выполняться дольше.

Запуск кластера AKS

Внимание

После использования функции запуска и остановки в AKS важно ждать 15–30 минут перед перезапуском кластера AKS. Этот период ожидания необходим, так как требуется несколько минут для полной остановки соответствующих служб. Попытка перезапустить кластер во время этого процесса может нарушить процесс завершения работы и потенциально вызвать проблемы с кластером или ее рабочими нагрузками.

  1. az aks start Используйте команду, чтобы запустить остановленный кластер AKS. Кластер перезапускается с состоянием предыдущей плоскости управления и количеством узлов агента. В следующем примере запускается кластер myAKSCluster:

    az aks start --name myAKSCluster --resource-group myResourceGroup
    
  2. Убедитесь, что кластер начал использовать az aks show команду и подтвердите powerState отображение Running.

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

    Выходные данные должны выглядеть примерно так:

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

    Если отображается provisioningState Starting, кластер еще не запущен.

Следующие шаги