База знаний Selectel / Облачная платформа / Облачные серверы / Балансировщики нагрузки / Создать балансировщик нагрузки Панель управления OpenStack CLI Terraform В панели управления перейдите в раздел Облачная платформа ⟶ Балансировщики. Нажмите Создать балансировщик. Введите имя балансировщика. Выберите регион. Выберите тип балансировщика в зависимости от нагрузки на проект. Выберите подсеть: приватную — балансировка трафика будет производиться только внутри подсети. Можно подключить публичный плавающий IP к приватному адресу — балансировщик будет доступен из интернета через NAT; или публичную — балансировщик будет доступен из интернета и сможет проксировать запросы из публичной подсети к облачным серверам в приватной подсети. Укажите IP-адрес балансировщика — один из свободных адресов в подсети. Опционально: подключите плавающий IP. Если нет свободного плавающего IP-адреса, создайте новый IP. Приватная подсеть, в которой вы создаете балансировщик, должна быть подключена к роутеру с доступом к внешней сети. Укажите протокол для балансировщика и облачного сервера: TCP–TCP — классическая L4-балансировка; TCP–PROXY — информация о клиенте не теряется и передается в отдельном заголовке соединения; UDP–UDP — UDP-протокол быстрее, чем TCP, но менее надежен; HTTP–HTTP — L7-балансировка; HTTPS–HTTP — L7-балансировка с шифрованием и терминацией SSL-сертификата на балансировщике. Для выбранного протокола автоматически проставится стандартный порт — измените порт при необходимости. Значение порта будет общим для всех серверов в правиле. Если вы выбрали HTTPS-протокол, добавьте в правило SSL-сертификат — так балансировщик сможет прочитать HTTPS-запрос и использовать информацию протокола HTTP для правильной балансировки. Выберите сертификат из Менеджера секретов или загрузите в него новый. Терминация SSL-сертификата происходит на балансировщике, балансировщик передает данные серверам по HTTP. Откройте вкладку Серверы и добавьте серверы в правило. Для каждого сервера выберите IP-адрес, укажите порт и установите вес сервера. Откройте вкладку Алгоритм и выберите алгоритм распределения запросов — Round Robin или Least connections. При необходимости отметьте метод Sticky sessions. Откройте вкладку Проверки и настройте проверки доступности. Откройте вкладку Соединения и настройте время соединения между: входящими запросами и балансировщиком – укажите таймаут соединения, а также ограничено или нет количество соединений. При ограниченном количестве соединений укажите максимум количества запросов; балансировщиком и серверами — укажите таймаут соединения, таймаут неактивности и таймаут ожидания TCP-пакетов. Опционально: откройте вкладку Заголовки и отметьте, какие заголовки HTTP-запросов передавать серверам. Опционально: нажмите Добавить правило и добавьте другие правила для балансировщика. Нажмите Создать балансировщик нагрузки. Начните работу с OpenStack CLI. Установите клиент Octavia: pip install python-octaviaclient Создайте балансировщик: openstack loadbalancer create \ --vip-subnet-id <subnet_ID> \ --vip-address <IP_address> \ --flavor <flavor_ID> \ --name <loadbalancer_name> Укажите: <subnet_ID> — ID приватной или публичной подсети, можно посмотреть с помощью openstack subnet list <IP_address> — IP-адрес, который выделится для балансировщика нагрузки — один из свободных в подсети; <flavor_ID> — ID флейвора — тип балансировщика, можно посмотреть с помощью openstack loadbalancer flavor list <loadbalancer_name> — имя балансировщика. Проверьте, что балансировщик находится в статусах ONLINE (параметр operating_status в выводе команды) и ACTIVE (provisioning_status): openstack loadbalancer show <loadbalancer> Укажите <loadbalancer> — ID или имя балансировщика, можно посмотреть с помощью openstack loadbalancer list Создайте правило, укажите в нем протокол и порт для балансировщика: openstack loadbalancer listener create \ --name <listener_name> \ --protocol <protocol> \ --protocol-port <protocol_port> \ <loadbalancer> Укажите: <listener_name> — имя listener — отобразится в панели управления как имя правила; <protocol> — название протокола; <protocol_port> — номер порта. Создайте в правиле протокол для сервера и укажите алгоритм: openstack loadbalancer pool create \ --name <pool_name> \ --lb-algorithm <algorithm> \ --listener <listener_name> \ --protocol <protocol_name> Укажите: <pool_name> — имя пула, не будет отображаться в панели управления; <algorithm> — название алгоритма: ROUND_ROBIN или LEAST_CONNECTIONS <listener_name> — имя listener; <protocol_name> — название протокола. Добавьте сервер в правило и укажите его IP-адрес: openstack loadbalancer member create \ --subnet-id <subnet_ID> \ --address <server_IP> \ --protocol-port <protocol_port> \ <pool_name> Укажите <server_IP> — IP-адрес сервера. Опционально: укажите параметры проверки доступности — они отразятся на странице балансировщика ⟶ вкладка Проверки: openstack loadbalancer healthmonitor create \ --delay <delay> \ --max-retries <max_retries> \ --timeout <timeout> \ --type <protocol_name> \ <pool_name> Укажите: <delay> — интервал в секундах; <max_retries> — порог успеха; <timeout> — таймаут соединения; <protocol_name> — тип проверки — название протокола; <pool_name> — имя pool. Опционально: подключите плавающий IP к балансировщику: openstack floating ip set --port <loadbalancer_port_ID> <floating_IP> Укажите: <loadbalancer_port_ID> — ID порта балансировщика — значение vip_port_id из вывода команды openstack loadbalancer show <loadbalancer> <floating_IP> — плавающий IP-адрес. Начните работу с Terraform. Используйте примеры на GitHub: создайте проект с двумя облачными серверами и двумя балансировщиками нагрузки; или создайте два облачных сервера и балансировщик в существующем проекте.