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


Автоматическое восстановление узлов Службы 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. AKS перезагружает узел.
  2. Если узел остается неработоспособным после перезагрузки, AKS переобразует узел.
  3. Если узел остается нездоровым после переустановки и он является узлом Linux, AKS повторно развертывает узел.

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

Ограничения

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

Существуют случаи, когда AKS не выполняет автоматическое восстановление. Сбой автоматического восстановления узла может произойти либо путем разработки, либо если Azure не может обнаружить, что возникла проблема. Примеры, когда автоматическое восстановление не выполняется, включают:

  • Состояние узла не сообщается из-за ошибки в конфигурации сети.
  • Не удалось первоначально зарегистрировать узел в качестве работоспособного узла.
  • Если на узле присутствует любая из следующих меток: node.cloudprovider.kubernetes.io/shutdown, ToBeDeletedByClusterAutoscaler.
  • Узел находится в процессе обновления, что приводит к следующей аннотации на узле "cluster-autoscaler.kubernetes.io/scale-down-disabled": "true" и "kubernetes.azure.com/azure-cluster-autoscaler-scale-down-disabled-reason": "upgrade".

Мониторинг автоматического восстановления узла с помощью событий Kubernetes

Когда AKS выполняет автоматическое восстановление узла в кластере, AKS выдает события Kubernetes из источника aks-auto-repair для обеспечения видимости. Следующие события отображаются в объекте узла при автоматическом восстановлении.

Дополнительные сведения о доступе, хранении и настройке оповещений на события Kubernetes см. в Использование событий Kubernetes для устранения неполадок в Службе Azure Kubernetes.

Причина Сообщение о событии Описание
NodeRebootStart Автоматическое восстановление узла инициирует действие перезагрузки из-за сохранения состояния NotReady в течение более 5 минут. Это событие инициируется для уведомления вас о предстоящей перезагрузке вашего узла. Это действие является первым в общей последовательности автоматического восстановления узла.
Завершение перезагрузки узла Действие перезагрузки из автоматического восстановления узла завершено. Издается после завершения перезагрузки в узле. Это событие не указывает состояние работоспособности узла (работоспособное или неработоспособное) после выполнения перезагрузки.
NodeReimageStart Автоматическое восстановление узла инициирует действие повторного создания образа из-за сохранения состояния NotReady в течение более 5 минут. Это событие создается, чтобы уведомить вас, когда на вашем узле будет выполнена переустановка системы.
NodeReimageEnd Действие повторного воспроизведения из автоматического восстановления узла завершено. Событие генерируется после завершения восстановления образа на узле. Это событие не указывает состояние работоспособности узла (работоспособное или неработоспособное) после выполнения повторного просмотра.
NodeRedeployStart Автоматическое восстановление узла инициирует действие повторного развертывания из-за сохранения состояния NotReady более 5 минут. Это событие создается, чтобы уведомить вас, когда повторное развертывание на вашем узле собирается произойти. Повторное развертывание — это последнее действие в последовательности автоматического восстановления узла.
NodeRedeployEnd Завершено выполнение действия повторного развертывания в рамках автоматического восстановления узла. Отправляется после завершения повторного развертывания на узле. Это событие не указывает состояние работоспособности узла (работоспособное или неработоспособное) после повторного развертывания.

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

Примечание.

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

Причина Сообщение о событии Описание
NodeRebootError Попытка перезагрузки для автоматического восстановления узла не удалась из-за сбоя операции. См. сведения об ошибке здесь: код ошибки Выдается при возникновении ошибки в действии перезагрузки.
NodeReimageError Действие автоматического восстановления образа узла не удалось из-за сбоя операции. См. сведения об ошибке здесь: код ошибки Вызывается при возникновении ошибки во время повторного создания образа.
NodeRedeployError Не удалось выполнить автоматическое восстановление узла в результате сбоя операции. См. сведения об ошибке здесь: код ошибки Создаётся сигнал об ошибке при повторном развертывании.

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

По умолчанию вы можете получить доступ к событиям и журналам Kubernetes в кластере AKS за последние 1 час. Чтобы хранить и запрашивать события и журналы за последние 90 дней, включите Службу Аналитики контейнеров для более глубокого устранения неполадок в кластере AKS.