Автоматическое восстановление узлов Службы 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 выполняет следующие действия:
- Пытается перезапустить узел.
- Если перезагрузка узла завершается неудачно, AKS переимежает узел.
- Если повторное создание не удалось, и это узел Linux, AKS повторно развертывает узел.
Инженеры AKS исследуют альтернативные исправления, если автоматическое восстановление завершается неудачно.
Примечание.
Автоматическое восстановление не активируется, если на узле node.cloudprovider.kubernetes.io/shutdown
ToBeDeletedByClusterAutoscaler
присутствуют следующие фрагменты.
Общий процесс автоматического восстановления может занять до часа. AkS повторяет попытку в течение максимум 3 раз для каждого шага.
Автоматическое очистка узла
Запланированные события могут возникать на базовых виртуальных машинах в любом из пулов узлов. Для пулов точечных узловзапланированные события могут вызвать событие вытеснения для узла. Некоторые события узла, такие как предварительная версия, вызывают автоматическое очистку узла AKS для попытки кордона и очистки затронутого узла. Этот процесс позволяет перепланировать все затронутые рабочие нагрузки на этом узле. Вы можете заметить, что узел получает ненамеренное значение "remediator.kubernetes.azure.com/unschedulable"
из-за "kubernetes.azure.com/scalesetpriority: spot"
.
В следующей таблице показаны события узла и действия, которые они вызывают для автоматического очистки узла AKS:
Мероприятие | Description | Действие |
---|---|---|
Блокировка | виртуальная машина будет приостановлена на несколько секунд. Подключение к ЦП и сети может быть приостановлено, но не влияет на память или открытые файлы. | Никаких действий не выполняется. |
Перезагрузка | виртуальная машина будет перезагружена. Временная память виртуальной машины будет потеряна. | Никаких действий не выполняется. |
Повторное развертывание | виртуальная машина будет перемещена на другой узел. Временные диски виртуальной машины будут потеряны. | Кордон и слив. |
Выгрузка | Выполняется удаление точечной виртуальной машины. Временные диски виртуальной машины будут потеряны. | Блокировка и остановка |
Увольнение | Виртуальная машина запланирована на удаление. | Кордон и слив. |
Ограничения
Во многих случаях AKS может определить, неработоспособен ли узел и попытаться устранить проблему. Однако существуют случаи, когда AKS либо не может исправить проблему, либо обнаружить, что проблема существует. Например, AKS не может обнаруживать проблемы в следующих примерах сценариев:
- Состояние узла не сообщается из-за ошибки в конфигурации сети.
- Не удалось первоначально зарегистрировать узел в качестве работоспособного узла.
Автодрайн узла — это служба лучших усилий и не может быть гарантирована идеальной работы во всех сценариях.
Следующие шаги
Используйте зоны доступности для повышения уровня доступности с помощью рабочих нагрузок кластера AKS.
Azure Kubernetes Service