Поля ресурса HttpBackendGroup
Ресурс HttpBackendGroup
позволяет объединять бэкенды — сервисы Kubernetes, между которыми распределяется трафик, — в группу. По таким ресурсам Ingress-контроллер Application Load Balancer создает группы бэкендов.
Указание на HttpBackendGroup
нужно добавить в ресурс Ingress
.
При использовании HttpBackendGroup
доступна расширенная функциональность Application Load Balancer. Бэкендами в такой группе могут быть сервисы Kubernetes и бакеты Yandex Object Storage. Также в HttpBackendGroup
можно указывать относительные веса бэкендов для пропорционального распределения трафика между ними.
HttpBackendGroup
— custom resourcealb.yc.io
, предоставляемой Ingress-контроллером.
HttpBackendGroup
apiVersion: alb.yc.io/v1alpha1
kind: HttpBackendGroup
metadata:
name: <string>
spec:
backends:
- name: <string>
weight: <int64>
useHttp2: <bool>
service:
name: <int64>
port:
name: <string>
number: <int32>
storageBucket:
name: <string>
tls:
sni: <string>
trustedCa: <string>
- ...
Где:
-
apiVersion
:alb.yc.io/v1alpha1
-
kind
:HttpBackendGroup
-
metadata
(ObjectMeta
, обязательное)Метаданные ресурса.
-
name
(string
, обязательное)Имя ресурса. Подробнее о формате см. в документации Kubernetes
.Это имя нужно указать в поле
spec.rules.http.paths.backend.resource.name
ресурсаIngress
(см. конфигурацию).Не является именем группы бэкендов в Application Load Balancer.
-
-
spec
(HttpBackendGroupSpec
)Спецификация ресурса.
-
backends
([]HttpBackend
)Список бэкендов, входящих в группу.
-
name
(string
, обязательное)Имя бэкенда.
-
weight
(int64
)Относительный вес бэкенда. Трафик между бэкендами в группе распределяется пропорционально их весам.
Веса должны быть указаны либо у всех бэкендов в группе, либо ни у одного из них. Между бэкендами без указанных весов трафик распределяется, как если бы у них были указаны одинаковые положительные веса.
Если указан неположительный вес, бэкенд не будет получать трафик.
-
useHttp2
(bool
)Разрешает устанавливать HTTP/2-соединения между узлами балансировщика и эндпоинтами бэкенда.
Значение по умолчанию —
false
: устанавливаются HTTP/1.1-соединения. -
service
(ServiceBackend
)Указание на сервис Kubernetes, который должен обрабатывать запросы в качестве бэкенда.
Ресурс
Service
, на который указывает это поле, должен быть описан по принятой конфигурации.Для бэкенда должен быть указан либо сервис, либо бакет Object Storage (
storageBucket
), но не оба одновременно.-
name
(string
, обязательное)Имя сервиса Kubernetes.
-
port
(ServiceBackendPort
, обязательное)Порт сервиса, к которому будет обращаться
Ingress
.Поле предназначено для работы Ingress-контроллера и не соответствует ни одному из полей ресурсов Application Load Balancer.
-
name
(string
)Имя порта сервиса.
Имя должно совпадать с одним из имен портов, указанных в полях
spec.ports.name
ресурсаService
. Подробнее см. в спецификации ресурса.Для порта сервиса должно быть указано либо имя, либо номер (
number
), но не оба одновременно. -
number
(int32
)Номер порта сервиса.
Номер должен совпадать с одним из номеров портов, указанных в полях
spec.ports.port
ресурсаService
. Подробнее см. в спецификации ресурса.Для порта сервиса должен быть указан либо номер, либо имя (
name
), но не оба одновременно.
-
-
-
storageBucket
(StorageBucketBackend
)Указание на бакет Yandex Object Storage, который должен обрабатывать запросы в качестве бэкенда. Подробнее об использовании бакета как бэкенда см. в разделе Типы бэкендов.
Важно
Чтобы бакет можно было использовать в качестве бэкенда, откройте публичный доступ к списку объектов в бакете и к их чтению.
Для бэкенда должен быть указан либо бакет, либо сервис Kubernetes (
service
), но не оба одновременно.-
name
(string
, обязательное)Имя бакета.
-
-
tls
(BackendTLS
)Настройки TLS-соединений между узлами балансировщика и эндпоинтами бэкенда.
Если поле указано, балансировщик устанавливает с бэкендом TLS-соединения и сравнивает полученные сертификаты с сертификатом, указанным в поле
trustedCa
. Если поле не указано, балансировщик устанавливает с бэкендом незащищенные соединения.-
sni
(string
)Доменное имя, указываемое как значение TLS-расширения Server Name Indication (SNI).
-
trustedCa
(string
)Содержимое X.509-сертификата, выпущенного центром сертификации, в формате PEM.
-
-
-