Создать L7-балансировщик
Чтобы создать L7-балансировщик:
-
В консоли управления выберите каталог, в котором будет создан балансировщик.
-
В списке сервисов выберите Application Load Balancer.
-
Нажмите кнопку Создать балансировщик и выберите Вручную.
-
Введите имя балансировщика:
test-load-balancer
. -
В блоке Сетевые настройки выберите сеть, в подсетях которой будут размещаться узлы балансировщика, и подходящие группы безопасности (если соответствующего поля нет, для балансировщика будет разрешен любой входящий и исходящий трафик).
-
(опционально) В блоке Настройки автомасштабирования укажите ограничения на количество ресурсных единиц.
Количество единиц будет меняться автоматически с учетом нагрузки на балансировщик и установленных ограничений. От количества единиц зависит тарификация балансировщика.
-
В блоке Размещение выберите три подсети для узлов балансировщика и включите передачу трафика в эти подсети.
-
В блоке Обработчики нажмите кнопку Добавить обработчик. Задайте настройки обработчика:
-
Введите имя обработчика:
test-listener
. -
(опционально) Включите опцию Публичный IP-адрес. Укажите Порт:
80
и выберите Тип:Автоматически
.Список
— в появившемся поле справа выберите адрес в выпадающем списке.
-
(опционально) Включите опцию Внутренний IP-адрес. Укажите Порт и выберите Подсеть в выпадающем списке.
-
В блоке Прием и обработка трафика выберите тип обработчика:
HTTP
илиStream
.Для
HTTP
выберите:- Протокол:
HTTP
,HTTPS
илиПеренаправлять на HTTPS
. - HTTP-роутер в выпадающем списке.
Для
Stream
выберите протокол:Открытый
: выберите Группы бэкендов в выпадающем списке.Зашифрованный
: в блоке Основной обработчик выберите Сертификаты и Группы бэкендов в выпадающих списках.
- Протокол:
-
-
При необходимости добавьте дополнительные обработчики.
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для создания L7-балансировщика:
yc alb load-balancer create --help
-
Выполните команду, указав сеть и подсети, в которых будут размещаться узлы балансировщика, а также подходящие группы безопасности:
yc alb load-balancer create <имя_балансировщика> \ --network-name <имя_сети> \ --location subnet-name=<имя_подсети>,zone=<зона_доступности>
Опцию
--location
можно повторять несколько раз, чтобы указать разные зоны доступности и подсети.Результат:
done (1m40s) id: a5d88ep483cmbfm63g9t name: test-balancer2 folder_id: aoe197919j8elpeg1lkp status: ACTIVE region_id: ru-central1 network_id: c64l1c06d15178sa87k0 allocation_policy: locations: - zone_id: ru-central1-a subnet_id: buc4gsmpj8hvramg61g8 - zone_id: ru-central1-b subnet_id: blt6pcatjje62sqvjq5b - zone_id: ru-central1-c subnet_id: fo2ap2nrhjk9vpfdnno8 log_group_id: eolul9ap0bv02i8bsp87 created_at: "2021-04-26T12:12:13.624832586Z"
-
(опционально) Установите ограничения на количество ресурсных единиц:
-
Посмотрите описание команды CLI для настройки ограничений:
yc alb load-balancer autoscale --help
-
Установите ограничения, выполнив команду:
yc alb load-balancer autoscale <имя_или_ID_балансировщика> \ --min-zone-size <минимум_ресурсных_единиц_в_зоне> \ --max-size <максимум_ресурсных_единиц_в_сумме>
Где:
--min-zone-size
— минимальное количество ресурсных единиц в каждой зоне доступности. По умолчанию минимум равен 2. Указать минимальное значение меньше 2 нельзя.--max-size
— максимальное суммарное количество ресурсных единиц. По умолчанию количество не ограничено. Значение должно быть не меньше, чем количество зон доступности балансировщика, умноженное на минимальное количество ресурсных единиц в каждой зоне.
Вы можете указать в команде один из параметров или оба сразу.
Пример:
yc alb load-balancer autoscale test-balancer2 \ --min-zone-size 3 \ --max-size 10
Результат:
id: a5d88ep483cmbfm63g9t name: test-balancer2 folder_id: aoe197919j8elpeg1lkp status: ACTIVE region_id: il1 network_id: c64l1c06d15178sa87k0 allocation_policy: locations: - zone_id: il1-a subnet_id: buc4gsmpj8hvramg61g8 created_at: "2022-06-02T12:12:13.624832586Z" auto_scale_policy: min_zone_size: 3 max_size: 10
-
-
Добавьте обработчик для L7-балансировщика:
-
HTTP-обработчик:
-
Посмотрите описание команды CLI для добавления HTTP-обработчика L7-балансировщика:
yc alb load-balancer add-listener --help
-
Добавьте обработчик, выполнив команду:
yc alb load-balancer add-listener <имя балансировщика> \ --listener-name <имя обработчика> \ --http-router-id <идентификатор HTTP-роутера> \ --external-ipv4-endpoint port=<порт обработчика>
-
-
Stream-обработчик:
-
Посмотрите описание команды CLI для добавления Stream-обработчика L7-балансировщика:
yc alb load-balancer add-stream-listener --help
-
Добавьте обработчик, выполнив команду:
yc alb load-balancer add-stream-listener <имя балансировщика> \ --listener-name=<имя обработчика> \ --backend-group-id=<идентификатор группы бэкендов> \ --external-ipv4-endpoint port=<порт обработчика>
-
Результат после добавления двух обработчиков:
done (42s) id: ds76g8b2op3fej12nab6 name: test-load-balancer folder_id: b1gu6g9ielh690at5bm7 status: ACTIVE network_id: enp0uulja5s3j1ftvfei listeners: - name: tslistener endpoints: - addresses: - external_ipv4_address: address: 51.250.64.197 ports: - "80" http: handler: http_router_id: ds7d7b14b3fsv7qjkvel - name: teststreamlistener endpoints: - addresses: - external_ipv4_address: address: 51.250.64.197 ports: - "443" stream: handler: backend_group_id: ds77tero4f5h46l4e2gl allocation_policy: locations: - zone_id: ru-central1-a subnet_id: e9bs1hp7lgdl1g3n6ci1 - zone_id: ru-central1-b subnet_id: e2le8i7hqa216f6i6php - zone_id: ru-central1-c subnet_id: b0cgk1au6fn203f3tqnf log_group_id: ckgs4u5km3u8j9f360md security_group_ids: - enp49ot04g63ih1scuap created_at: "2022-04-04T02:12:40.160629110Z"
-
Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией Mozilla Public License.
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
resource "yandex_alb_load_balancer" "test-balancer" { name = "<имя L7-балансировщика>" network_id = "<идентификатор сети>" allocation_policy { location { zone_id = "<зона доступности>" subnet_id = "<идентификатор подсети>" } } listener { name = "<имя обработчика>" endpoint { address { external_ipv4_address { } } ports = [ 9000 ] } http { handler { http_router_id = "<идентификатор HTTP-роутера>" } } } }
Где:
-
name
— имя L7-балансировщика. Формат имени:- Длина — от 3 до 63 символов.
- Может содержать строчные буквы латинского алфавита, цифры и дефисы.
- Первый символ — буква. Последний символ — не дефис.
-
network_id
— идентификатор сети. -
allocation_policy
— описание расположения узлов L7-балансировщика. Укажите идентификаторы зоны доступности и подсети. -
listener
— описание параметров обработчика для L7-балансировщика:-
name
— имя обработчика. Формат имени:- Длина — от 3 до 63 символов.
- Может содержать строчные буквы латинского алфавита, цифры и дефисы.
- Первый символ — буква. Последний символ — не дефис.
-
endpoint
— описание адресов и портов обработчика. Укажите внешний IPv4-адрес и порт для приема трафика. Если параметрexternal_ipv4_address
не задан, то публичный адрес будет выделен автоматически. -
http
— описание HTTP-приемника для обработчика. Укажите идентификатор HTTP-роутера.
-
Более подробную информацию о параметрах ресурса
yandex_alb_load_balancer
в Terraform см. в документации провайдера. -
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления или с помощью команды CLI:
yc alb load-balancer list
-