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

Настройка служб LoadBalancer с использованием аннотаций

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Вы можете добавить аннотации в файл YAML, чтобы использовать некоторые продвинутые функции CCE. Этот раздел описывает доступные аннотации при создании службы LoadBalancer.

Взаимосвязь с ELB

Таблица 1 Аннотации для взаимосвязи с ELB

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.class

Строка

Выберите подходящий тип load balancer.

Опции:

  • union: совместный load balancer
  • производительность: выделенный load balancer, который может использоваться только в кластерах v1.17 и новее.

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

v1.9 or later

kubernetes.io/elb.id

Строка

Обязательно, когда связан существующий load balancer.

ID load balancer.

Как получить:

В консоли управления нажмите Список сервисов, и выберите Сеть > Elastic Load Balance. Нажмите имя целевого load balancer. На Сводка вкладке, найдите и скопируйте ID.

ПРИМЕЧАНИЕ:

Система предпочтительно подключает к load balancer на основе kubernetes.io/elb.id поле. Если это поле не указано, то spec.loadBalancerIP поле используется (необязательно и доступно только в версиях 1.23 и ранее).

Не используйте spec.loadBalancerIP поле для подключения к load balancer. Это поле будет отменено Kubernetes. Подробности см. Устаревание.

v1.9 or later

kubernetes.io/elb.autocreate

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

Пример

  • Автоматически созданный выделенный load balancer с привязанным EIP:

    '{"type":"public","bandwidth_name":"cce-bandwidth-1741230802502","bandwidth_chargemode":"bandwidth","bandwidth_size":5,"bandwidth_sharetype":"PER","eip_type":"5_bgp","available_zone":["*****"],"elb_virsubnet_ids":["*****"],"l7_flavor_name":"","l4_flavor_name":"L4_flavor.elb.pro.max","vip_subnet_cidr_id":"*****"}'

  • Автоматически созданный выделенный load balancer без привязанного EIP:

    '{"type":"inner","available_zone":["*****"],"elb_virsubnet_ids":["*****"],"l7_flavor_name":"","l4_flavor_name":"L4_flavor.elb.pro.max","vip_subnet_cidr_id":"*****"}'

  • Автоматически созданный совместный load balancer с привязанным EIP:

    '{"type":"public","bandwidth_name":"cce-bandwidth-1551163379627","bandwidth_chargemode":"bandwidth","bandwidth_size":5,"bandwidth_sharetype":"PER","eip_type":"5_bgp","name":"james"}'

  • Автоматически созданный совместный load balancer без привязанного EIP:

    {"type":"inner","name":"A-location-d-test"}

v1.9 or later

kubernetes.io/elb.enterpriseID

Строка

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

Кластеры v1.15 и более поздних версий поддерживают это поле. В кластерах старше v1.15 балансировщики нагрузки создаются в проекте по умолчанию.

Этот параметр указывает ID проекта предприятия, в котором будет создан ELB load balancer.

Если этот параметр не указан или установлен в 0, ресурсы будут привязаны к проекту предприятия по умолчанию.

Как получить:

Войдите в консоль управления и выберите Enterprise > Управление проектом в верхней панели меню. В отображаемом списке нажмите имя целевого enterprise project, и скопируйте ID на странице деталей enterprise project.

v1.15 or later

kubernetes.io/elb.subnet-id

Строка

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

ID подсети, в которой находится кластер. Значение может содержать от 1 до 100 символов.

  • Обязательно, когда кластер версии v1.11.7-r0 или более ранней должен быть автоматически создан.
  • Необязательно для кластеров версии новее, чем v1.11.7-r0.

Обязательно для кластеров версии ранее v1.11.7-r0

Отбрасывается в кластерах версии новее, чем v1.11.7-r0

kubernetes.io/elb.lb-algorithm

String

Указывает алгоритм балансировки нагрузки группы бекенд‑серверов. Значение по умолчанию — ROUND_ROBIN.

