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

11.04.2024
Complexity
9 min.
515

Что такое 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



Was this information helpful?
Yes   No
0 
By continuing to use this website you will be agreeing to the website Acceptable Use Policy and the Use of Cookies while using the website and our services. Please also read our Privacy Policy under which, to the extent stated, you consent to the processing of your personal data.