Перейти к содержимому

Workload Availability (HA)

Availability добавляет существующему Container, Deployment или Compose Project несколько размещений на независимых Docker-узлах. Gateway сохраняет идентичность ресурса, его конфигурацию и связи, а экземпляры среды выполнения создаёт и заменяет согласно политике доступности.

Функция доступна на Business и Enterprise. Управляйте экземплярами через исходный ресурс, а не как отдельными Containers: политика отвечает за число размещений, их поколения, подключение к маршрутизации и очистку.

Режим Как работает Когда использовать
Replicated Поддерживает 2–32 обслуживающих размещения, не более одного на узле Приложение допускает одновременную работу нескольких экземпляров
Failover Поддерживает одно обслуживающее размещение и создаёт замену после потери его узла Нужен один обслуживающий экземпляр с восстановлением на другом узле

Без включённой Availability ресурс продолжает обычный одноузловой жизненный цикл. Для Compose каждое размещение содержит проект целиком: Gateway не распределяет отдельные службы одного экземпляра по разным узлам.

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

Для включения нужны как минимум два подключённых совместимых Docker-узла. Подготовьте достаточную ёмкость для нужного числа реплик и временных экземпляров при обновлении.

Нагрузка не должна содержать настроенных или обнаруженных монтирований: именованных, внешних, доступных только для чтения томов или привязок каталогов хоста. Для Compose проверяется весь проект. Постоянные данные должны находиться в отдельных службах; Availability не копирует локальные данные между узлами.

Gateway закрепляет образы по репозиторию и дайджесту во внутреннем реестре и заранее загружает их на подходящие резервные узлы. Проверьте доступность реестра, Relay и Secure Links, а также зависимых управляемых баз данных.

  1. Откройте Container, Deployment или Compose Project и раздел Availability.
  2. Нажмите Check eligibility и устраните причины несовместимости.
  3. Включите Enable, выберите Mode. Для Replicated задайте Serving placements.
  4. В Eligible nodes выберите All compatible nodes или Selected nodes с явным списком узлов.
  5. Проверьте параметры замены и обновления, затем нажмите Save. При первом включении прочитайте предупреждение Tech Preview и подтвердите Enable Tech Preview.
  6. Следите за операцией и списком Placements, пока число обслуживающих экземпляров не достигнет заданного.
  7. Проверьте реальный запрос через Route, доступ к базе данных и журналы приложения.

Изменение переключателя само по себе не применяет политику: для этого нужен Save. Успешное сохранение означает принятие желаемого состояния, а не завершение создания экземпляров.

  • Replacement grace — время ожидания после потери управляющего соединения с узлом до создания замены. По умолчанию — 15 секунд; подготовка образа, запуск и проверка состояния требуют дополнительного времени.
  • Maximum unavailable — сколько размещений плановое обновление может одновременно сделать недоступными.
  • Maximum surge — сколько временных размещений можно создать сверх заданного числа. Для них нужна дополнительная ёмкость.
  • Drain interval — время между исключением размещения из новой маршрутизации и его остановкой, отведённое на завершение текущих соединений.

Proxy Hosts, Additional Routes и Advanced Secure Links могут обращаться к логической нагрузке. Gateway подставляет адреса исправных размещений и распределяет новые входящие соединения по наименьшему числу активных соединений. Уже установленные соединения не переносятся между репликами.

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

После потери управляющего соединения Gateway ждёт Replacement grace и создаёт замену на подходящем доступном узле. Если нужное число экземпляров не восстанавливается, проверьте этап операции, совместимость и ёмкость узлов, загрузку образа, состояние приложения и приватные зависимости.

Недоступный хост может продолжать исполнять старый процесс. Gateway исключает устаревшее поколение из управляемой маршрутизации и согласует его состояние после подключения. Это не физическое отключение узла и не гарантия единственного писателя во внешнюю систему.

Для замены нужен работающий контур управления Gateway. Availability не обеспечивает отказоустойчивость самого Gateway, nginx, движков баз данных, хранилища реестра или общих томов. Отдельно проверяйте отказоустойчивость пути Relay и каждой зависимости.

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

Выключите Enable и сохраните изменение. В диалоге Disable Availability выберите Surviving placement, введите имя нагрузки для подтверждения и нажмите Disable and keep one.

Дождитесь завершения операции и очистки остальных размещений. Проверьте оставшийся экземпляр, Routes и привязки баз данных: ресурс должен продолжить работу в обычном одноузловом режиме.