Остановка и запуск кластера Служба 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
az aks stop
Используйте команду, чтобы остановить запущенный кластер AKS, включая узлы и плоскость управления. В следующем примере останавливается кластер myAKSCluster:az aks stop --name myAKSCluster --resource-group myResourceGroup
Убедитесь, что кластер перестал использовать
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. Этот период ожидания необходим, так как требуется несколько минут для полной остановки соответствующих служб. Попытка перезапустить кластер во время этого процесса может нарушить процесс завершения работы и потенциально вызвать проблемы с кластером или ее рабочими нагрузками.
az aks start
Используйте команду, чтобы запустить остановленный кластер AKS. Кластер перезапускается с состоянием предыдущей плоскости управления и количеством узлов агента. В следующем примере запускается кластер myAKSCluster:az aks start --name myAKSCluster --resource-group myResourceGroup
Убедитесь, что кластер начал использовать
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
, кластер еще не запущен.
Следующие шаги
- Чтобы узнать, как масштабировать пулы
User
до 0, см. раздел Масштабирование пуловUser
до 0. - Сведения о том, как сократить расходы с помощью точечных экземпляров, см. в разделе Добавление пула точечных узлов в AKS.
- Дополнительные сведения о политиках поддержки AKS см. в разделе Политики поддержки AKS.
Azure Kubernetes Service