Опции:

  • ROUND_ROBIN: алгоритм взвешенного round robin
  • LEAST_CONNECTIONS: алгоритм взвешенных наименьших соединений
  • SOURCE_IP: алгоритм хеширования по IP‑источнику
ПРИМЕЧАНИЕ:

Если этот параметр установлен в SOURCE_IP, настройка веса (вес поле) бекенд‑серверов, привязанных к группе бекенд‑серверов, недействительно, и режим sticky session не может быть включён.

v1.9 или новее

Ниже показано, как использовать приведённые выше аннотации:

  • Связать с существующим балансировщиком нагрузки. Подробнее см. Создание сервиса с помощью kubectl (используя существующий балансировщик нагрузки).
    apiVersion: v1
    kind: Service
    metadata:
    name: nginx
    annotations:
    kubernetes.io/elb.id: <your_elb_id> # Load balancer ID. Replace it with the actual value.
    kubernetes.io/elb.class: performance # Load balancer type
    kubernetes.io/elb.lb-algorithm: ROUND_ROBIN # Load balancer algorithm
    spec:
    selector:
    app: nginx
    ports:
    - name: service0
    port: 80
    protocol: TCP
    targetPort: 80
    type: LoadBalancer
  • Автоматически создать балансировщик нагрузки. Подробнее см. Создание сервиса с помощью kubectl (автоматическое создание балансировщика нагрузки).

    Общий балансировщик нагрузки:

    apiVersion: v1
    kind: Service
    metadata:
    annotations:
    kubernetes.io/elb.class: union
    kubernetes.io/elb.autocreate: '{
    "type": "public",
    "bandwidth_name": "cce-bandwidth-1551163379627",
    "bandwidth_chargemode": "bandwidth",
    "bandwidth_size": 5,
    "bandwidth_sharetype": "PER",
    "eip_type": "5_bgp"
    }'
    kubernetes.io/elb.enterpriseID: '0' # ID of the enterprise project to which the load balancer belongs
    kubernetes.io/elb.lb-algorithm: ROUND_ROBIN # Load balancer algorithm
    labels:
    app: nginx
    name: nginx
    spec:
    ports:
    - name: service0
    port: 80
    protocol: TCP
    targetPort: 80
    selector:
    app: nginx
    type: LoadBalancer

    Выделенный балансировщик нагрузки:

    apiVersion: v1
    kind: Service
    metadata:
    name: nginx
    labels:
    app: nginx
    namespace: default
    annotations:
    kubernetes.io/elb.class: performance
    kubernetes.io/elb.autocreate: '{
    "type": "public",
    "bandwidth_name": "cce-bandwidth-1626694478577",
    "bandwidth_chargemode": "bandwidth",
    "bandwidth_size": 5,
    "bandwidth_sharetype": "PER",
    "eip_type": "5_bgp",
    "available_zone": [
    ""
    ],
    "l4_flavor_name": "L4_flavor.elb.s1.small"
    }'
    kubernetes.io/elb.enterpriseID: '0' # ID of the enterprise project to which the load balancer belongs
    kubernetes.io/elb.lb-algorithm: ROUND_ROBIN # Load balancer algorithm
    spec:
    selector:
    app: nginx
    ports:
    - name: cce-service-0
    targetPort: 80
    nodePort: 0
    port: 80
    protocol: TCP
    type: LoadBalancer

Sticky Session

Table 2 Аннотации для sticky session

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.session-affinity-mode

String

Sticky session, основанный на IP‑адресе источника, означает, что запросы от одного и того же IP‑адреса перенаправляются на один и тот же бекенд‑сервер.

  • Чтобы отключить sticky session, оставьте этот параметр незаданным.
  • Чтобы включить sticky session, добавьте этот параметр и установите его в SOURCE_IP, указывая, что sticky session основан на IP‑адресе источника.
ПРИМЕЧАНИЕ:

Когда kubernetes.io/elb.lb-algorithm установлен в SOURCE_IP (хеш IP‑источника), sticky session не может быть включён.

v1.9 или новее

