Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Compute Cloud
  • Yandex Container Solution
    • Взаимосвязь ресурсов
    • Графические ускорители GPU
    • Образы
      • Обзор
      • Доступ
      • YAML-спецификация
      • Шаблон виртуальной машины
      • Переменные в шаблоне виртуальной машины
      • Типы масштабирования
      • Проверки и автовосстановление ВМ
      • Интеграция с сетевыми и L7-балансировщиками
      • Работа со Stateful-нагрузкой
      • Остановка группы и приостановка процессов
      • Поочередные перезагрузка и пересоздание ВМ в группе
      • Статусы
    • Выделенный хост
    • Шифрование
    • Резервное копирование
    • Квоты и лимиты
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы

В этой статье:

  • Типы проверок
  • Проверка, что ВМ работает
  • Проверка состояния приложения на ВМ
  • Особенности автоматического восстановления
  • Восстановление и политики развертывания
  • Изменение статуса ВМ при восстановлении
  • Восстановление при обновлении конфигураций ВМ
  • Восстановление при изменении размера группы
  • Восстановление прерываемых ВМ
  1. Концепции
  2. Группы виртуальных машин
  3. Проверки и автовосстановление ВМ

Проверки и автоматическое восстановление виртуальных машин в группе

Статья создана
Yandex Cloud
Обновлена 26 сентября 2024 г.
  • Типы проверок
    • Проверка, что ВМ работает
    • Проверка состояния приложения на ВМ
  • Особенности автоматического восстановления
    • Восстановление и политики развертывания
    • Изменение статуса ВМ при восстановлении
    • Восстановление при обновлении конфигураций ВМ
    • Восстановление при изменении размера группы
    • Восстановление прерываемых ВМ

Instance Groups регулярно проверяет, что виртуальные машины в вашей группе работают корректно. Если ВМ остановилась или приложение слишком долго отвечает, Instance Groups попробует восстановить эту ВМ — перезапустит ее или создаст новую, в зависимости от политики восстановления. ВМ будут автоматически восстанавливаться согласно политике развертывания.

Примечание

Если для группы ВМ приостановлены процессы (статус PAUSED), ВМ не восстанавливаются.

Типы проверокТипы проверок

Для автоматического восстановления Instance Groups выполняет проверки двух типов:

  • Проверка, что ВМ работает.
  • Проверка состояния приложения на ВМ.

Не путайте эти проверки с проверкой состояния от балансировщика нагрузки, которая выполняется, если группа ВМ интегрирована с Yandex Network Load Balancer или Yandex Application Load Balancer. Проверка от балансировщика влияет только на процесс развертывания: когда во время запуска ВМ перейдет в статус OPENING_TRAFFIC, Instance Groups будет ждать, пока в балансировщике состояние ВМ станет HEALTHY, после этого Instance Groups прекратит следить за состоянием ВМ в балансировщике. При этом для проверки от балансировщика тоже можно настроить автоматическое восстановление ВМ. Подробнее см. в разделе Проверки состояния от балансировщиков.

Проверка, что ВМ работаетПроверка, что ВМ работает

Instance Groups раз в несколько секунд автоматически проверяет статус ВМ в Compute Cloud. Если ВМ остановилась или произошла ошибка (статусы STOPPED, ERROR, CRASHED), Instance Groups попробует перезапустить ее или создаст новую ВМ, в зависимости от политики восстановления. ВМ будут восстанавливаться в зависимости от политики развертывания.

Проверка состояния приложения на ВМПроверка состояния приложения на ВМ

Эта проверка позволит обнаружить, что приложение на вашей ВМ зависло, завершило работу или слишком долго отвечает. Вы можете включить проверку состояния приложения при создании или изменении ВМ.

Если вы включили эту проверку, Instance Groups будет с заданной периодичностью опрашивать статус приложения на ВМ все время, пока группа ВМ находится в статусе ACTIVE.

Рекомендации для групп с балансировщиком нагрузкиРекомендации для групп с балансировщиком нагрузки

Если группа ВМ интегрирована с Network Load Balancer или Application Load Balancer, то для проверки в Instance Groups выставляйте более мягкие настройки, чем для проверки состояния в балансировщике (подробнее о проверках см. в документации Network Load Balancer или Application Load Balancer). Балансировщик распределяет нагрузку на приложение, а Instance Groups только следит за работоспособностью приложения.

Например, если в балансировщике вы задали время ожидания ответа — 1 секунда, то в Instance Groups выставьте 30 секунд. Если приложение не отвечает 3-5 секунд, возможно, оно не справляется с текущим потоком трафика. А если приложение не отвечает более 30 секунд, скорее всего, оно совсем не работает и ВМ необходимо восстановить.

Настройки проверок состояния приложенияНастройки проверок состояния приложения

Проверки состояния приложения на ВМ можно настроить в консоли управления или описать в YAML-спецификации группы, чтобы передать спецификацию через один из программных инструментов — интерфейс командной строки (CLI) или API Yandex Cloud.

