Облачная платформаEvolution

Настройка параметров балансировщика нагрузки


В кластере Managed Kubernetes можно настроить параметры балансировщика нагрузки через аннотации в Service.

Сейчас Managed Kubernetes поддерживает создание балансировщика нагрузки как версии 1, так и версии 2. Балансировщик нагрузки версии 1 в настоящий момент выводится из эксплуатации.

В кластерах Managed Kubernetes рекомендуем создавать балансировщик нагрузки версии 2. Чтобы перейти с версии 1 на версию 2, пересоздайте балансировщик.

В этом разделе приведен справочник аннотаций для балансировщика нагрузки версии 2.

Идентификатор балансировщика

Идентификатор экземпляра балансировщика нагрузки.

Значение присваивается автоматически и пользователь не может изменять его.

Аннотация

networking.cloud.ru/load-balancer-id

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-id: "496e40f7-cc4b-4fa4-b42a-8cd2c9360716"
...

Идентификатор целевой группы

Идентификатор экземпляра целевой группы, которая используется балансировщиком нагрузки.

Значение присваивается автоматически и пользователь не может изменять его.

Аннотация

networking.cloud.ru/load-balancer-backend-group-id

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-backend-group-id: "496e40f7-cc4b-4fa4-b42a-8cd2c9360716"
...

Название балансировщика

Название экземпляра балансировщика нагрузки.

Значение присваивается автоматически и пользователь не может изменять его.

Аннотация

networking.cloud.ru/load-balancer-name

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-name: "mk8s-lb-496e40f7-cc4b-4fa4-b42a-8cd2c9360716"
...

Описание балансировщика

Описание экземпляра балансировщика нагрузки.

Аннотация

networking.cloud.ru/load-balancer-description

Не более 255 символов.

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-description: "Example LB"
...

Типы IP-адресов

Типы IP-адресов, которые будут выделены для балансировщика.

Аннотация

networking.cloud.ru/load-balancer-type

После создания балансировщика нагрузки параметр нельзя изменить.

Возможные значения:

  • internal — внутренние IP-адреса из заданной подсети.

  • external — внешние IP-адреса.

Примечание

Внутренний IP-адрес балансировщика доступен только из той же VPC, в которой размещен балансировщик. Настройка маршрутизации к внутреннему IP-адресу из внешних сетей создаст неполную связность, при которой обратный трафик не доходит до внешних сетей.

Для доступа из внешних сетей используйте внешний IP-адрес.

Значение по умолчанию: external.

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-type: "internal"
...

Подсеть для внутреннего IP-адреса

Идентификатор подсети, из которой будет выделен IP-адрес экземпляру балансировщика нагрузки. Подсеть должна находиться в той же VPC, что и кластер.

Аннотация

networking.cloud.ru/load-balancer-internal-subnet-id

Обязательный параметр, если используется тип internal.

После создания балансировщика нагрузки параметр нельзя изменить.

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-internal-subnet-id: "496e40f7-cc4b-4fa4-b42a-8cd2c9360716"
...

IP-адрес

IP-адрес из подсети, указанной в аннотации networking.cloud.ru/load-balancer-internal-subnet-id, который должен быть назначен балансировщику.

Аннотация

networking.cloud.ru/load-balancer-internal-ipv4

После создания балансировщика нагрузки параметр нельзя изменить.

Если аннотация не указана, то IP-адрес будет назначен автоматически.

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-internal-ipv4: "192.168.10.24"
...

Подсети для размещения реплик балансировщика

Список идентификаторов внутренних подсетей, из которых будут выделены IP-адреса для реплик балансировщика. C IP-адресов сетевой трафик будет доставляться к целям.

Подсети также определяют зоны доступности, в которых будут расположены реплики балансировщика.

Внимание

Обязательный параметр для балансировщика версии 2. Если не указать, будет создан балансировщик версии 1.

Аннотация