kubernetes.io/elb.session-affinity-option

Тайм‑аут sticky session.

v1.9 или новее

Ниже показано, как использовать приведённые выше аннотации:

apiVersion: v1
kind: Service
metadata:
name: nginx
annotations:
kubernetes.io/elb.id: <your_elb_id> # Load balancer ID. Replace it with the actual value.
kubernetes.io/elb.class: union # Load balancer type
kubernetes.io/elb.session-affinity-mode: SOURCE_IP # The sticky session type is source IP address.
kubernetes.io/elb.session-affinity-option: '{"persistence_timeout": "30"}' # Stickiness duration, which is measured in minutes
spec:
selector:
app: nginx
ports:
- name: service0
port: 80
protocol: TCP
targetPort: 80
type: LoadBalancer

Health Check

Table 3 Аннотации для health check

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.health-check-flag

String

Нужно ли включать проверку состояния ELB.

  • Включение проверки: Оставьте параметр пустым или установите значение on.
  • Отключение проверки: Установите параметр в off.

Если этот параметр включён, kubernetes.io/elb.health-check-option поле также должно быть указано.

v1.9 или новее

kubernetes.io/elb.health-check-option

Элементы конфигурации проверки ELB.

v1.9 или новее

kubernetes.io/elb.health-check-options

Элементы конфигурации проверки ELB. Каждый порт сервиса можно настраивать отдельно, и можно настроить только некоторые порты.

ПРИМЕЧАНИЕ:

Либо kubernetes.io/elb.health-check-option or kubernetes.io/elb.health-check-options может быть настроено.

v1.19.16-r5 или новее

v1.21.8-r0 или новее

v1.23.6-r0 или новее

v1.25.2-r0 или новее

  • Ниже показано, как использовать kubernetes.io/elb.health-check-option:
    apiVersion: v1
    kind: Service
    metadata:
    name: nginx
    annotations:
    kubernetes.io/elb.id: <your_elb_id> # Load balancer ID. Replace it with the actual value.
    kubernetes.io/elb.class: union # Load balancer type
    kubernetes.io/elb.health-check-flag: 'on' # Enable ELB health check.
    kubernetes.io/elb.health-check-option: '{
    "protocol":"TCP",
    "delay":"5",
    "timeout":"10",
    "max_retries":"3"
    }'
    spec:
    selector:
    app: nginx
    ports:
    - name: service0
    port: 80
    protocol: TCP
    targetPort: 80
    type: LoadBalancer
  • Подробности о том, как использовать kubernetes.io/elb.health-check-options, см. Настройка проверки здоровья на нескольких портах службы LoadBalancer.

HTTP or HTTPS

Table 4 Аннотации для использования HTTP или HTTPS

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.protocol-port

String

Если сервис соответствует HTTP/HTTPS, настройте протокол и номер порта в формате "protocol:port".

где,

  • протокол: указывает протокол, используемый портом слушателя. Значение может быть http или https.
  • порты: Порты службы, указанные spec.ports[].port.

v1.19.16 or later

kubernetes.io/elb.cert-id

String

ID сертификата ELB, который используется в качестве HTTPS‑серверного сертификата.

Чтобы получить сертификат, войдите в консоль CCE, выберите Список служб > Сеть > Elastic Load Balance, и нажмите Сертификаты в панели навигации. В списке балансировщиков нагрузки скопируйте ID под именем целевого сертификата.

v1.19.16 or later

Подробности о сценариях применения и примерах использования см. Configuring HTTP/HTTPS for a LoadBalancer Service.

SNI

Таблица 5 Аннотации для использования SNI

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.tls-certificate-ids

String

В ELB идентификаторы сертификатов SNI, содержащих имя домена, разделяются запятыми (,).

Чтобы получить сертификат, войдите в консоль CCE, выберите Список служб > Сеть > Elastic Load Balance, и нажмите Сертификаты в панели навигации. В списке балансировщиков нагрузки скопируйте ID под именем целевого сертификата.