Примечание

В YAML-спецификации можно настроить несколько разных проверок, например запросы на разные порты, — ВМ в группе должна будет проходить их все, чтобы считаться «здоровой». Через консоль управления настраивается только одна проверка.

Настройки можно указать при создании или изменении группы.

Ниже описаны поля с настройками в YAML-спецификации и соответствующие им поля в консоли управления.

health_checks_spec:
  health_check_specs:
    - interval: 2s
      timeout: 1s
      unhealthy_threshold: 2
      healthy_threshold: 2
      http_options:
        port: 8081
        path: "/_hz"
    - interval: 2s
      timeout: 1s
      unhealthy_threshold: 2
      healthy_threshold: 2
      tcp_options:
        port: 8080
  max_checking_health_duration: 25s

Поля и опции в консоли управления находятся в блоке Проверка состояний на страницах создания и редактирования группы ВМ.

Ключ в YAML
Поле или опция в консоли
Описание
health_checks_spec
Активировать
Настройки проверок состояния приложений. Если ключа нет в YAML-спецификации или опция в консоли управления отключена, проверки не будут выполняться.
health_checks_specs Список проверок состояния. Если проверки включены, в списке должна быть хотя бы одна проверка. В YAML-спецификации можно настроить несколько проверок, в консоли управления — только одну.
interval
Интервал, c
Интервал между двумя последовательными проверками от 1 до 300 секунд. Должен быть больше времени ожидания хотя бы на 1 секунду. Значение по умолчанию — 2 секунды (2s).
timeout
Время ожидания, c
Таймаут проверки от 1 до 60 секунд: если ВМ не ответила на проверку в течение этого времени, она не прошла проверку. Значение по умолчанию — 1 секунда (1s).
unhealthy_threshold
Порог неработоспособности
Количество последовательных непройденных проверок, после которого ВМ считается «нездоровой» и будет автоматически восстановлена. Возможные значения — 0 и от 2 до 10. Значение по умолчанию — 2. Значение 0 равносильно значению по умолчанию.
healthy_threshold
Порог работоспособности
Количество последовательных пройденных проверок, после которого ВМ считается «здоровой». Возможные значения — 0 и от 2 до 10. Значение по умолчанию — 2. Значение 0 равносильно значению по умолчанию.
http_options
Тип — HTTP
Настройки проверки состояния по протоколу HTTP. Проверка состояния проводится либо по HTTP, либо по TCP, поэтому в описании проверки в YAML-конфигурации должен быть только один из ключей http_options и tcp_options.
port
Порт
Порт от 1 до 65535, на который будут отправляться проверочные запросы по HTTP.
path
Путь
Путь, по которому будут отправляться проверочные запросы по HTTP.
tcp_options
Тип — TCP
Настройки проверки состояния по протоколу TCP. Проверка состояния проводится либо по HTTP, либо по TCP, поэтому в описании проверки в YAML-конфигурации должен быть только один из ключей http_options и tcp_options.
port
Порт
Порт от 1 до 65535, на который будут отправляться проверочные запросы по TCP.
max_checking_health_duration
Время ожидания первой проверки
Время, в течение которого новая ВМ в группе (добавленная в группу или запущенная после остановки) должна пройти проверки состояния и стать «здоровой». Возможные значения — 0 и от 1 секунды. Значение по умолчанию — 0: время ожидания не ограничено.

Особенности автоматического восстановленияОсобенности автоматического восстановления

Восстановление и политики развертыванияВосстановление и политики развертывания

Для восстановления ВМ Instance Groups может пересоздавать или перезапускать ВМ. Какой метод восстановления использовать, определено настройками политики развертывания.

  • Создание новых ВМ
    Instance Groups будет создавать новые ВМ вместо тех, которые не прошли проверку, если в настройках политики развертывания разрешено превышение целевого размера группы. Задать максимальное количество ВМ, на которое разрешено превысить целевой размер группы, можно с помощью параметра max_expansion. Допустимые значения: от 0 до 100. Тогда Instance Groups сначала создаст новую ВМ, дождется, пока она пройдет все проверки, а затем удалит ВМ, которая не прошла проверку.

    При приведении количества ВМ в группе к целевому значению, созданные по квоте max_expansion ВМ могут остаться в группе, в то время как ВМ, существовавшие в группе до этого, могут быть удалены, даже если они прошли все проверки.

  • Перезагрузка ВМ
    Instance Groups будет перезагружать ВМ, которые не прошли проверку, если в настройках политики развертывания разрешено уменьшение целевого размера группы. Задать максимальное количество ВМ, которые разрешается сделать недоступными одновременно, можно с помощью параметра max_unavailable. Допустимые значения: от 0 до 100. Instance Groups будет стремиться не превышать этого значения при автоматическом восстановлении.

    Это ограничение не действует на ВМ в статусах CRASHED, ERROR и STOPPED, так как в этих случаях ВМ уже считается недоступной и должна быть перезагружена немедленно.

