Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for Kubernetes
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
    • Обзор
      • Gateway
      • GatewayPolicy
      • YCCertificate
      • HTTPRoute
      • RoutePolicy
      • YCStorageBucket
      • TLSRoute
      • Service для Gateway API
  • История изменений
  • Обучающие курсы

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

  • RoutePolicy
  • Route
  • RouteRule
  • Backend
  • HealthCheck
  • BackendTLS
  • SessionAffinity
  • RBAC
  1. Инструменты Application Load Balancer
  2. Gateway API
  3. RoutePolicy

Поля ресурса RoutePolicy

Статья создана
Yandex Cloud
Обновлена 30 июня 2025 г.
  • RoutePolicy
  • Route
  • RouteRule
  • Backend
  • HealthCheck
  • BackendTLS
  • SessionAffinity
  • RBAC

Ресурс RoutePolicy позволяет задавать облако-специфичные политики для ресурсов HTTPRoute и других маршрутов в Application Load Balancer. Политики применяются к маршрутам на основе селектора или явных ссылок.

Примечание

Вы также можете задать параметры политик с помощью аннотаций ресурса HTTPRoute. Набор параметров ресурса RoutePolicy и аннотации HTTPRoute равнозначны.

Пример определения ресурса RoutePolicy (предназначен только для демонстрации всех параметров):

apiVersion: gateway.alb.yc.io/v1
kind: RoutePolicy
metadata:
  name: my-route-policy
spec:
  targetRefs:
    - name: some-http-route
      kind: HTTPRoute
      group: gateway.networking.k8s.io
  selector:
    matchLabels:
      app: my-app

  policy:
    rules:
      timeout: "60s"                           
      idleTimeout: "300s"                      
      securityProfileId: "security-profile-1"
    
      http:
        upgradeTypes: ["websocket"]

      backends:
        balancing:
          mode: "ROUND_ROBIN"
          panicThreshold: 50
          localityAwareRouting: 90
          strictLocality: false

        sessionAffinity:
          header:
            name: "X-Session-ID"
          cookie: 
            name: "session"
            ttl: "1h"
          connection:
            sourceIP: true

        hc:
          timeout: "2s"
          interval: "5s"
          healthyThreshold: 3
          unhealthyThreshold: 5
          port: 30030 

          http:
            path: "/health"
            host: "example.com"
            useHTTP2: true

          grpc:
            serviceName: "health"

          stream:
            send: "PING"
            receive: "PONG"

        tls:
          sni: "example.com"
          trustedCA:
            id: "certificate-id"
            bytes: | 
              -----BEGIN CERTIFICATE-----
              ...
              -----END CERTIFICATE-----

      rbac:
        action: "ALLOW"
        principals:
          admin:
            token-check:
              header:
                name: "X-Auth-Token"
                exact: "admin-token"
            ip-check:
              ip:
                remoteIp: "10.0.0.0/8"
            any: true

  hosts:
    securityProfileId: "security-profile-1"
    rbac:
      ...

  rule:
    api-route: 
      timeout: "30s"
      ...

  host:
    api.example.com: 
      securityProfileId: "api-profile"
      ...

RoutePolicyRoutePolicy

apiVersion: gateway.alb.yc.io/v1
kind: RoutePolicy
metadata:
  name: <string>
  namespace: <string>
spec:
  targetRefs:
    - name: <string>
      kind: <string>
      group: <string>
  selector:
    matchLabels:
      <ключ>: <значение>
  policy:
    rules: <RouteRule>
    rule:
      <имя_правила>: <RouteRule>
    hosts: <VirtualHost>
    host:
      <имя_хоста>: <VirtualHost>

Где:

  • apiVersion: gateway.alb.yc.io/v1

  • kind: RoutePolicy

  • metadata (ObjectMeta, обязательное)

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

    • name (string, обязательное)

      Имя ресурса. Подробнее о формате см. в документации Kubernetes.

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

    • namespace (string)

      Пространство имен, к которому относится ресурс. Значение по умолчанию — default.

  • spec (RoutePolicySpec, обязательное):

    • targetRefs ([]LocalObjectReference) — список ссылок на ресурсы, к которым применяется политика.

    • selector (LabelSelector) — селектор по меткам для выбора ресурсов.

    • policy (Route, обязательное) — облако-специфичная конфигурация маршрутов. Подробнее см. ниже.

RouteRoute

rules: <RouteRule>
rule:
  <имя_правила>: <RouteRule>
hosts:
  securityProfileId: <string>
  rbac: <RBAC>
host:
  <имя_хоста>:
    securityProfileId: <string>
    rbac: <RBAC>

Где:

  • rules (RouteRule)

    Общие настройки для всех правил маршрута. Подробнее см. RouteRule.

  • rule (map[string]RouteRule)

    Настройки для конкретных правил (по имени).

  • hosts (VirtualHost)

    Общие настройки для всех виртуальных хостов.

    • securityProfileId (string)

      Идентификатор профиля безопасности Smart Web Security для хоста.

    • rbac (RBAC)

      Настройки RBAC для доступа к хосту.

  • host (map[string]VirtualHost)

    Настройки для конкретных хостов (по имени).

RouteRuleRouteRule

