Поля и аннотации ресурса Service для Ingress-контроллера
Ресурс Service
соответствует сервису Kubernetes. Для Ingress-контроллера Application Load Balancer сервисы представляют собой бэкенды, между которыми распределяется входящий трафик в кластере Managed Service for Kubernetes. Сервисы, выступающие в роли бэкендов Application Load Balancer, могут быть указаны в ресурсе Ingress напрямую или в составе групп бэкендов HttpBackendGroup.
Service
— стандартный ресурс Kubernetes. Ниже описаны поля и аннотации ресурса, с которыми работают инструменты Application Load Balancer для Managed Service for Kubernetes. Полное описание конфигурации ресурса см. в документации Kubernetes
Service
apiVersion: v1
kind: Service
metadata: <ObjectMeta>
spec: <ServiceSpec>
Поле |
Значение или тип |
Описание |
|
|
Обязательное. Версия API Kubernetes. |
|
|
Тип ресурса. |
|
|
Обязательное. Метаданные ресурса. |
|
|
Обязательное. Спецификация ресурса. |
Пример
apiVersion: v1
kind: Service
metadata:
name: alb-demo-1
spec:
selector:
app: alb-demo-1
type: NodePort
ports:
- name: http
port: 80
protocol: TCP
nodePort: 30081
ObjectMeta
name: <string>
annotations:
ingress.alb.yc.io/protocol: <string>
ingress.alb.yc.io/transport-security: <string>
Поле |
Значение или тип |
Описание |
|
|
Обязательное. Не является именем балансировщика в Application Load Balancer. |
|
|
Обязательное. Аннотации ресурса. |
Аннотации (metadata.annotations)
Аннотации — это коллекция пар ключ:значение
, которые используются для присвоения метаданных объекту. Значения аннотаций всегда имеют тип данных string
. Подробнее об аннотациях см. в документации Kubernetes
В Application Load Balancer аннотации используются в ресурсах Service
только для настройки Ingress-контроллеров.
Для объекта ObjectMeta
можно передать следующие аннотации:
-
ingress.alb.yc.io/protocol
Протокол соединений между балансировщиком и бэкендами, описанными в
Ingress
:http
— HTTP/1.1. Значение по умолчанию.http2
— HTTP/2.grpc
— gRPC.
-
ingress.alb.yc.io/transport-security
Протокол шифрования соединений между балансировщиком и бэкендами, указанными в
Ingress
напрямую (безHttpBackendGroup
).Допустимое значение:
tls
— TLS без проверки сертификата.Если аннотация не указана, балансировщик соединяется с бэкендами без шифрования.
Для бэкендов, входящих в состав групп, значение аннотации игнорируется. Шифрование соединений балансировщика с бэкендами из групп настраивается с помощью поля
spec.backend.tls
ресурсаHttpBackendGroup
(см. конфигурацию ресурса).
ServiceSpec
type: NodePort
ports:
- <ServicePort>
-
Поле |
Значение или тип |
Описание |
|
|
Обязательное. Тип сервиса. Важно Сервисы Kubernetes, используемые в качестве бэкендов (указанные в правилах |
|
|
Обязательное. Список портов, на которых доступен сервис. |
ServicePort
port: <int32>
name: <string>
protocol: <protocol>
nodePort: <int32>
Поле |
Значение или тип |
Описание |
|
|
Обязательное. Номер используется при указании сервиса в качестве бэкенда:
|
|
|
Имя порта внутри сервиса. Имя используется при указании сервиса в качестве бэкенда:
|
|
|
Сетевой протокол для порта. Только |
|
|
Номер порта, открытого на узлах кластера, на которых развернут сервис. Балансировщик отправляет трафик на этот порт, а Kubernetes перенаправляет трафик сервису на его порт в параметре Соответствует порту бэкенда в группе бэкендов Application Load Balancer. |