Поиск по сайту:

Как использовать балансировщики нагрузки DigitalOcean между виртуальными машинами


Как многие системные администраторы узнали за многие годы, обеспечение высокой доступности системы имеет решающее значение для производственной операции. Управление и обслуживание балансировщика нагрузки часто может быть сложной задачей. DigitalOcean предлагает продукт Load Balancer всего за 10 долларов в месяц, что значительно упрощает задачу управления и обслуживания балансировщика нагрузки.

Каковы особенности балансировщика нагрузки DigitalOcean? Доступно множество параметров, которые могут повлиять на то, насколько хорошо работает балансировщик нагрузки.

  • Резервные балансировщики нагрузки — с автоматическим переходом на другой ресурс
  • Добавить ресурсы по имени или тегу
  • Поддерживаемые протоколы: HTTP(s), HTTP/2, TCP
  • Сертификаты SSL LetsEncrypt (если DigitalOcean является вашим DNS-провайдером)
  • Поддержка протокола PROXY
  • Прикрепленные сеансы с помощью файлов cookie
  • Настраиваемые внутренние проверки работоспособности дроплетов
  • Алгоритм: циклический алгоритм или метод наименьшего количества соединений
  • Перенаправление SSL для принудительного перехода всех HTTP на HTTPS
  • Поддержка активности серверной части для повышения производительности

Ограничения балансировщиков нагрузки DigitalOcean

Существует ряд ограничений балансировщиков нагрузки DigitalOcean, о которых необходимо знать.

  • Входящие подключения поддерживают только TLS 1.2, а подключения к дроплетам поддерживают TLS 1.1 и TLS 1.2.
  • Нет поддержки IPv6
  • Проход через SSL не поддерживает заголовки, такие как X-Forwarded-Proto или X-Forwarded-For, поскольку он работает только для HTTP или HTTPS с сертификатом< /li>
  • Прикрепленные сеансы не видны за пределами балансировщика нагрузки, файлы cookie устанавливаются и удаляются на границе и не передаются.
  • Если включена функция проверки активности, ограничение по времени составляет 60 секунд.
  • Балансировщики нагрузки поддерживают 10 000 одновременных подключений, распределенных между всеми ресурсами (т. е. 5000 – к двум разным дроплетам).
  • Проверки работоспособности отправляются по протоколу HTTP 1.0
  • Плавающие IP-адреса нельзя назначать балансировщикам нагрузки.
  • Порты с 50053 на 50055 зарезервированы для балансировщика нагрузки
  • Let’s Encrypt поддерживается, только если в качестве DNS используется DigitalOcean.
  • Let’s Encrypt на балансировщиках нагрузки не поддерживает подстановочные сертификаты

Создание балансировщика нагрузки

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

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

После добавления ресурсов необходимо создать все необходимые правила переадресации трафика. В этом примере мы просто используем стандартный веб-сервер и не-SSL-трафик. Поэтому все, что нам нужно, это простое правило для перенаправления на порт 80.

Есть расширенные настройки, которые вы можете установить, но их также можно изменить позже, если это необходимо. Эти настройки относятся к алгоритму, закрепленным сеансам, проверкам работоспособности, перенаправлению SSL, поддержке прокси-протокола, а также к включению Backend Keepalive.

Наконец, выберите имя балансировщика нагрузки и нажмите «Создать балансировщик нагрузки».

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

Чтобы увидеть, как это работает, сначала перейдите к IP-адресу каждой отдельной капли. В этом случае мы просто установили Nginx и создали файл index.html в /var/www/html с идентифицирующим текстом для каждого сервера.

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

Состояние внутреннего соединения

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

Как видно на скриншоте ниже, после выключения lc-test-02 балансировщик нагрузки перестал направлять туда соединения. После обновления страницы вы получите только страницу с тестового сервера 1.

Заключение

Как видите, балансировщики нагрузки DigitalOcean — невероятно полезный и недорогой способ легко сбалансировать нагрузку соединений между любым количеством дроплетов. С добавлением поддержки HTTP/2, сквозной передачи и терминации SSL, а также поддержки Let’s Encrypt с использованием балансировщиков нагрузки DigitalOcean легко добавит высокую доступность и возможность балансировки нагрузки для многих приложений.