Автоматическое восстановление узлов Службы Azure Kubernetes (AKS)

AKS постоянно проверяет состояние работоспособности рабочих узлов и выполняет автоматическое восстановление узлов, если они становятся неработоспособными. Платформа виртуальных машин Azure выполняет обслуживание виртуальных машин, на которых возникают проблемы.

AKS и Виртуальные машины Azure работают вместе, чтобы минимизировать сбои в работе кластеров.

В этом документе описывается, как функция автоматического восстановления узлов применяется к узлам Windows и Linux.

Как AKS проверяет наличие неработоспособных узлов

AKS использует приведенные ниже правила, чтобы определить, является ли узел неработоспособным и требуется ли его восстановить.

  • Узел сообщает о состоянии NotReady при последовательных проверках в течение 10 минут.
  • Узел не сообщает о состоянии в течение 10 минут.

Состояние работоспособности узлов можно проверить вручную с помощью kubectl.

kubectl get nodes

Принцип работы автоматического восстановления

Примечание

AKS инициирует операции восстановления с помощью учетной записи пользователя aks-remediator. Минимально необходимые узлы в кластере AKS для автоматического восстановления — 2.

Если служба AKS выявляет неработоспособный узел, который остается таковым в течение 10 минут, то она выполняет следующие действия:

  1. Перезагружает узел.
  2. Если перезагрузку выполнить не удалось, пересоздает образ узла.
  3. Если пересоздать образ не удалось, выполняет повторное развертывание узла.

Если автоматическое восстановление завершилось неудачно, то инженеры AKS изучают альтернативные методы исправления.

Если во время проверки работоспособности AKS обнаруживает несколько неработоспособных узлов, то меры по исправлению выполняются для каждого из них по очереди.

Автоматическая остановка узлов

Запланированные события могут возникать на базовых виртуальных машинах в любом из пулов узлов. Для пулов точечных узловзапланированные события могут вызвать событие вытеснения для узла. Определенные события узла, такие как вытеснение, приводят к тому, что функция автоматической остановки узлов AKS пытается блокировать и остановить затронутый узел, что позволяет корректно изменить расписание всех затронутых рабочих нагрузок на этом узле. В этом случае узел получит отметку "remediator.aks.microsoft.com/unschedulable" из-за "kubernetes.azure.com/scalesetpriority: spot".

В следующей таблице показаны события узла и действия, которые они вызывают для автоматической остановки узлов AKS.

Событие Описание Действие
Freeze виртуальная машина будет приостановлена на несколько секунд. Работа ЦП и сетевого подключения может быть приостановлена, но это не повлияет на память и открытые файлы. Нет действий
Перезагрузка виртуальная машина будет перезагружена. Временная память виртуальной машины будет потеряна. Нет действий
Повторное развертывание виртуальная машина будет перемещена на другой узел. Временные диски виртуальной машины будут потеряны. Блокировка и остановка
Выгрузка Выполняется удаление точечной виртуальной машины. Временные диски виртуальной машины будут потеряны. Блокировка и остановка
Завершение Виртуальная машина будет запланирована к удалению. Блокировка и остановка

Ограничения

Во многих случаях AKS может определить, является ли узел неработоспособным, и попытаться устранить проблему. Однако бывают случаи, когда AKS либо не может устранить проблему, либо не может обнаружить ее наличие. Например, AKS не может обнаруживать проблемы, если состояние узла не передается из-за ошибки в конфигурации сети или узел изначально не удалось зарегистрировать в качестве работоспособного.

Дальнейшие действия

Примените Зоны доступности, чтобы повысить уровень доступности для рабочих нагрузок кластера AKS.