Создать внутренний сетевой балансировщик
Функция находится на стадии Preview.
Примечание
Обработчику внутреннего балансировщика назначается случайный IP-адрес из диапазона адресов выбранной подсети.
Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Перед созданием балансировщика создайте целевую группу, чтобы подключить ее к балансировщику.
-
Посмотрите описание команды CLI для создания сетевого балансировщика:
$ yc load-balancer network-load-balancer create --help
-
Чтобы создать внутренний балансировщик с обработчиком, выполните команду:
$ yc load-balancer network-load-balancer create \ --name internal-lb-test \ --type internal \ --region-id ru-central1 \ --listener name=test-listener,port=80,internal-subnet-id=<идентификатор подсети>
-
Получите список всех балансировщиков, чтобы убедиться, что балансировщик создан:
$ yc load-balancer network-load-balancer list
Создать внутренний балансировщик можно с помощью метода API create.
Terraform позволяет быстро создать облачную инфраструктуру в Yandex.Cloud. Состав инфраструктуры определяется с помощью конфигурационных файлов, в которых указываются требуемые облачные ресурсы и их параметры.
Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex.Cloud.
Чтобы создать внутренний сетевой балансировщик с обработчиком:
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
name
— имя сетевого балансировщика.type
— тип сетевого балансировщика. Используйтеinternal
, чтобы создать внутренний балансировщик.listener
— параметры обработчика.name
— имя обработчика.port
— порт для приема трафика.intenal_address_spec
— спецификация обработчика для внутреннего балансировщика.subnet_id
— идентификатор подсети.
Пример структуры конфигурационного файла:
provider "yandex" { token = "<OAuth или статический ключ сервисного аккаунта>" folder_id = "<идентификатор каталога>" zone = "ru-central1-a" } resource "yandex_lb_network_load_balancer" "internal-lb-test" { name = "internal-lb-test" type = "internal" listener { name = "my-listener" port = 8080 internal_address_spec { subnet_id = "<Идентификатор подсети>" } }
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.
-
Проверьте корректность конфигурационных файлов.
- В командной строке перейдите в папку, где вы создали конфигурационный файл.
- Выполните проверку с помощью команды:
$ terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Разверните облачные ресурсы.
- Если в конфигурации нет ошибок, выполните команду:
$ terraform apply
- Подтвердите создание ресурсов.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.
- Если в конфигурации нет ошибок, выполните команду:
Примеры
Создание внутреннего балансировщика без обработчика
Чтобы создать внутренний балансировщик без обработчика, выполните команду:
$ yc load-balancer network-load-balancer create \
--name internal-lb-test-1 \
--type internal \
--region-id ru-central1
Создание внутреннего балансировщика с обработчиком и подключенной целевой группой
-
Чтобы создать внутренний балансировщик с обработчиком и сразу подключить к нему целевую группу, получите список целевых групп:
$ yc load-balancer target-group list +----------------------+------------------+---------------------+-------------+--------------+ | ID | NAME | CREATED | REGION ID | TARGET COUNT | +----------------------+------------------+---------------------+-------------+--------------+ | b7rv80bfibkph3ekqqle | test-internal-tg | 2020-08-09 07:49:18 | ru-central1 | 3 | +----------------------+------------------+---------------------+-------------+--------------+
-
Выполните команду, используя идентификатор целевой группы в параметре
target-group-id
:$ load-balancer network-load-balancer create \ --name internal-lb-test-3 \ --type internal \ --region-id ru-central1 \ --listener name=test-listener,port=80,internal-subnet-id=e9b81t3kjmi0auoi0vpj \ --target-group target-group-id=b7rv80bfibkph3ekqqle,healthcheck-name=http,healthcheck-interval=2s,healthcheck-timeout=1s,healthcheck-unhealthythreshold=2,healthcheck-healthythreshold=2,healthcheck-http-port=80
Обратите внимание на формат параметров
healthcheck-interval
иhealthcheck-timeout
: необходимо указывать значение в форматеNs
, гдеN
— значение в секундах.