береженого кольт бережет
береженого кольт бережет

Использование ПЛАВАЮЩИХ IP адресов

Плавающий IP – публичный статический IP-адрес, который можно присвоить одному из ваших серверов. Плавающие IP-адреса быстро переназначать (обычно с помощью панели управления или API) – передавать между машинами в одном датацентре. Эта функция мгновенного переопределения даёт возможность проектировать и создавать инфраструктуру серверов высокой доступности (HA), не имеющую единой точки отказа, путем добавления избыточности к точке входа или шлюзу.

Для достижения максимально высокой доступности требуется избыточность на каждом уровне инфраструктуры, в том числе и на серверах приложений и баз данных, что часто бывает трудно реализовать. Однако это позволяет значительно сократить время простоя.

Плавающий IP не заменяет оригинальный публичный IP-адрес сервера, он останется без изменений. Плавающий IP – это дополнительный статический IP-адрес, с помощью которого можно получить доступ к серверу, к которому он в настоящее время прикреплён.

В данной статье охвачены следующие темы:

  • Базовая настройка высокой доступности.
  • Метаданные плавающих IP-адресов.
  • Реализация высокой доступности.
  • Другие варианты использования плавающих IP-адресов.

Базовая настройка высокой доступности.

Чтобы понять, как работает простейшая настройка высокой доступности, рассмотрим следующий пример.

Базовая настройка сервера с высокой доступностью состоит из плавающего IP-адреса, который привязан к группе балансировщиков нагрузки (нужно 2 балансировщика минимум). Плавающий IP-адрес действует как уровень шлюза, с помощью которого пользователи могут взаимодействовать с веб-серверами.

Пользователь

Плавающий IP-адрес
________________|         :...................
↓                                            ↓
Балансировщик 1                       Балансировщик 2
(активный)                                 (пассивный)
|                                                   |
↓                                                   ↓
Сервер приложения 1                Сервер приложения 2
|                                                   |
↓                                                   ↓
Сервер баз данных 1                Сервер баз данных 2
↑                          ↑
|__________________________|
Репликация

  • Активный сервер — сервер, получающий пользовательский трафик, который перенаправляется с плавающего IP. Как правило, это балансировщик нагрузки, который перенаправляет трафик на серверы приложений.
  • Пассивный сервер – резервный сервер (обычно с такой же конфигурацией, как на активном сервере). Он будет получать трафик только во время отказа активного сервера (то есть если активный сервер становится недоступным, плавающий IP переназначается резервному серверу).
  • Плавающий IP-адрес – это IP-адрес, который прикреплён к одному из серверов и может быть переназначен в случае сбоя активного сервера.

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

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

Метаданные плавающих IP-адресов

Сервер узнаёт о наличии плавающего IP-адреса с помощью своих метаданных. Если вы присвоили серверу плавающий IP-адрес, сервер может извлечь его. Эта информация может пригодиться при настройке высокой доступности.

Любые метаданные обычно можно извлечь с помощью команды curl.

Чтобы узнать, назначен ли серверу плавающий IP-адрес, выполните следующую команду:

curl -s http://169.254.169.254/metadata/v1/floating_ip/ipv4/active

Если у сервера есть плавающий IP, вы можете извлечь его:

curl -s http://169.254.169.254/metadata/v1/floating_ip/ipv4/ip_address

Реализация высокой доступности

Теперь вы знаете, как работают плавающие IP-адреса, и можете приступать к разработке собственной высокодоступной инфраструктуры.

Ниже вы найдёте список полезных инструментов и приложений, которые помогут собрать инфраструктуру с высокой доступностью:

  • Corosync и Pacemaker предоставляют программное обеспечение, с помощью которого можно создать кластер с высокой доступностью. Corosync отвечает за уровень передачи сообщений, благодаря которому серверы могут взаимодействовать и работать как кластер. Pacemaker предоставляет возможность контролировать поведение кластера. Вы можете использовать Corosync и Pacemaker с плавающими IP для настройки активного и пассивного сервера.
  • Keepalived – сервис, который позволяет контролировать серверы и процессы для обеспечения высокой доступности инфраструктуры. Демон keepalived может мониторить веб-серверы и автоматически передавать трафик второму серверу, если первый сервер не отвечает.
  • Heartbeat – инструмент кластеризации, который можно использовать с плавающими IP-адресами для реализации базовой настройки активного/пассивного сервера и обеспечения высокой доступности. Инструмент довольно просто настроить, но он не всегда рекомендуется к использованию на этапе производства.

Другие варианты использования плавающих IP-адресов

Еще один вариант реализации плавающих IP-адресов – это blue/green deployment.

Blue/green deployment – это стратегия развертывания программного обеспечения, которая основана на двух идентичных производственных конфигурациях, которые чередуются (одна находится в активной фазе, а вторая – в пассивной). Одна среда называется blue, а дублирующая среда – green. Две среды, blue и green, могут обрабатывать всю производственную нагрузку и использоваться поочередно, а не как основное и дополнительное пространство. Если одна среда является активной, то другая находится в режиме ожидания (такую среду можно использовать для тестирования).