Как развернуть Openstack Loadbalancer Octavia

11.04.2024
Сложность
9 мин.
35

Что такое Loadbalancer Octavia

Loadbalancer Octavia  - это компонент OpenStack, который предоставляет возможность распределения сетевой нагрузки между несколькими виртуальными машинами (VMs) или другими конечными узлами в вашей инфраструктуре OpenStack.. Loadbalancer может быть использован для распределения трафика между несколькими экземплярами приложения или сервиса, улучшая производительность, отказоустойчивость и масштабируемость системы.

Виртуальный инстанс, который служит в качестве непосредственного балансировщика нагрузки в Octavia называется Amphora. Он автоматически создается при создании балансировщика и управляется Octavia и обеспечивает эффективное распределение трафика между серверами. Amphora работает в изолированной среде, обеспечивая безопасность и изоляцию между различными балансировщиками.

Использование Load Balancer Octavia позволяет улучшить производительность, отказоустойчивость и масштабируемость ваших приложений, обеспечивая балансировку нагрузки и автоматическую регулировку трафика в вашем облаке OpenStack.

Основные возможности OpenStack Loadbalancer:

  • Балансировка нагрузки: Основная функция Octavia - балансировка нагрузки между несколькими экземплярами приложений или виртуальными машинами, чтобы обеспечить равномерное распределение запросов от клиентов.
  • Высокая доступность: Load Balancer Octavia спроектирован для обеспечения высокой доступности приложений. В случае отказа одного из серверов балансировщика нагрузки, он автоматически перераспределяет трафик на другие работающие серверы.
  • Масштабируемость: Octavia может обслуживать большое количество запросов, что делает его подходящим для масштабируемых приложений.
  • Расширяемость и гибкость: Octavia предоставляет различные настройки и параметры для управления балансировкой нагрузки, такие как настройка алгоритмов распределения нагрузки, настройка проверок на доступность серверов и т.д.
  • Интеграция с OpenStack: Octavia полностью интегрирована в экосистему OpenStack. Она может взаимодействовать с другими сервисами OpenStack, такими как Neutron (сетевые службы), Keystone (управление идентификацией и доступом), и т.д.
  • API-доступ и управление через Dashboard: Octavia предоставляет API для программного управления, а также интегрируется с Dashboard (графический интерфейс пользователя OpenStack) для удобного визуального управления.

Как это работает?

  • Создание балансировщика нагрузки: Пользователь говорит Octavia, что хочет создать балансировщик нагрузки для своего веб-приложения.
  • Настройка пула серверов: Он указывает, какие серверы будут обслуживать приложение, например, сервера, на которых работает его веб-сайт.
  • Мониторинг серверов: Octavia следит за серверами, чтобы убедиться, что они все работают должным образом. Если один из серверов перестает отвечать, Octavia может перенаправить трафик на другие рабочие серверы.
  • Распределение трафика: Когда кто-то пытается получить доступ к веб-сайту, Octavia решает, на какой сервер направить запрос, чтобы обеспечить равномерную загрузку и быстрый ответ.
  • Гибкость настройки: Пользователь может настроить Octavia, чтобы определить, как лучше всего распределить трафик, например, используя разные методы балансировки нагрузки в зависимости от нагрузки на серверы.


Создание и настройка балансировщика OpenStack происходит в рамках услуги Public Cloud (IaaS) 

Мы покажем наиболее часто используемый способ создания HTTP балансировщика c перенаправлением на определенный URL с помощью Openstack Horizon, так же продублируем данные действия через OpenStack CLI

Как создать Loadbalancer Octavia  в панели управления Horizon

OpenStack Horizon - это веб-интерфейс, предоставляющий графический доступ к функциям и ресурсам OpenStack для управления облачной инфраструктурой.

Подробнее о том, как авторизоваться в Horizon можно узнать в статье Как создать виртуальный сервер в панели управления Horizon 

Шаг – 1  зайдите в панель управления Horison 

Шаг – 2 Нажмите на вкладку "Сеть" - > "Load Balancers" -> "Create Load Balancer"


 


Шаг – 3 В открывшемся окне создания балансировщика введите требуемые данные:

1 - Название балансировщика

2 - Описание балансировщика

3 - Выберите тип инстанса [подразумевает два варианта 1. Standalone(не отказоустойчивый, с одним amphora-инстансом) и 2. Active-standby(отказоуйсточивый балансировщик с двумя amphora-инстансами)]

4 - Выберите подсеть, в которой будет создан балансировщик. Важно, чтобы в данной сети были свободные IP-адреса.