backends: <Backend>
sessionAffinity: <SessionAffinity>
securityProfileId: <string>
rbac: <RBAC>
timeout: <string>
idleTimeout: <string>
http:
  upgradeTypes: [<string>, ...]
  • backends (Backend)

    Настройки группы бэкендов. Подробнее см. Backend.

  • sessionAffinity (SessionAffinity)

    Параметры сессий. Подробнее см. SessionAffinity.

  • securityProfileId (string)

    Идентификатор профиля безопасности Smart Web Security.

  • rbac (RBAC)

    Настройки RBAC. Подробнее см. RBAC.

  • timeout (string)

    Общий таймаут соединения (например, "60s").

  • idleTimeout (string)

    Таймаут неактивного соединения.

  • http (RouteALBHTTP)

    HTTP-специфичные опции.

    • upgradeTypes ([]string)

      Поддерживаемые значения HTTP Upgrade (например, websocket).

BackendBackend

http:
  useHTTP2: <bool>
stream:
  enableProxy: <bool>
balancing:
  mode: <string>
  panicThreshold: <int>
  localityAwareRouting: <int>
  strictLocality: <bool>
hc: <HealthCheck>
tls: <BackendTLS>

Где:

  • http (HTTPBackend)

    HTTP-настройки бэкенда.

    • useHTTP2 (bool) — использовать протокол HTTP/2 для соединения с бэкендом. По умолчанию используется HTTP/1.1.
  • stream (StreamBackend)

    TCP-настройки бэкенда.

    • enableProxy (bool)

      Включить proxy protocol для TCP-бэкенда.

  • balancing (LoadBalancingConfig)

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

    • mode (string)

      Режим балансировки. Возможные значения: RANDOM, ROUND_ROBIN, LEAST_REQUEST.

    • panicThreshold (int)

      Порог для panic mode (%).

    • localityAwareRouting (int)

      Процент трафика в свою зону.

    • strictLocality (bool)

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

  • hc (HealthCheck)

    Параметры health check. Подробнее см. HealthCheck.

  • tls (BackendTLS)

    TLS-настройки для соединения с бэкендом. Подробнее см. BackendTLS.

HealthCheckHealthCheck

timeout: <string>
interval: <string>
healthyThreshold: <int>
unhealthyThreshold: <int>
port: <int>
http:
  host: <string>
  path: <string>
  useHTTP2: <bool>
grpc:
  serviceName: <string>
stream:
  send: <string>
  receive: <string>

Где:

  • timeout (string)

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

  • interval (string)

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

  • healthyThreshold (int)

    Количество успешных проверок состояния для присвоения статуса healthy.

  • unhealthyThreshold (int)

    Количество неуспешных проверок состояния для присвоения статуса unhealthy.

  • port (int)

    Порт для health check.

  • http (HealthcheckHTTP)

    HTTP-проверка.

    • host (string) — Host header для проверки.
    • path (string) — путь для HTTP-проверки.
    • useHTTP2 (bool) — использовать HTTP/2 для проверки.
  • grpc (HealthcheckGRPC)

    gRPC-проверка.

    • serviceName (string) — имя gRPC-сервиса для проверки.
  • stream (HealthcheckStream)

    TCP-проверка.

    • send (string) — данные для отправки при TCP-проверке.
    • receive (string) — ожидаемый ответ.

BackendTLSBackendTLS

sni: <string>
trustedCA:
  id: <string>
  bytes: <string>

Где:

  • sni (string)

    SNI для TLS.

  • trustedCA

    Доверенный CA:

    • id (string) — идентификатор сертификата.
    • bytes (string) — содержимое сертификата в PEM-encoded формате.

SessionAffinitySessionAffinity

connection:
  sourceIP: <bool>
cookie:
  name: <string>
  ttl: <string>
header:
  name: <string>

Где:

  • connection.sourceIP (bool)

    Признак использования IP-адреса клиента для session affinity.

  • cookie.name (string)

    Имя cookie для session affinity.

  • cookie.ttl (string)

    TTL для cookie.

  • header.name (string)

    Имя HTTP-заголовка для session affinity.

RBACRBAC

RBAC управляет доступом к маршрутам и хостам с помощью проверки атрибутов запроса.

Правила RBAC распределяются по группам и принципалам:

  • Группа — логическая группа проверок, например admin.
  • Принципал — название для проверки набора условий (например, check-token).

Каждое правило задается набором типов проверяемых условий (например, header, ip).

Все проверки в рамках одной группы объединяются по условию AND. Действие проверок в разных группах происходит по условию OR.

action: <string>
principals:
  <имя_группы>:
    <имя_принципала>:
      header:
        name: <string>
        regex: <string>
        exact: <string>
        prefix: <string>
      ip:
        remoteIp: <string>
      any: <bool>

Где:

  • action (string)

    Действие при срабатывании правил (ALLOW/DENY).

  • principals

    Группы условий:

    • header — условие для сравнения значения заголовка с заданным значением.
    • ip.remoteIp — условие для сравнения IP-адреса или CIDR-блока клиентского запроса с заданным значением.
    • any — проверка срабатывает для любого запроса.

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

Предыдущая
HTTPRoute
Следующая
YCStorageBucket
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»