Если одновременно задать значения max_expansion и max_unavailable, Instance Groups будет использовать оба метода восстановления.

ВМ, которая полностью загрузилась и находится в статусе RUNNING_ACTUAL или RUNNING_OUTDATED, считается запущенной с точки зрения квоты max_unavailable, даже если она не прошла проверку состояния. Чтобы автоматически остановить такую ВМ, требуется свободная квота max_unavailable.

Дополнительные ВМ создаются по квоте max_expansion только в тех случаях, когда не хватает квоты max_unavailable. Другими словами, перезагрузка ВМ приоритетнее, чем создание новых ВМ.

Например, вы указали max_expansion = 1 и max_unavailable = 1. Когда одна из ВМ не пройдет проверку, Instance Groups начнет перезапускать эту ВМ. Если в это же время еще одна ВМ не пройдет проверку, Instance Groups не сможет ее перезагрузить из-за превышения параметра max_unavailable. Поэтому начнется создание новой машины параллельно с перезапуском первой ВМ.

Чтобы ограничить скорость восстановления и развертывания, вы также можете задать:

  • Максимальное количество ВМ, которые вводятся в эксплуатацию одновременно, в значении параметра max_creating. Учитываются создаваемые и запускаемые ВМ в статусах CREATING и STARTING.

    Допустимые значения: от 0 до 100. Значение 0 — любое количество ВМ в рамках допустимых значений.

  • Максимальное количество ВМ, которые выводятся из эксплуатации одновременно, в значении параметра max_deleting. Учитываются останавливаемые ВМ в статусе STOPPING, так как при удалении ВМ Instance Groups сначала останавливает ее.

    Допустимые значения: от 0 до 100. Значение 0 — любое количество ВМ в рамках допустимых значений.

Изменение статуса ВМ при восстановленииИзменение статуса ВМ при восстановлении

Instance Groups не будет восстанавливать ВМ, если это уже не требуется.

Например, если в группе из 10 ВМ все 10 стали недоступны, то при max_unavailable = 3 Instance Groups перезапустит первые три ВМ. Если в это время остальные семь ВМ снова станут работоспособны, то Instance Groups не будет перезапускать их.

При max_expansion = 3 Instance Groups запустит создание трех новых ВМ. Старые ВМ не удаляются до тех пор, пока не будут созданы новые. Если в процессе создания все ВМ в группе снова станут работоспособны, то Instance Groups отменит создание новых ВМ.

При приведении количества ВМ в группе к целевому значению, созданные по квоте max_expansion ВМ могут остаться в группе, в то время как ВМ, существовавшие в группе до этого, могут быть удалены, даже если они работоспособны.

Восстановление при обновлении конфигураций ВМВосстановление при обновлении конфигураций ВМ

Восстановление ВМ имеет более высокий приоритет, чем обновление конфигурации ВМ.

Допустим, у вас группа из 100 ВМ, а значение max_unavailable = 1. Когда вы обновите конфигурацию ВМ в группе, Instance Groups будет по очереди перезапускать машины, обновляя конфигурацию на них.

Если в этот момент одна из ВМ не пройдет проверку состояния приложения, то Instance Groups поставит ее первой в очереди на перезапуск.

Восстановление при изменении размера группыВосстановление при изменении размера группы

При уменьшении целевого размера группы в первую очередь удаляются те ВМ, которые не прошли проверку (если такие есть).

При увеличении целевого размера группы новые ВМ будут создаваться параллельно с восстановлением ВМ, не прошедших проверку, если это позволяют параметры max_creating и max_expansion:

Допустим, в группе 2 из 4 ВМ не прошли проверку состояния приложения. В этот момент целевой размер группы увеличился до 6 ВМ. Две ВМ необходимо создать, еще две восстановить.

Если max_expansion = 1, а max_creating не задано, то Instance Groups начнет создавать сразу три ВМ: две в рамках увеличения группы, одну в рамках восстановления.

Восстановление прерываемых ВМВосстановление прерываемых ВМ

Автоматическое восстановление прерываемых ВМ будет происходить только, если в зоне доступности для этого достаточно вычислительных ресурсов. Если ресурсов недостаточно, Instance Groups продолжит автоматическое восстановление, когда появятся свободные ресурсы, но этот процесс может занять продолжительное время.

Прерываемые ВМ должны быть принудительно остановлены через 24 часа с момента запуска. Однако в таком случае есть риск, что вся группа ВМ перезапустится одновременно и перестанет обслуживать нагрузку запущенных приложений. Чтобы избежать этого, Instance Groups останавливает прерываемые ВМ в группе не ровно через 24 часа, а через случайный момент времени — от 22 до 24 часов.

См. такжеСм. также

  • Настроить проверку состояния приложения на ВМ.

Была ли статья полезна?

Предыдущая
Типы масштабирования
Следующая
Обзор
Проект Яндекса
© 2025 ООО «Яндекс.Облако»