Изменить группу бэкендов
Изменить базовые параметры группы
Примечание
Изменить тип группы можно только с помощью других инструментов: CLI, Terraform, API.
- В консоли управления
выберите каталог, в котором создана группа бэкендов. - Выберите сервис Application Load Balancer.
- На панели слева выберите
Группы бэкендов. - Нажмите на имя нужной группы.
- Нажмите
Редактировать. - Измените параметры группы:
-
Имя и Описание группы бэкендов.
-
Привязка сессий — опция, при которой запросы в рамках одной пользовательской сессии обрабатывает один и тот же эндпоинт.
Примечание
Сейчас привязка сессий работает, только если в группе бэкендов активен (имеет положительный вес) один бэкенд, он состоит из одной или нескольких целевых групп и для него выбран режим балансировки
MAGLEV_HASH
.Для группы бэкендов типа
HTTP
илиgRPC
доступны режимы:По IP-адресу
.По HTTP-заголовку
.По cookie
.
Для типа
Stream
привязка сессий всегда работает по IP-адресу.Подробнее о привязке сессий и ее режимах см. в разделе.
-
- Внизу страницы нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для изменения базовых параметров группы бэкендов:
yc alb backend-group update --help
-
Выполните команду:
yc alb backend-group update \ --name <имя_группы_бэкендов> \ --new-name <новое_имя_группы_бэкендов> \ --description <описание_группы_бэкендов> \ --labels key=value[,<ключ>=<значение_метки>] \ --connection-affinity source-ip=<режим_привязки_сессий_по_IP-адресу>
Где:
-
--name
— имя группы бэкендов. -
--new-name
— новое имя группы бэкендов. Требования к имени:- Длина — от 3 до 63 символов.
- Может содержать строчные и заглавные буквы латинского и русского алфавита, цифры, дефисы, подчеркивания и пробелы.
- Первый символ должен быть буквой. Последний символ не может быть дефисом, подчеркиванием или пробелом.
-
--description
— описание группы бэкендов. Необязательный параметр. -
--labels key=value
— список меток в форматеключ=значение
. Необязательный параметр. -
--connection-affinity
— режим привязки сессий по IP-адресу (source-ip
). Может принимать значенияtrue
илиfalse
. Необязательный параметр. Также доступны режимы--cookie-affinity
(по cookie) и--header-affinity
(по HTTP-заголовку). Может быть указан только один из режимов. Если группа бэкендов типа Stream, режим привязки может быть только--connection-affinity
.Примечание
Сейчас привязка сессий работает, только если в группе бэкендов активен (имеет положительный вес) один бэкенд, он состоит из одной или нескольких целевых групп и для него выбран режим балансировки
MAGLEV_HASH
.
Результат:
id: ds7mi7mlqgct******** name: <имя_группы_бэкендов> description: update folder_id: b1g6hif00bod******** labels: bar: buz foo: buz http: backends: - name: <имя_бэкенда> backend_weight: "2" load_balancing_config: panic_threshold: "90" port: "80" target_groups: target_group_ids: - ds75pc3146dh******** healthchecks: - timeout: 10s interval: 2s healthy_threshold: "10" unhealthy_threshold: "15" healthcheck_port: "80" http: host: <адрес_хоста> path: <путь> connection: source_ip: true created_at: "2022-11-30T17:46:05.599491104Z"
-
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте конфигурационный файл Terraform и измените фрагмент с описанием группы бэкендов:
resource "yandex_alb_backend_group" "test-backend-group" { name = "<имя_группы_бэкендов>" description = "<описание_группы_бэкендов>" labels = { new-label = "test-label" } session_affinity { connection { source_ip = <режим_привязки_сессий_по_IP-адресу> } } ... }
Где
yandex_alb_backend_group
— параметры группы бэкендов:-
name
— имя группы бэкендов. -
description
— описание группы бэкендов. Необязательный параметр. -
labels
— список меток в форматеключ=значение
. Необязательный параметр. -
session_affinity
— настройки привязки сессий (необязательный параметр).Примечание
Сейчас привязка сессий работает, только если в группе бэкендов активен (имеет положительный вес) один бэкенд, он состоит из одной или нескольких целевых групп и для него выбран режим балансировки
MAGLEV_HASH
.connection
— режим привязки сессий по IP-адресу (source_ip
). Может принимать значенияtrue
илиfalse
. Также доступны режимыcookie
иheader
. Должен быть указан только один из режимов. Если группа бэкендов имеет типStream
(состоит из ресурсовstream_backend
), то привязка сессий может иметь только режимconnection
.
Подробную информацию о параметрах ресурса
yandex_alb_backend_group
см. в документации провайдера Terraform . -
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Проверить изменения группы бэкендов можно в консоли управления
или с помощью команды CLI:yc alb backend-group get --name <имя_группы_бэкендов>
-
Чтобы изменить базовые параметры группы бэкендов, воспользуйтесь методом REST API update для ресурса BackendGroup или вызовом gRPC API BackendGroupService/Update.
Добавить бэкенд в группу
-
В консоли управления
выберите каталог, в котором создан бэкенд. -
Выберите сервис Application Load Balancer.
-
На панели слева выберите
Группы бэкендов. -
Нажмите на имя нужной группы.
-
Нажмите кнопку
Создать бэкенд. -
В открывшемся окне задайте настройки бэкенда:
-
Имя бэкенда.
-
Вес — относительный вес бэкенда при распределении трафика. Если опция в поле отключена, эндпоинты бэкенда не будут получать трафик (вес будет равен 0).
-
Тип бэкенда (для группы бэкендов типа
HTTP
):Целевая группа
(целевые группы Application Load Balancer) илиБакет
(бакет Object Storage). Для группы бэкендов типаgRPC
или Stream тип любого бэкенда —Целевая группа
. Подробнее о типах бэкендов см. в разделе Типы бэкендов. -
Следующие настройки доступны только для типа бэкенда Целевая группа:
-
В блоке Настройки балансировки:
- Режим балансировки — режим распределения трафика между эндпоинтами бэкенда.
- Порог для режима паники — доля работоспособных эндпоинтов, при которой включится режим паники: балансировщик будет распределять запросы во все эндпоинты, не учитывая результаты проверок состояния.
- Локализация трафика — доля входящего трафика, которую узел балансировщика передает бэкендам из своей зоны доступности. Остальной трафик поровну делится между другими зонами. Подробнее см. в разделе Локализация трафика.
- Строгая локализация — опция, при которой балансировщик будет отвечать ошибкой (
503 Service Unavailable
), если в зоне доступности, где был принят запрос, нет работающих бэкендов приложения.
-
В блоке Настройки протокола:
-
Для группы бэкендов типа
HTTP
:-
HTTP/2 — опция использования протокола HTTP/2 при отправке запросов к бэкенду для группы бэкендов типа
HTTP
. По умолчанию используется протокол версии 1.1. Группы бэкендов типаgRPC
поддерживают только HTTP/2-соединения. -
Протокол — протокол соединений с бэкендом:
HTTP
(без шифрования) илиHTTPS
(с TLS-шифрованием). Для протоколаHTTPS
укажите:- SNI. Доменное имя хоста для Server Name Indication — расширения TLS.
- Доверенный корневой сертификат. Укажите корневой сертификат
(Root CA) для цепочки сертификатов, установленной на эндпоинтах бэкендов. Поддерживаются сертификаты стандарта X.509 в формате PEM .
-
-
Для группы бэкендов типа
gRPC
:- Протокол — протокол соединений с бэкендом:
Открытый
илиЗашифрованный
. Для зашифрованного протокола укажите SNI и Доверенный корневой сертификат (см. выше).
- Протокол — протокол соединений с бэкендом:
-
Для группы бэкендов типа
Stream
:-
Протокол PROXY — опция, при которой балансировщик передает бэкенду метаданные своего соединения с клиентом, в том числе его IP-адрес, по протоколу PROXY от HAProxy
. -
Протокол — протокол соединений с бэкендом:
Открытый
илиЗашифрованный
. Для зашифрованного протокола укажите SNI и Доверенный корневой сертификат (см. выше).
-
-
-
-
Следующие настройки доступны только для типа бэкенда Бакет для типа группы бэкендов HTTP:
- Формат указания бакета — выберите одну из опций:
Список
илиID
. - Бакет — выберите из списка или укажите идентификатор нужного бакета.
- Формат указания бакета — выберите одну из опций:
-
В блоке HTTP проверка состояния, gRPC проверка состояния или Stream проверка состояния:
-
Таймаут, с — время ожидания ответа.
-
Интервал — интервал отправки проверочных запросов.
-
Порог работоспособности — количество последовательных успешных проверок, после которых эндпоинт считается работоспособным. Игнорируется в начале работы балансировщика: достаточно одной проверки.
-
Порог неработоспособности — количество последовательных неуспешных проверок, после которых эндпоинт считается неработоспособным. Игнорируется, если бэкенд один раз ответил HTTP-кодом состояния
503 Service Unavailable
: он сразу считается неработоспособным. -
Порт.
-
Тип — протокол, по которому будет осуществляться проверка:
HTTP
,gRPC
илиStream
. Тип проверки может не совпадать с типом группы бэкендов. Дополнительно укажите:-
Для типа
HTTP
:- Путь — путь в URI запроса к эндпоинту.
- Authority — значение заголовка
Host
для HTTP/1.1 или псевдо-заголовка:authority
для HTTP/2, которое будет передаваться эндпоинтам бэкенда при проверках состояния. - HTTP/2 — опция использования протокола HTTP версии 2.
-
Для типа
gRPC
:- Имя сервиса — имя проверяемого gRPC-сервиса. Если сервис не указан, проверяется общее состояние бэкенда.
-
Для типа
Stream
:- Отправка — данные, которые отправляются на эндпоинт для проверки состояния.
- Получение — данные, которые должны поступить с эндпоинта, чтобы он прошел проверку состояния.
-
Внимание
Если в зоне доступности все бэкенды с подключенными проверками состояния не прошли проверки, трафик перестанет поступать в зону, даже если в ней есть рабочие бэкенды без проверок состояния.
Рекомендуется настраивать проверки состояния для всех бэкендов.
Чтобы добавить проверку состояния, внизу блока бэкенда нажмите кнопку Добавить проверку состояния и задайте настройки проверки.
Чтобы удалить проверку состояния, напротив заголовка HTTP проверка состояния, gRPC проверка состояния или Stream проверка состояния нажмите
и выберите Удалить. -
-
-
Нажмите кнопку Добавить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Добавьте в группу бэкенд и проверку состояния.
Внимание
Если в зоне доступности все бэкенды с подключенными проверками состояния не прошли проверки, трафик перестанет поступать в зону, даже если в ней есть рабочие бэкенды без проверок состояния.
Рекомендуется настраивать проверки состояния для всех бэкендов.
Внутри группы все бэкенды должны быть одного типа — HTTP
или Stream
.
HTTP-бэкенд
Выполните команду:
yc alb backend-group add-http-backend \
--backend-group-name <имя_бэкенд_группы> \
--name <имя_добавляемого_бэкенда> \
--weight <вес_бэкенда> \
--port <порт_бэкенда> \
--target-group-id=<идентификатор_целевой_группы> \
--panic-threshold 90 \
--http-healthcheck port=80,healthy-threshold=10,unhealthy-threshold=15,\
timeout=10s,interval=2s,host=<адрес_хоста>,path=<путь>
Где:
--panic-threshold
— порог для режима паники.--http-healthcheck
— параметры проверки состояния ресурсов:port
— порт.healthy-threshold
— порог работоспособности.unhealthy-threshold
— порог неработоспособности.timeout
— таймаут.interval
— интервал.host
— адрес хоста.path
— путь.
Результат:
id: a5dqkr2mk3rr********
name: <имя_группы_бэкендов>
folder_id: aoe197919j8e********
...
host: <адрес_хоста>
path: <путь>
created_at: "2021-02-11T20:46:21.688940670Z"
gRPC-бэкенд
Выполните команду:
yc alb backend-group add-grpc-backend \
--backend-group-name <имя_бэкенд_группы> \
--name <имя_добавляемого_бэкенда> \
--weight <вес_бэкенда> \
--port <порт_бэкенда> \
--target-group-id=<идентификатор_целевой_группы> \
--panic-threshold 90 \
--grpc-healthcheck port=80,healthy-threshold=10,unhealthy-threshold=15,\
timeout=10s,interval=2s,service-name=<имя_gRPC-сервиса>
Где:
--panic-threshold
— порог для режима паники.--grpc-healthcheck
— параметры проверки состояния ресурсов:port
— порт.healthy-threshold
— порог работоспособности.unhealthy-threshold
— порог неработоспособности.timeout
— таймаут.interval
— интервал.service-name
— имя проверяемого gRPC-сервиса. Если сервис не указан, проверяется общее состояние бэкенда.
Результат:
id: a5dqkr2mk3rr********
name: <имя_группы_бэкендов>
folder_id: aoe197919j8e********
...
grpc:
service_name: <имя_gRPC-сервиса>
...
created_at: "2021-02-11T20:46:21.688940670Z"
Stream-бэкенд
Выполните команду:
yc alb backend-group add-stream-backend \
--backend-group-name <имя_бэкенд_группы> \
--name <имя_добавляемого_бэкенда> \
--weight <вес_бэкенда> \
--port <порт_бэкенда> \
--target-group-id=<идентификатор_целевой_группы> \
--panic-threshold 90 \
--enable-proxy-protocol \
--stream-healthcheck port=80,healthy-threshold=10,unhealthy-threshold=15,\
timeout=10s,interval=2s,send-text=<данные_к_эндпоинту>,receive-text=<данные_от_эндпоинта>
Где:
--panic-threshold
— порог для режима паники.--enable-proxy-protocol
— опция, при которой балансировщик передает бэкенду метаданные своего соединения с клиентом, в том числе его IP-адрес, по протоколу PROXY от HAProxy . Если опция не задана, в бэкенд передается только IP-адрес балансировщика.--stream-healthcheck
— параметры проверки состояния ресурсов:port
— порт.healthy-threshold
— порог работоспособности.unhealthy-threshold
— порог неработоспособности.timeout
— таймаут.interval
— интервал.send-text
— данные, которые отправляются на эндпоинт для проверки состояния.receive-text
— данные, которые должны поступить с эндпоинта, чтобы он прошел проверку состояния.
Результат:
id: ds77tero4f5********
name: <имя_группы_бэкендов>
folder_id: b1gu6g9ielh6********
...
text: <данные_к_эндпоинту>
receive:
text: <данные_от_эндпоинта>
enable_proxy_protocol: true
created_at: "2022-04-06T09:17:57.104324513Z"
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте конфигурационный файл Terraform и добавьте блок с описанием бэкенда (
http_backend
,grpc_backend
илиstream_backend
) во фрагмент с описанием группы бэкендов:resource "yandex_alb_backend_group" "test-backend-group" { name = "<имя_группы_бэкендов>" stream_backend { name = "<имя_бэкенда>" weight = 1 port = 80 target_group_ids = ["<идентификатор_целевой_группы>"] load_balancing_config { panic_threshold = 90 } enable_proxy_protocol = true healthcheck { timeout = "10s" interval = "2s" healthy_threshold = 10 unhealthy_threshold = 15 stream_healthcheck { send = "<данные_к_эндпоинту>" receive = "<данные_от_эндпоинта>" } } } }
Где
yandex_alb_backend_group
— параметры группы бэкендов:name
— имя группы бэкендов.http_backend
,grpc_backend
иstream_backend
— тип бэкенда. Внутри группы все бэкенды должны быть одного типа —HTTP
,gRPC
илиStream
.
Параметры бэкенда:
-
name
— имя бэкенда. -
port
— порт бэкенда. -
weight
— вес бэкенда. -
target_group_ids
— идентификатор целевой группы. Получить список доступных целевых групп можно с помощью команды CLI:yc alb target-group list
. -
load_balancing_config
— параметры балансировки:panic_threshold
— порог для режима паники.
-
enable_proxy_protocol
— опция, при которой балансировщик передает бэкенду метаданные своего соединения с клиентом, в том числе его IP-адрес, по протоколу PROXY от HAProxy . Если опция не задана, в бэкенд передается только IP-адрес балансировщика. Параметр доступен только для бэкендов типаStream
. -
healthcheck
— параметры проверки состояния:timeout
— таймаут.interval
— интервал.healthy_threshold
— порог работоспособности.unhealthy_threshold
— порог неработоспособности.http_healthcheck
— параметры проверки состояния типаHTTP
:path
— путь.host
— адрес хоста.
grpc_healthcheck
— параметры проверки состояния типаgRPC
:service_name
— имя проверяемого gRPC-сервиса. Если сервис не указан, проверяется общее состояние бэкенда.
stream_healthcheck
— параметры проверки состояния типаStream
:send
— данные, которые отправляются на эндпоинт для проверки состояния.receive
— данные, которые должны поступить с эндпоинта, чтобы он прошел проверку состояния.
Внимание
Если в зоне доступности все бэкенды с подключенными проверками состояния не прошли проверки, трафик перестанет поступать в зону, даже если в ней есть рабочие бэкенды без проверок состояния.
Рекомендуется настраивать проверки состояния для всех бэкендов.
Подробную информацию о параметрах ресурса
yandex_alb_backend_group
см. в документации провайдера Terraform . -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Проверить изменения группы бэкендов можно в консоли управления
или с помощью команды CLI:yc alb backend-group get --name <имя_группы_бэкендов>
-
Чтобы изменить базовые параметры группы, воспользуйтесь методом REST API addBackend для ресурса BackendGroup или вызовом gRPC API BackendGroupService/AddBackend.
Изменить параметры бэкенда в группе
- В консоли управления
выберите каталог, в котором создан бэкенд. - Выберите сервис Application Load Balancer.
- На панели слева выберите
Группы бэкендов. - Нажмите на имя нужной группы.
- Напротив имени бэкенда нажмите
и выберите Редактировать. - В открывшемся окне задайте настройки бэкенда. Подробнее о настройках см. выше.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для изменения параметров бэкенда:
yc alb backend-group update-<тип_бэкенда>-backend --help
-
Укажите новые параметры бэкенда в зависимости от его типа:
HTTP-бэкенд
Выполните команду:
yc alb backend-group update-http-backend \ --backend-group-name <имя_группы_бэкендов> \ --name <имя_добавляемого_бэкенда> \ --weight <вес_бэкенда> \ --port <порт_бэкенда> \ --target-group-id=<идентификатор_целевой_группы> \ --panic-threshold 90 \ --http-healthcheck port=80,healthy-threshold=10,unhealthy-threshold=15,\ timeout=10s,interval=2s,host=your-host.com,path=/ping
Где:
--panic-threshold
— порог для режима паники.--http-healthcheck
— параметры проверки состояния ресурсов:port
— порт.healthy-threshold
— порог работоспособности.unhealthy-threshold
— порог неработоспособности.timeout
— таймаут.interval
— интервал.host
— адрес хоста.path
— путь.
Результат:
id: a5dqkr2mk3rr******** name: <имя_группы_бэкендов> folder_id: aoe197919j8e******** ... host: <адрес_хоста> path: <путь> created_at: "2021-02-11T20:46:21.688940670Z"
gRPC-бэкенд
Выполните команду:
yc alb backend-group update-grpc-backend \ --backend-group-name <имя_группы_бэкендов> \ --name <имя_добавляемого_бэкенда> \ --weight <вес_бэкенда> \ --port <порт_бэкенда> \ --target-group-id=<идентификатор_целевой_группы> \ --panic-threshold 90 \ --grpc-healthcheck port=80,healthy-threshold=10,unhealthy-threshold=15,\ timeout=10s,interval=2s,service-name=<имя_gRPC-сервиса>
Где:
--panic-threshold
— порог для режима паники.--grpc-healthcheck
— параметры проверки состояния ресурсов:port
— порт.healthy-threshold
— порог работоспособности.unhealthy-threshold
— порог неработоспособности.timeout
— таймаут.interval
— интервал.service-name
— имя проверяемого gRPC-сервиса. Если сервис не указан, проверяется общее состояние бэкенда.
Результат:
id: a5dqkr2mk3rr******** name: <имя_группы_бэкендов> folder_id: aoe197919j8e******** ... grpc: service_name: <имя_gRPC-сервиса> ... created_at: "2021-02-11T20:46:21.688940670Z"
Stream-бэкенд
Выполните команду:
yc alb backend-group update-stream-backend \ --backend-group-name <имя_группы_бэкендов> \ --name <имя_добавляемого_бэкенда> \ --weight <вес_бэкенда> \ --port <порт_бэкенда> \ --target-group-id=<идентификатор_целевой_группы> \ --panic-threshold 90 \ --enable-proxy-protocol \ --stream-healthcheck port=80,healthy-threshold=10,unhealthy-threshold=15,\ timeout=10s,interval=2s,send-text=<данные_к_эндпоинту>,receive-text=<данные_от_эндпоинта>
Где:
--panic-threshold
— порог для режима паники.--enable-proxy-protocol
— опция, при которой балансировщик передает бэкенду метаданные своего соединения с клиентом, в том числе его IP-адрес, по протоколу PROXY от HAProxy . Если опция не задана, в бэкенд передается только IP-адрес балансировщика.--stream-healthcheck
— параметры проверки состояния ресурсов:port
— порт.healthy-threshold
— порог работоспособности.unhealthy-threshold
— порог неработоспособности.timeout
— таймаут.interval
— интервал.send-text
— данные, которые отправляются на эндпоинт для проверки состояния.receive-text
— данные, которые должны поступить с эндпоинта, чтобы он прошел проверку состояния.
Результат:
id: ds77tero4f5******** name: <имя_группы_бэкендов> folder_id: b1gu6g9ielh6******** ... text: <данные_к_эндпоинту> receive: text: <данные_от_эндпоинта> enable_proxy_protocol: true created_at: "2022-04-06T09:17:57.104324513Z"
Внимание
Если в зоне доступности все бэкенды с подключенными проверками состояния не прошли проверки, трафик перестанет поступать в зону, даже если в ней есть рабочие бэкенды без проверок состояния.
Рекомендуется настраивать проверки состояния для всех бэкендов.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте конфигурационный файл Terraform и измените параметры блока с описанием бэкенда (
http_backend
,grpc_backend
илиstream_backend
) во фрагменте с описанием группы бэкендов:resource "yandex_alb_backend_group" "test-backend-group" { name = "<имя_группы_бэкендов>" stream_backend { name = "<имя_бэкенда>" weight = 1 port = 80 target_group_ids = ["<идентификатор_целевой_группы>"] load_balancing_config { panic_threshold = 90 } enable_proxy_protocol = true healthcheck { timeout = "10s" interval = "2s" healthy_threshold = 10 unhealthy_threshold = 15 stream_healthcheck { send = "<данные_к_эндпоинту>" receive = "<данные_от_эндпоинта>" } } } }
Где
yandex_alb_backend_group
— параметры группы бэкендов:name
— имя группы бэкендов.http_backend
,grpc_backend
иstream_backend
— тип бэкенда. Внутри группы все бэкенды должны быть одного типа —HTTP
,gRPC
илиStream
.
Параметры бэкенда:
-
name
— имя бэкенда. -
port
— порт бэкенда. -
weight
— вес бэкенда. -
target_group_ids
— идентификатор целевой группы. Получить список доступных целевых групп можно с помощью команды CLI:yc alb target-group list
. -
load_balancing_config
— параметры балансировки:panic_threshold
— порог для режима паники.
-
enable_proxy_protocol
— опция, при которой балансировщик передает бэкенду метаданные своего соединения с клиентом, в том числе его IP-адрес, по протоколу PROXY от HAProxy . Если опция не задана, в бэкенд передается только IP-адрес балансировщика. Параметр доступен только для бэкендов типаStream
. -
healthcheck
— параметры проверки состояния:timeout
— таймаут.interval
— интервал.healthy_threshold
— порог работоспособности.unhealthy_threshold
— порог неработоспособности.http_healthcheck
— параметры проверки состояния типаHTTP
:path
— путь.host
— адрес хоста.
grpc_healthcheck
— параметры проверки состояния типаgRPC
:service_name
— имя проверяемого gRPC-сервиса. Если сервис не указан, проверяется общее состояние бэкенда.
stream_healthcheck
— параметры проверки состояния типаStream
:send
— данные, которые отправляются на эндпоинт для проверки состояния.receive
— данные, которые должны поступить с эндпоинта, чтобы он прошел проверку состояния.
Внимание
Если в зоне доступности все бэкенды с подключенными проверками состояния не прошли проверки, трафик перестанет поступать в зону, даже если в ней есть рабочие бэкенды без проверок состояния.
Рекомендуется настраивать проверки состояния для всех бэкендов.
Подробную информацию о параметрах ресурса
yandex_alb_backend_group
см. в документации провайдера Terraform . -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Проверить изменения группы бэкендов можно в консоли управления
или с помощью команды CLI:yc alb backend-group get --name <имя_группы_бэкендов>
-
Чтобы изменить параметры бэкенда в группе, воспользуйтесь методом REST API updateBackend для ресурса BackendGroup или вызовом gRPC API BackendGroupService/UpdateBackend.
Удалить бэкенд из группы
Чтобы удалить бэкенд из группы:
- В консоли управления
выберите каталог, в котором создан бэкенд. - Выберите сервис Application Load Balancer.
- На панели слева выберите
Группы бэкендов. - Нажмите на имя нужной группы.
- Напротив имени бэкенда нажмите
и выберите Удалить. - В открывшемся окне нажмите кнопку Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для удаления бэкенда из группы:
yc application-load-balancer delete-<тип_бэкенда>-backend --help
-
В зависимости от типа бэкенда выполните команду для удаления:
-
HTTP-бэкенд:
yc alb backend-group delete-http-backend \ --backend-group-name=<имя_группы_бэкендов> \ --name=<имя_удаляемого_бэкенда>
-
gRPC-бэкенд:
yc alb backend-group delete-grpc-backend \ --backend-group-name=<имя_группы_бэкендов> \ --name=<имя_удаляемого_бэкенда>
-
Stream-бэкенд:
yc alb backend-group delete-stream-backend \ --backend-group-name=<имя_группы_бэкендов> \ --name=<имя_удаляемого_бэкенда>
Результат:
id: a5dqkr2mk3rr******** name: <имя_бэкенда> folder_id: aoe197919j8e******** created_at: "2021-02-11T20:46:21.688940670Z"
-
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте конфигурационный файл Terraform и удалите блок с описанием бэкенда (
http_backend
,grpc_backend
илиstream_backend
) во фрагменте с описанием группы бэкендов.Пример описания группы бэкендов в конфигурации Terraform:
resource "yandex_alb_backend_group" "test-backend-group" { name = "<имя_группы_бэкендов>" http_backend { name = "<имя_бэкенда>" weight = 1 port = 80 target_group_ids = ["<идентификатор_целевой_группы>"] load_balancing_config { panic_threshold = 90 } healthcheck { timeout = "10s" interval = "2s" healthy_threshold = 10 unhealthy_threshold = 15 http_healthcheck { path = "/" } } } }
Подробную информацию о параметрах ресурса
yandex_alb_backend_group
см. в документации провайдера Terraform . -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Проверить изменения группы бэкендов можно в консоли управления
или с помощью команды CLI:yc alb backend-group get --name <имя_группы_бэкендов>
-
Воспользуйтесь методом REST API removeBackend для ресурса BackendGroup или вызовом gRPC API BackendGroupService/RemoveBackend.