5 - Поле "IP address" вы можете оставить пустым, айпи будет выделен из стека IP-адресов указанной подсети. Либо, если вы желаете присвоить свой IP из сети Openstack, укажите его.

6 - Создайте слушателя (Listener Details) -> Укажите название, протокол( в нашем случае HTTP) -> В следующей вкладке "Pool Details" в разделе "Сreate Pool" выберите "Нет", в данном примере пул нам не потребуется -> Create Load Balancer


 


7 - Балансировщик создан, дождитесь статус Active в "Provisioning Status" для продолжения настройки.




Шаг – 4 Настройка баллансировщика

1 - Добавляем L7 правило для слушателя, которое будет перенаправлять запрос на другой ресурс(редирект).

Выберите ваш балансировщик -> Listeners -> Выберите созданный балансировщик(клик на него)




2 - В открывшемся окне перейдите во вкладку L7 Policies -> Create L7 Policy




3 - Создадим L7 policy

В открывшемся окне укажите:

- Название политики

- Описание

- Действие( в нашем демонстрационном случае - REDIRECT_TO_URL )

- Укажите Redirect URL

- Position выставится автоматически со значением - 1.

- Create L7 Policy !







На этом создание и настройка балансировщика завершена.


Шаг – 5 Выполняем проверку с помощью curl

$ curl -I <loadbalancer_ip>

 



Запрос успешно перенаправляется.


Развертывание базового балансировщика нагрузки HTTP с помощью Openstack CLI:


Действия с помощью Openstack CLI:

openstack loadbalancer create --name <loadbalancer> --vip-subnet-id  <subnet_id> --description "description" 
openstack loadbalancer listener create --protocol HTTP --protocol-port 80 --name <name for listener> <loadbalancer>
openstack loadbalancer l7policy create --action REDIRECT_TO_URL --redirect-url "https://domain.com" --name <name for policy> <listener>
openstack loadbalancer l7rule create --compare-type STARTS_WITH --type PATH --value "/" <policy-name>

Этот набор инструкций предоставляет простое и эффективное решение для создания базового балансировщика нагрузки HTTP с использованием Octavia. Рекомендуется следовать указаниям шаг за шагом для обеспечения корректного развертывания и обеспечения надежной балансировки веб-трафика между вашими серверами.


Инструкция как развернуть Loadbalancer Octavia

Шаг – 1 подготовьте платформу, с которой вы будете управлять вашим Public Cloud, и установите утилиту openstack. 

Это может быть готовый виртуальный сервер или даже персональный компьютер.

Вы можете сделать это с помощью инструкции Создание сервера через CLI (командную строку) 

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

создайте балансировщик нагрузки с именем <lb1>, который будет доступен из интернета:

openstack loadbalancer create --name <lb1> --vip-subnet-id <public-subnet>

Подождите, пока балансировщик нагрузки не получит статусы ACTIVE и ONLINE.

openstack loadbalancer show <lb1>

Шаг – 3  Создание прослушивателя

Создайте прослушиватель с именем <listener1>, который будет прослушивать входящие HTTP-запросы на порту 80.

openstack loadbalancer listener create --name <listener1> --protocol HTTP --protocol-port 80 <lb1>

Шаг – 4 Создание пула

Создайте пул с именем <pool1>, который будет служить пулом по умолчанию для прослушивателя <listener1>.

openstack loadbalancer pool create --name <pool1> --lb-algorithm ROUND_ROBIN --listener <listener1> --protocol HTTP

Шаг – 5 Добавление членов пула

Добавьте сервера <192.0.2.10> и <192.0.2.11>, настроенные с приложением на порту 80, в пул <pool1>.

openstack loadbalancer member create --subnet-id <private-subnet> --address 192.0.2.10 --protocol-port 80 <pool1>
openstack loadbalancer member create --subnet-id <private-subnet> --address 192.0.2.11 --protocol-port 80 <pool1>


Шаг – 6 Проверку балансировщика можно выполнить способом, описанным выше:

$ curl -I <loadbalancer_ip>


Рекомендуем так же ознакомиться с официальной документацией по работе с Loadbalancer Octavia : https://docs.openstack.org/octavia/latest/user/guides/basic-cookbook.html



Были ли сведения полезными?
0 
Продолжая использовать этот сайт и пользуясь нашими услугами, Вы соглашаетесь с Правилами и условиями веб-сайта и использованием файлов cookie на нашем веб-сайте. Также ознакомьтесь с нашей Политикой конфиденциальности, согласно которой, в заявленной степени, Вы соглашаетесь на обработку Ваших персональных данных.