Изменить L7-балансировщик
Чтобы изменить параметры L7-балансировщика:
-
В консоли управления
выберите каталог, в котором создан балансировщик. -
Выберите сервис Application Load Balancer.
-
Нажмите на имя нужного балансировщика.
-
Нажмите
и выберите Редактировать. -
Измените необходимые параметры балансировщика:
-
В блоке Сетевые настройки измените группы безопасности:
Без групп
— для балансировщика будет разрешен любой входящий и исходящий трафик. Это наименее безопасный вариант.Автоматически
— при создании балансировщика будет автоматически создана группа безопасности, разрешающая любой входящий трафик на порте80
и TCP-трафик для проверки состояния узлов балансировщика на порте30080
. При этом для балансировщика будет разрешен любой исходящий трафик.Из списка
— для более гибкого управления трафиком создайте свои группы безопасности. Вы можете выбрать и привязать к балансировщику одновременно до пяти групп безопасности.
-
В блоке Настройки автомасштабирования укажите ограничения на количество ресурсных единиц.
-
В блоке Настройки логов:
-
Измените лог-группу Cloud Logging, в которую будут записываться логи балансировщика.
-
Измените правила отбрасывания логов:
- HTTP-коды — измените HTTP-коды.
- Классы HTTP-кодов — измените классы HTTP-кодов.
- gRPC-коды — измените gRPC-коды.
- Доля отбрасываемых логов — измените процент отбрасываемых логов.
Чтобы добавить еще одно правило, нажмите кнопку Добавить правило отбрасывания логов.
-
-
В блоке Обработчики измените параметры нужных обработчиков.
-
-
Внизу страницы нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для изменения параметров балансировщика:
yc alb load-balancer update --help
-
Выполните команду, указав новые параметры балансировщика. Например, привяжите к балансировщику группы безопасности:
yc alb load-balancer update <имя_балансировщика> \ --security-group-id <список_идентификаторов_групп_безопасности>
Где
--security-group-id
— новый список от одного до пяти разделенных запятыми идентификаторов групп безопасности. Если не указать этот параметр, то для балансировщика будет разрешен любой трафик.Результат:
id: a5d88ep483cm******** name: test-balancer2-updated folder_id: aoe197919j8e******** status: ACTIVE region_id: ru-central1 network_id: c64l1c06d151******** listeners: - name: test-listener endpoints: - addresses: - external_ipv4_address: address: 130.193.32.206 ports: - "80" http: handler: http_router_id: a5dv7tjdo9gt******** allocation_policy: locations: - zone_id: ru-central1-a subnet_id: buc4gsmpj8hv******** log_group_id: eolul9ap0bv0******** security_group_ids: - enpulh2tbrep******** - enpg05a3ck35******** created_at: "2021-04-26T12:12:13.624832586Z"
-
(Опционально) Измените параметры записи логов в Yandex Cloud Logging:
-
Посмотрите описание команды CLI для управления логированием в балансировщике:
yc alb load-balancer logging --help
-
Добавьте новое правило отбрасывания логов:
yc alb load-balancer logging <имя_балансировщика> \ --log-group-id <идентификатор_лог-группы> \ --enable \ --discard codes=[200,3XX,GRPC_OK],percent=90
Где:
--log-group-id
— идентификатор лог-группы.--discard
— правило отбрасывания логов. Параметры правила:codes
— HTTP-коды, классы HTTP-кодов или gRPC-коды.percent
— доля отбрасываемых логов в процентах.
Результат:
done (42s) id: ds76g2zpgp3f******** name: test-load-balancer folder_id: b1gug7dbelh******** ... log_options: log_group_id: e23p9bcvh6gr******** discard_rules: - http_codes: - "200" http_code_intervals: - HTTP_3XX grpc_codes: - OK discard_percent: "90"
-
-
Укажите новые параметры обработчика:
-
HTTP-обработчик:
-
Посмотрите описание команды CLI для изменения параметров HTTP-обработчика L7-балансировщика:
yc alb load-balancer update-listener --help
-
Выполните команду, указав новые параметры обработчика:
yc alb load-balancer update-listener <имя_балансировщика> \ --listener-name <имя_обработчика> \ --http-router-id <идентификатор_HTTP-роутера> \ --external-ipv4-endpoint port=<порт_обработчика>
-
-
Stream-обработчик:
-
Посмотрите описание команды CLI для изменения параметров Stream-обработчика L7-балансировщика:
yc alb load-balancer update-stream-listener --help
-
Выполните команду, указав новые параметры обработчика:
yc alb load-balancer update-stream-listener <имя_балансировщика> \ --listener-name=<имя_обработчика> \ --backend-group-id=<идентификатор_группы_бэкендов> \ --external-ipv4-endpoint port=<порт_обработчика>
-
Результат обновления двух обработчиков:
done (42s) id: ds76g8b2op3f******** name: test-load-balancer folder_id: b1gu6g9ielh6******** status: ACTIVE network_id: enp0uulja5s3******** listeners: - name: tslistener endpoints: - addresses: - external_ipv4_address: address: 51.250.64.197 ports: - "80" http: handler: http_router_id: ds7d7b14b3fs******** - name: teststreamlistener endpoints: - addresses: - external_ipv4_address: address: 51.250.64.197 ports: - "443" stream: handler: backend_group_id: ds77tero4f5h******** allocation_policy: locations: - zone_id: ru-central1-a subnet_id: e9bs1hp7lgdl******** log_group_id: ckgs4u5km3u8******** security_group_ids: - enp49ot04g63******** created_at: "2022-04-04T02:12:40.160629110Z" log_options: log_group_id: e23p9bfjvsgr******** discard_rules: - http_codes: - "200" http_code_intervals: - HTTP_3XX grpc_codes: - OK discard_percent: "90"
-
-
(Опционально) Установите новые ограничения на количество ресурсных единиц:
-
Посмотрите описание команды CLI для настройки ограничений:
yc alb load-balancer autoscale --help
-
Установите ограничения, выполнив команду:
yc alb load-balancer autoscale <имя_или_идентификатор_балансировщика> \ --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: a5d88ep483cm******** name: test-balancer2 folder_id: aoe197919j8e******** status: ACTIVE region_id: ru-central1 network_id: c64l1c06d151******** allocation_policy: locations: - zone_id: ru-central1-a subnet_id: buc4gsmpj8hv******** created_at: "2022-06-02T12:12:13.624832586Z" auto_scale_policy: min_zone_size: 3 max_size: 10
-
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте файл конфигурации Terraform и измените фрагмент с описанием L7-балансировщика:
... resource "yandex_alb_load_balancer" "test-balancer" { name = "my-load-balancer" network_id = yandex_vpc_network.test-network.id allocation_policy { location { zone_id = "ru-central1-a" subnet_id = yandex_vpc_subnet.test-subnet.id security_group_ids = ["<список_идентификаторов_групп_безопасности>"] } } listener { name = "my-listener" endpoint { address { external_ipv4_address { } } ports = [ 9000 ] } http { handler { http_router_id = yandex_alb_http_router.test-router.id } } } log_options { log_group_id = "<идентификатор_лог-группы>" discard_rule { http_codes = ["200"] http_code_intervals = ["HTTP_2XX"] grpc_codes = ["GRPC_OK"] discard_percent = 15 } } } ...
Более подробную информацию о параметрах ресурса
yandex_alb_load_balancer
в Terraform см. в документации провайдера . -
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.Проверить изменение L7-балансировщика можно в консоли управления
или с помощью команды CLI:yc alb load-balancer get <имя_балансировщика>
Воспользуйтесь методом REST API update для ресурса LoadBalancer или вызовом gRPC API LoadBalancerService/Update.
Удалить обработчик
Чтобы удалить обработчик L7-балансировщика:
- В консоли управления
выберите каталог, в котором создан балансировщик. - Выберите сервис Application Load Balancer.
- Напротив имени нужного балансировщика нажмите значок
и выберите Редактировать. - В блоке Обработчики напротив имени нужного обработчика нажмите значок
и выберите Удалить. - Нажмите Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для удаления обработчика:
yc alb load-balancer remove-listener --help
-
Выполните команду:
yc alb load-balancer remove-listener <имя_или_идентификатор_балансировщика> \ --listener-name=<имя_обработчика>
Результат:
done (50s)
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте файл конфигурации Terraform и удалите блок
listener
в описании L7-балансировщика:... resource "yandex_alb_load_balancer" "test-balancer" { name = "my-load-balancer" network_id = yandex_vpc_network.test-network.id allocation_policy { location { zone_id = "ru-central1-a" subnet_id = yandex_vpc_subnet.test-subnet.id } } listener { name = "my-listener" endpoint { address { external_ipv4_address { } } ports = [ 9000 ] } http { handler { http_router_id = yandex_alb_http_router.test-router.id } } } } ...
Более подробную информацию о параметрах ресурса
yandex_alb_load_balancer
в Terraform, см. в документации провайдера . -
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.Проверить изменение L7-балансировщика можно в консоли управления
или с помощью команды CLI:yc alb load-balancer get <имя_L7-балансировщика>
Воспользуйтесь методом REST API removeListener для ресурса LoadBalancer или вызовом gRPC API LoadBalancerService/RemoveListener.