networking.cloud.ru/load-balancer-return-subnet-ids

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-type: "internal, external"
networking.cloud.ru/load-balancer-return-subnet-ids: "43ca5087-f15d-4a59-ba80-e5de7ff3d31d, 96d1096b-9b65-42f1-bc66-e18f52378ee5"
...

Отключение проверок доступности

Признак отключения проверки доступности узлов.

Аннотация

networking.cloud.ru/load-balancer-health-check-disabled

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-health-check-disabled: ""
...

Протокол проверки доступности

Протокол проверки доступности узлов.

Аннотация

networking.cloud.ru/load-balancer-health-check-protocol

Возможные значения:

  • tcp — выполняется попытка установить TCP-соединение с узлом на заданном порту. Узел считается доступным, если соединение установлено успешно.

  • http — выполняется отправка HTTP-запроса и ожидается определенный код ответа, например 200 OK.

Значение по умолчанию: tcp.

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-health-check-protocol: "http"
...

HTTP-путь для проверки доступности

Путь (часть URL), который будет использован для отправки HTTP-запроса.

Аннотация

networking.cloud.ru/load-balancer-health-check-http-path

Обязательный параметр, если выбран HTTP-протокол.

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-health-check-protocol: "http"
networking.cloud.ru/load-balancer-health-check-http-path: "/health"
...

Порт для проверки доступности

Номер порта цели, на который будут отправляться запросы проверки доступности.

Если аннотация не указана, номер порта определяется Kubernetes.

Аннотация

networking.cloud.ru/load-balancer-health-check-port

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-health-check-port: 8080
...

Интервал между проверками доступности

Время между проверками доступности, в секундах.

Аннотация

networking.cloud.ru/load-balancer-health-check-interval-seconds

Возможные значения: от 3 до 30.

Значение по умолчанию: 10.

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-health-check-interval-seconds: 8
...

Таймаут для проверок доступности

Время ожидания ответа на запрос проверки доступности, в секундах. Если время истекло, проверка считается проваленной.

Аннотация

networking.cloud.ru/load-balancer-health-check-timeout-seconds

Возможные значения: от 3 до 30.

Значение по умолчанию: 3.

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-health-check-timeout-seconds: 6
...

Ограничение на проверки доступности

Ограничение на количество проваленных проверок доступности. Если количество проваленных подряд проверок превысило ограничение, цель считается недоступной.

Если проверка выполняется с помощью HTTP-запросов, то при получении ответа с кодом 503 цель считается недоступной сразу и ограничение игнорируется.

Аннотация

networking.cloud.ru/load-balancer-health-check-unhealthy-threshold-count

Возможные значения: от 3 до 25.

Значение по умолчанию: 3.

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-health-check-unhealthy-threshold-count: 5
...

Успешные проверки доступности

Количество успешных последовательных проверок, необходимых, чтобы считать ранее недоступный хост доступным.

Аннотация

networking.cloud.ru/load-balancer-health-check-healthy-threshold-count

Возможные значения: от 3 до 25.

Значение по умолчанию: 3.

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-health-check-healthy-threshold-count: 5
...

Алгоритм

Алгоритм балансировки нагрузки.

Аннотация

networking.cloud.ru/load-balancer-algorithm

Возможные значения:

  • round_robin

  • maglev

  • least_request

Значение по умолчанию: round_robin.

Пример

...
metadata:
name: cloudru-example
annotations:
networking.cloud.ru/load-balancer-algorithm: "maglev"
...

Разрешенные IP-адреса

Список диапазонов IP-адресов (CIDR), которым разрешен доступ к балансировщику нагрузки.

Рекомендуется указывать список не в аннотации, а в поле .Spec.LoadBalancerSourceRanges сервиса. В этом случае аннотация игнорируется.

Аннотация

networking.cloud.ru/load-balancer-source-ranges

Значение по умолчанию: 0.0.0.0/0.

Пример

...
metadata:
name: cloudru-example
spec:
loadBalancerSourceRanges:
- 10.10.2.0/24