v1.23.13-r0, v1.25.8-r0, v1.27.5-r0, v1.28.3-r0, or later

HTTPS должно быть включено. Подробности см. Configuring SNI for a LoadBalancer Service.

Динамическая настройка веса бэкенд‑ECS

Таблица 6 Аннотации для динамической настройки веса бэкенд‑ECS

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.adaptive-weight

String

Динамически регулировать вес бэкенд‑сервера балансировщика нагрузки в зависимости от количества pod‑ов на сервере. Таким образом, запросы, получаемые каждым pod‑ом, распределяются более равномерно.

  • true: включено
  • false: отключено

v1.21 or later

Note

Этот параметр недействителен при passthrough‑сетевой конфигурации, где в кластере CCE Turbo используются выделенные балансировщики нагрузки.

Ниже показано, как использовать приведённые выше аннотации:

apiVersion: v1
kind: Service
metadata:
name: nginx
annotations:
kubernetes.io/elb.id: <your_elb_id> # Load balancer ID. Replace it with the actual value.
kubernetes.io/elb.class: union # Load balancer type
kubernetes.io/elb.adaptive-weight: 'true' # Enable dynamic adjustment of the weight of the backend ECS.
spec:
selector:
app: nginx
ports:
- name: service0
port: 80
protocol: TCP
targetPort: 80
type: LoadBalancer

Passthrough Capability

Таблица 7 Аннотации для Passthrough Capability

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.pass-through

String

Указывает, проходят ли запросы доступа из кластера к сервису через балансировщик нагрузки ELB.

v1.19 or later

Подробности о сценариях применения и примерах использования см. Настройка Passthrough Networking для службы LoadBalancer.

Blocklist/Trustlist

Таблица 8 Аннотации для контроля доступа ELB

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.acl-id

String

  • Если этот параметр не указан, CCE не изменяет контроль доступа к ELB.
  • Если параметр оставлен пустым, доступ к балансировщику нагрузки разрешён всем IP‑адресам.
  • Если параметр установлен в ID группы IP‑адресов балансировщика нагрузки, включается контроль доступа, и необходимо настроить блоклист или трастлист IP‑адресов для балансировщика нагрузки. Кроме того, требуется настроить оба kubernetes.io/elb.acl-status и kubernetes.io/elb.acl-type.
    ПРИМЕЧАНИЕ:

    Для кластеров v1.25.16-r10, v1.27.16-r10, v1.28.15-r0, v1.29.10-r0, v1.30.6-r0, v1.31.1-r0 и более новых, при использовании выделенного балансировщика нагрузки можно выбрать одновременно не более пяти групп IP‑адресов, разделённых запятыми (,).

    Как получить:

    Войдите в консоль. В Список сервисов, выберите Сеть > Elastic Load Balance. На консоли сети выберите Elastic Load Balance > Группы IP-адресов и скопируйте ID целевой группы IP-адресов.

v1.23.12-r0, v1.25.7-r0, v1.27.4-r0, v1.28.2-r0, or later

kubernetes.io/elb.acl-status

String

Этот параметр обязателен, когда вы настраиваете блоклист или список доверенных IP-адресов для балансировщика нагрузки. Параметры:

  • вкл или true: Управление доступом включено.
  • off или false: Управление доступом отключено.

v1.23.12-r0, v1.25.7-r0, v1.27.4-r0, v1.28.2-r0, or later

kubernetes.io/elb.acl-type

String

Этот параметр обязателен, когда вы настраиваете блоклист или список доверенных IP-адресов для балансировщика нагрузки. Параметры:

  • чёрный: указывает на блоклист. Выбранная группа IP-адресов не может получить доступ к балансировщику нагрузки.
  • белый: указывает на список доверенных. Только выбранная группа IP-адресов может получить доступ к балансировщику нагрузки.

v1.23.12-r0, v1.25.7-r0, v1.27.4-r0, v1.28.2-r0, or later

Ниже показано, как использовать указанные аннотации:

apiVersion: v1
kind: Service
metadata:
name: nginx
annotations:
kubernetes.io/elb.id: <your_elb_id> # Load balancer ID. Replace it with the actual value.
kubernetes.io/elb.class: performance # Load balancer type
kubernetes.io/elb.acl-id: <your_acl_id> # ID of an IP address group for accessing a load balancer
kubernetes.io/elb.acl-status: 'on' # Enable access control.
kubernetes.io/elb.acl-type: 'white' # Trustlist for access control
spec:
selector:
app: nginx
ports:
- name: service0
port: 80
protocol: TCP
targetPort: 80
type: LoadBalancer

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

Хост Сеть

Таблица 9 Аннотации для хост сети

Параметр

Тип

Описание

Поддерживаемая версия Кластера

kubernetes.io/hws-hostNetwork

String

Если pod использует hostNetwork, ELB перенаправляет запрос в хост сеть после использования этой аннотации.

Параметры:

  • true: включено
  • false (по умолчанию): отключено

v1.9 или новее

Ниже показано, как использовать указанные аннотации:

apiVersion: v1
kind: Service
metadata:
name: nginx
annotations:
kubernetes.io/elb.id: <your_elb_id> # Load balancer ID. Replace it with the actual value.
kubernetes.io/elb.class: union # Load balancer type
kubernetes.io/hws-hostNetwork: 'true' # The load balancer forwards the request to the host network.
spec:
selector:
app: nginx
ports:
- name: service0
port: 80
protocol: TCP
targetPort: 80
type: LoadBalancer

Таймаут

Таблица 10 Аннотация для настройки таймаута

Параметр

Тип

Описание

Поддерживаемая версия Кластера

kubernetes.io/elb.keepalive_timeout

String

Таймаут для клиентских соединений. Если в течение периода таймаута к балансировщику нагрузки не поступает запросов, балансировщик отключит соединение от клиента и установит новое соединение при появлении нового запроса.

Значение:

  • Для TCP‑слушателей значение находится в диапазоне от 10 до 4000 (в секундах). Значение по умолчанию 300.
  • Для HTTP, HTTPS и TERMINATED_HTTPS слушателей значение находится в диапазоне от 0 до 4000 (в секундах). Значение по умолчанию 60.
  • Для UDP‑слушателей (поддерживаемых только выделенными балансировщиками) значение находится в диапазоне от 10 до 4000 (в секундах). Значение по умолчанию 300.

Выделенные балансировщики: v1.19.16-r30, v1.21.10-r10, v1.23.8-r10, v1.25.3-r10, или новее

Общие балансировщики: v1.23.13-r0, v1.25.8-r0, v1.27.5-r0, v1.28.3-r0, или новее

kubernetes.io/elb.client_timeout

String

Таймаут ожидания запроса от клиента. Есть два случая:

  • Если клиент не отправит заголовок запроса к балансировщику нагрузки в течение периода таймаута, запрос будет прерван.
  • Если интервал между двумя последовательными телами запросов, достигающими балансировщик, превышает период таймаута, соединение будет разорвано.

Значение находится в диапазоне от 1 до 300 (в секундах). Значение по умолчанию 60.

v1.23.13-r0, v1.25.8-r0, v1.27.5-r0, v1.28.3-r0, or later

kubernetes.io/elb.member_timeout

String

Таймаут ожидания ответа от бекенд‑сервера. После переадресации запроса на бекенд‑сервер, если сервер не ответит в течение периода, указанного в member_timeout, балансировщик прекратит ожидание и вернет HTTP 504 Gateway Timeout.

Диапазон значений от 1 до 300 (в секундах). Значение по умолчанию — 60.

v1.23.13-r0, v1.25.8-r0, v1.27.5-r0, v1.28.3-r0, или позже

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

Теги ресурсов

Таблица 11 Аннотации

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.tags

Строка

Добавьте теги ресурсов к балансировщику нагрузки. Этот параметр можно настроить только при автоматическом создании балансировщика нагрузки.

