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

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

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

Как AKS проверяет наличие узлов NotReady

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

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

Вы можете вручную проверить состояние работоспособности узлов с помощью kubectl get nodes команды.

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

Примечание.

AKS инициирует операции восстановления с помощью учетной записи пользователя aks-remediator.

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

  1. Пытается перезапустить узел.
  2. Если перезагрузка узла завершается неудачно, AKS переимежает узел.
  3. Если повторное создание не удалось, и это узел Linux, AKS повторно развертывает узел.

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

Примечание.

Автоматическое восстановление не активируется, если на узле node.cloudprovider.kubernetes.io/shutdownToBeDeletedByClusterAutoscaler присутствуют следующие фрагменты.

Общий процесс автоматического восстановления может занять до часа. AkS повторяет попытку в течение максимум 3 раз для каждого шага.

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

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

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

Мероприятие Description Действие
Блокировка виртуальная машина будет приостановлена на несколько секунд. Подключение к ЦП и сети может быть приостановлено, но не влияет на память или открытые файлы. Никаких действий не выполняется.
Перезагрузка виртуальная машина будет перезагружена. Временная память виртуальной машины будет потеряна. Никаких действий не выполняется.
Повторное развертывание виртуальная машина будет перемещена на другой узел. Временные диски виртуальной машины будут потеряны. Кордон и слив.
Выгрузка Выполняется удаление точечной виртуальной машины. Временные диски виртуальной машины будут потеряны. Блокировка и остановка
Увольнение Виртуальная машина запланирована на удаление. Кордон и слив.

Ограничения

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

  • Состояние узла не сообщается из-за ошибки в конфигурации сети.
  • Не удалось первоначально зарегистрировать узел в качестве работоспособного узла.

Автодрайн узла — это служба лучших усилий и не может быть гарантирована идеальной работы во всех сценариях.

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

Используйте зоны доступности для повышения уровня доступности с помощью рабочих нагрузок кластера AKS.