Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Application Load Balancer
  • Начало работы
    • Обзор
      • Обзор
      • Принципы работы
      • Установить Ingress-контроллер
      • Обновить Ingress-контроллер
        • Ingress
        • HttpBackendGroup
        • GrpcBackendGroup
        • IngressClass
        • Service для Ingress
    • Настройка групп безопасности
    • Работа с сервисными аккаунтами
    • Создание и изменение ресурсов по конфигурации
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи L7-балансировщика
  • История изменений
  • Обучающие курсы

В этой статье:

  • Service
  • ObjectMeta
  • Аннотации (metadata.annotations)
  • ServiceSpec
  • ServicePort
  1. Инструменты для Managed Service for Kubernetes
  2. Ingress-контроллер
  3. Конфигурация ресурсов
  4. Service для Ingress

Поля и аннотации ресурса Service для Ingress-контроллера

Статья создана
Yandex Cloud
Обновлена 3 марта 2025 г.
  • Service
  • ObjectMeta
    • Аннотации (metadata.annotations)
  • ServiceSpec
  • ServicePort

Ресурс 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>

Поле

Значение или тип

Описание

apiVersion

v1

Обязательное.

Версия API Kubernetes.

kind

Service

Тип ресурса.

metadata

ObjectMeta

Обязательное.

Метаданные ресурса.

spec

ServiceSpec

Обязательное.

Спецификация ресурса.

Пример
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>
  ingress.alb.yc.io/health-checks: <string>

Поле

Значение или тип

Описание

name

string

Обязательное.

Имя ресурса.

Не является именем балансировщика в Application Load Balancer.

annotations

map[string]string

Обязательное.

Аннотации ресурса.

Аннотации (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 (см. конфигурацию ресурса).

  • ingress.alb.yc.io/health-checks

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

    • http-path — путь в URI запроса к эндпоинту приложения для проверок состояния (только для соединений с бэкендами по протоколам http и http2). Значение по умолчанию — /healthz.

    • grpc-service-name — имя GRPC-сервиса приложения для проверок состояния (только для соединений с бэкендами по протоколу grpc). Если не указано, то выполняется проверка состояния бэкенда в целом.

    • port — порт на узлах кластера для проверки доступности приложения. Приложение будет доступно для проверок состояния по адресу http://<IP-адрес_узла>:<порт>/<путь>.

    • healthy-threshold — количество последовательных успешных проверок, после которых эндпоинт приложения считается работоспособным. Значение по умолчанию — 1.

    • unhealthy-threshold — количество последовательных неуспешных проверок, после которых эндпоинт приложения считается неработоспособным. Значение по умолчанию — 1.

    • timeout — время ожидания ответа в секундах. Возможные значения — от 1s до 60s, по умолчанию — 2s.

    • interval — интервал отправки проверочных запросов в секундах. Возможные значения — от 1s до 60s, по умолчанию — 5s. Значение interval должно быть больше значения timeout минимум на одну секунду.

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

    Параметры перечисляются через запятую. Пример:

    ...
    annotations:
      ingress.alb.yc.io/health-checks: port=30103,http-path=/health-1,timeout=10s,interval=20s,healthy-threshold=3,unhealthy-threshold=2
    ...
    

ServiceSpec

type: NodePort
ports:
  - <ServicePort>
  -

Поле

Значение или тип

Описание

type

NodePort

Обязательное.

Тип сервиса.

Важно

Сервисы Kubernetes, используемые в качестве бэкендов (указанные в правилах Ingress напрямую или в HttpBackendGroup/GrpcBackendGroup), должны иметь тип NodePort. Подробнее об этом типе см. в документации Kubernetes.

ports

[]ServicePort

Обязательное.

Список портов, на которых доступен сервис.

ServicePort

port: <int32>
name: <string>
protocol: <protocol>
nodePort: <int32>

Поле

Значение или тип

Описание

port

int32

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

Номер используется при указании сервиса в качестве бэкенда:

  • в Ingress — в поле spec.rules.http.paths.backend.service.port.number (см. конфигурацию);
  • в группе бэкендов HttpBackendGroup — в поле spec.backends.service.port.number (см. конфигурацию).

name

string

Имя порта внутри сервиса.

Имя используется при указании сервиса в качестве бэкенда:

  • в Ingress — в поле spec.rules.http.paths.backend.service.port.name (см. конфигурацию);
  • в группе бэкендов HttpBackendGroup — в поле spec.backends.service.port.name (см. конфигурацию).

protocol

TCP

Сетевой протокол для порта. Только TCP.

nodePort

int32

Номер порта, открытого на узлах кластера, на которых развернут сервис. Балансировщик отправляет трафик на этот порт, а Kubernetes перенаправляет трафик сервису на его порт в параметре port.

Соответствует порту бэкенда в группе бэкендов Application Load Balancer.

Была ли статья полезна?

Предыдущая
IngressClass
Следующая
Обзор
Проект Яндекса
© 2025 ООО «Яндекс.Облако»