Тег имеет формат "key=value". Для разделения нескольких тегов используйте запятые (,).

v1.23.11-r0, v1.25.6-r0, v1.27.3-r0, или позже

Подробнее о сценариях применения и примерах использования см. Использование kubectl для создания службы (автоматическое создание Load Balancer).

HTTP/2

Таблица 12 Аннотации для использования HTTP/2

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.http2-enable

Строка

Включён ли HTTP/2. Перенаправление запросов с использованием HTTP/2 улучшает производительность доступа между вашим приложением и балансировщиком нагрузки. Однако балансировщик нагрузки по‑прежнему использует HTTP/1.x для передачи запросов на сервер back‑end.

Параметры:

  • true: включено
  • false: отключено (значение по умолчанию)

Примечание: HTTP/2 можно включать или отключать только если слушатель использует HTTPS. Этот параметр недействителен и по умолчанию равен false когда протокол слушателя — HTTP.

v1.23.13-r0, v1.25.8-r0, v1.27.5-r0, v1.28.3-r0, или позже

Подробнее о сценариях применения и примерах использования см. Настройка HTTP/2 для службы LoadBalancer.

Получение IP‑адресов клиентов

Таблица 13 Аннотации для получения IP‑адресов клиентов

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.transparent-client-ip

Строка

Этот параметр доступен только при использовании совместного балансировщика нагрузки для создания службы LoadBalancer, совместимой с TCP/UDP.

  • true: включение функции получения исходного IP‑адреса клиента.
  • false: отключение функции получения исходного IP‑адреса клиента.

v1.23.17-r0, v1.25.12-r0, v1.27.9-r0, v1.28.7-r0, v1.29.3-r0, или позже

Подробнее о сценариях применения и примерах использования см. Включение получения IP‑адреса клиента для службы LoadBalancer.

Изменение пользовательского EIP

Таблица 14 Аннотации для изменения пользовательского EIP

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.custom-eip-id

Строка

Идентификатор пользовательского EIP, который можно увидеть в консоли EIP

EIP должен быть привязываемым.

v1.23.18-r0, v1.25.13-r0, v1.27.10-r0, v1.28.8-r0, v1.29.4-r0, v1.30.1-r0, или позже

Подробнее о сценариях применения и примерах использования см. Изменение пользовательского EIP для службы LoadBalancer.

Настройка диапазонов портов для слушателя

Таблица 15 Аннотации для настройки диапазонов портов для слушателя

Параметр

Тип

Описание

Поддерживаемая версия кластера

kubernetes.io/elb.port-ranges

Строка

Если используется выделенный балансировщик нагрузки и выбран протокол TCP, UDP или TLS, можно создать слушатель, который прослушивает порты в определённом диапазоне от 1 до 65535. Для каждого слушателя можно добавить максимум 10 неперекрывающихся диапазонов портов.

Значение параметра задаётся в следующем формате, где ports_name и порт должны быть уникальными:

'{"<ports_name_1>":["<port_1>,<port_2>","<port_3>,<port_4>"], "<ports_name_2>":["<port_5>,<port_6>","<port_7>,<port_8>"]}'

Например, имена портов: cce-service-0 и cce-service-1, а слушатель прослушивает порты 100–200 и 300–400, а также 500–600 и 700–800 соответственно.

'{"cce-service-0":["100,200", "300,400"], "cce-service-1":["500,600", "700,800"]}'
ПРИМЕЧАНИЕ:

Эта функция опирается на возможности ELB. Перед использованием убедитесь, поддерживается ли она в текущем регионе. Подробнее о регионах, где функция поддерживается, см. .

v1.23.18-r0, v1.25.13-r0, v1.27.10-r0, v1.28.8-r0, v1.29.4-r0, v1.30.1-r0, or later

Подробнее о сценариях применения и примерах использования см. Настройка диапазона портов прослушивания для служб LoadBalancer.

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

Таблица 16 структура данных elb.autocreate

Параметр

Обязательно

Тип

Описание

имя

Нет

Строка

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

Значение может содержать от 1 до 64 символов. Допустимы только буквы, цифры, символы подчеркивания (_), дефисы (-) и точки (.).

По умолчанию: cce-lb+service.UID

тип

Нет

Строка

Тип сети балансировщика нагрузки.

  • public: публичный сетевой балансировщик нагрузки
  • inner: приватный сетевой балансировщик нагрузки

По умолчанию: inner

bandwidth_name

Да для публичных сетевых балансировщиков нагрузки

Строка

Имя пропускной способности. Значение по умолчанию: cce-bandwidth-******.

Значение может содержать от 1 до 64 символов. Допустимы только буквы, цифры, подчеркивания (_), дефисы (-) и точки (.).

bandwidth_chargemode

Нет

Строка

Режим пропускной способности.

  • bandwidth: оплата по пропускной способности
  • traffic: оплата по трафику

По умолчанию: bandwidth

bandwidth_size

Да для публичных сетевых балансировщиков нагрузки

Целое число

Размер пропускной способности. Значение варьируется от 1 Mbit/s до 2000 Mbit/s по умолчанию. Настройте этот параметр в зависимости от диапазона пропускной способности, разрешённого в вашем регионе.

Минимальный шаг регулировки пропускной способности зависит от диапазона пропускной способности.

  • Минимальный шаг составляет 1 Mbit/s, если разрешённая пропускная способность не превышает 300 Mbit/s.
  • Минимальный шаг составляет 50 Mbit/s, если разрешённый диапазон пропускной способности от 300 Mbit/s до 1000 Mbit/s.
  • Минимальный шаг составляет 500 Mbit/s, если разрешённая пропускная способность превышает 1000 Mbit/s.

bandwidth_sharetype

Да для публичных сетевых балансировщиков нагрузки

Строка

Режим совместного использования пропускной способности.

  • PER: выделенная пропускная способность

eip_type

Да для публичных сетевых балансировщиков нагрузки

Строка

Тип EIP.

  • 5_bgp: динамический BGP

Конкретный тип зависит от регионов. Для подробностей см. консоль EIP.

vip_subnet_cidr_id

Нет

Строка

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

Если параметр не указан, балансировщик нагрузки и кластер по умолчанию будут находиться в одной подсети.

Это поле можно указать только для кластеров версии v1.21 и выше.

Как получить

Войдите в консоль VPC. На навигационной панели выберите Подсети. Отфильтруйте целевую подсеть по имени VPC кластера, кликните имя подсети и скопируйте Идентификатор IPv4 подсети на Сводка вкладку.

ipv6_vip_virsubnet_id

Нет

Строка

Идентификатор IPv6 подсети, в которой развернут балансировщик нагрузки. Для подсети должен быть включён IPv6.

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

Как получить

Войдите в консоль VPC. На навигационной панели выберите Подсети. Отфильтруйте целевую подсеть по имени VPC кластера, кликните имя подсети и скопируйте Идентификатор сети на Сводка вкладку.

elb_virsubnet_ids

Нет

Массив строк

Идентификатор сети подсети, в которой расположен балансировщик нагрузки. Эта подсеть используется для выдачи IP‑адресов для доступа к серверу back‑end. Если параметр не указан, будет использован подсетевой идентификатор, указанный в vip_subnet_cidr_id будет использован по умолчанию. Балансировщики занимают различное количество IP‑адресов подсети в зависимости от их характеристик. Не используйте CIDR‑блоки подсетей иных ресурсов (например, кластеров или узлов) в качестве CIDR‑блока балансировщика нагрузки.

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

Пример:

"elb_virsubnet_ids": [
"14567f27-8ae4-42b8-ae47-9f847a4690dd"
]

Как получить

Войдите в консоль VPC. В навигационной области выберите Подсети. Отфильтруйте целевую подсеть по имени VPC кластера, нажмите имя подсети и скопируйте ID сети на Сводка вкладке.

vip_address

Нет

String

Внутренний IP-адрес балансировщика нагрузки. Поддерживаются только IPv4-адреса.

IP-адрес должен находиться в блоке CIDR ELB. Если параметр не указан, IP-адрес будет автоматически назначен из блока CIDR ELB.

Этот параметр доступен только в кластерах v1.23.11-r0, v1.25.6-r0, v1.27.3-r0 и более поздних версиях.

available_zone

Да

Array of strings

Зона доступности, в которой расположен балансировщик нагрузки.

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

l4_flavor_name

Нет

String

Имя Флейвора балансировщика нагрузки уровня‑4. Этот параметр обязателен при использовании TCP или UDP.

  • Elastic: применяется к переменному трафику, оплата основывается на общем трафике. Кластеры v1.21.10-r10, v1.23.8-r10, v1.25.3-r10 и более поздних версий поддерживают эластичные спецификации.
  • Fixed: применяется к стабильному трафику, оплата основывается на спецификациях.

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

l7_flavor_name

Нет

String

Имя Флейвора балансировщика нагрузки уровня‑7. Этот параметр обязателен при использовании HTTP.

  • Elastic: применяется к переменному трафику, оплата основывается на общем трафике. Кластеры v1.21.10-r10, v1.23.8-r10, v1.25.3-r10 и более поздних версий поддерживают эластичные спецификации.
  • Fixed: применяется к стабильному трафику, оплата основывается на спецификациях.

Этот параметр доступен только для выделенных балансировщиков нагрузки. Его значение должно соответствовать значению l4_flavor_name, что означает, что оба должны быть либо эластичными спецификациями, либо фиксированными спецификациями.

Таблица 17 структура данных elb.health-check-option

Параметр

Обязательный

Тип

Описание

delay

Нет

String

Интервал проверки состояния (с)

Диапазон значений: от 1 до 50. Значение по умолчанию: 5

timeout

Нет

String

Тайм-аут проверки состояния, в секундах.

Диапазон значений: от 1 до 50. Значение по умолчанию: 10

max_retries

Нет

String

Максимальное количество повторов проверки состояния.

Диапазон значений: от 1 до 10. Значение по умолчанию: 3

protocol

Нет

String

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

Опции: TCP, UDP, или HTTP

path

Нет

String

URL для проверки состояния. Этот параметр необходимо настроить, когда протокол HTTP.

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

Диапазон значений: 1‑80 символов

Таблица 18 elb.health-check-options

Параметр

Обязательный

Тип

Описание

target_service_port

Да

String

Порт для проверки состояния, указанный в spec.ports. Значение состоит из протокола и номера порта, например, TCP:80.

monitor_port

Нет

String

Переопределенный порт для проверки состояния. Если параметр не указан, по умолчанию используется сервисный порт.

NOTE:

Убедитесь, что порт находится в состоянии прослушивания на узле, где расположен pod. В противном случае результат проверки состояния будет искажен.

delay

Нет

String

Интервал проверки состояния (с)

Диапазон значений: от 1 до 50. Значение по умолчанию: 5

timeout

Нет

String

Тайм-аут проверки состояния, в секундах.

Диапазон значений: от 1 до 50. Значение по умолчанию: 10

max_retries

Нет

Строка

Максимальное количество повторных попыток проверки состояния.

Диапазон значений: от 1 до 10. Значение по умолчанию: 3

протокол

Нет

Строка

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

Значение по умолчанию: протокол связанной Service

Варианты: TCP, UDP, и HTTP

путь

Нет

Строка

URL проверки состояния. Этот параметр необходимо настроить, когда протокол HTTP.

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

Диапазон значений: 1‑80 символов

Таблица 19 elb.session-affinity-option структура данных

Параметр

Обязательно

Тип

Описание

persistence_timeout

Да

Строка

Таймаут sticky‑session, в минутах. Этот параметр действителен только когда elb.session-affinity-mode установлен в SOURCE_IP.

Диапазон значений: от 1 до 60. Значение по умолчанию: 60