Поля ресурса GatewayPolicy
Ресурс GatewayPolicy предназначен для задания облачных политик, которые применяются к ресурсам Gateway в рамках одного пространства имен Kubernetes. Политика может быть применена к определенным ресурсам с помощью ссылок (targetRefs) или селектора (selector). Если ни одно из этих полей не указано, политика применяется ко всем ресурсам в пространстве имен.
GatewayPolicy — это расширение Gateway API, реализуемое в Application Load Balancer. Ниже описаны поля и аннотации ресурса, с которыми работает Gateway API Application Load Balancer.
Примечание
Вы также можете задать параметры политик с помощью аннотаций ресурса Gateway. Набор параметров ресурса GatewayPolicy и аннотации Gateway равнозначны.
Пример определения ресурса GatewayPolicy (предназначен только для демонстрации всех параметров):
apiVersion: gateway.alb.yc.io/v1
kind: GatewayPolicy
metadata:
name: my-gateway-policy
spec:
targetRefs:
- name: some-gateway
kind: Gateway
group: gateway.networking.k8s.io
selector:
matchLabels:
app: my-app
policy:
subnets: ["subnet-id-1", "subnet-id-2"]
securityGroups: ["sg-id-1", "sg-id-2"]
logs:
logGroupID: "some-log-group-id"
disable: false
discardRule:
http-errors:
httpCodes: [404, 500]
httpCodeIntervals: ["4XX", "5XX"]
discardPercent: 100
autoScale:
minZoneSize: 2
maxSize: 10
zone:
ru-central1-a:
receiveTraffic: true
GatewayPolicy
apiVersion: gateway.alb.yc.io/v1
kind: GatewayPolicy
metadata:
name: <string>
namespace: <string>
spec:
targetRefs:
- name: <string>
kind: <string>
group: <string>
selector:
matchLabels:
<string>: <string>
matchExpressions:
- key: <string>
operator: <string>
values:
- <string>
policy:
subnets: [...]
securityGroups: [...]
logs: ...
autoScale: ...
zone: ...
status:
conditions: [...]
attachedGateways: <integer>
Где:
-
apiVersion:gateway.alb.yc.io/v1 -
kind:GatewayPolicy -
metadata(ObjectMeta, обязательное)Метаданные ресурса.
-
name(string, обязательное)Имя ресурса. Подробнее о формате см. в документации Kubernetes
. -
namespace(string)Пространство имен, к которому относится ресурс. Значение по умолчанию —
default.
-
-
spec(GatewayPolicySpec, обязательное)Спецификация политики.
-
targetRefs([]LocalObjectReference)Список ссылок на ресурсы, к которым применяется политика. Если указаны, политика применяется только к этим ресурсам.
-
selector(LabelSelector)Селектор для выбора ресурсов по меткам. Если указан, политика применяется только к выбранным ресурсам.
-
policy(Gateway)Облачная конфигурация, применяемая к выбранным ресурсам. Подробнее см. ниже.
-
-
status(GatewayPolicyStatus)Текущее состояние политики.
-
conditions— массив условий статуса. Подробнее о формате см. в документации Kubernetes . -
attachedGateways— количество привязанных ресурсовGateway.
-
Gateway
Ресурс, определяющий облачные параметры балансировщика, которые могут быть заданы через политику.
subnets: [<string>, ...]
securityGroups: [<string>, ...]
logs:
logGroupID: <string>
disable: <bool>
discardRule:
<имя_правила>:
httpCodes: [<int>, ...]
httpCodeIntervals: [<string>, ...]
grpcCodes: [<string>, ...]
discardPercent: <int>
autoScale:
minZoneSize: <int>
maxSize: <int>
zone:
<зона_доступности>:
receiveTraffic: <bool>
Где:
-
subnets([]string)Список подсетей Virtual Private Cloud в зонах доступности, где размещен балансировщик. Идентификаторы подсетей перечисляются через запятую.
-
securityGroups([]string)Список групп безопасности Virtual Private Cloud для балансировщика. Идентификаторы групп перечисляются через запятую.
Для корректной работы балансировщика и Gateway API группы безопасности должны быть настроены, как описано в разделе Настройка групп безопасности для инструментов Application Load Balancer для Managed Service for Kubernetes.
-
logs(LogOptions)Параметры логирования балансировщика.
-
logGroupID(string)Идентификатор лог-группы для записи логов балансировщика в Yandex Cloud Logging.
-
disable(bool)Отключение логирования.
-
discardRule(map[string]string)Правила отбрасывания логов.
-
httpCodes([]int)HTTP-коды, которые будут отброшены.
-
httpCodeIntervals([]string)Группы HTTP-кодов (например,
4xx), которые будут отброшены. -
grpcCodes([]string)Коды gRPC, которые будут отброшены.
-
discardPercent(int)Процент логов, которые будут отброшены (
0— все сохраняются,100— все отбрасываются).
-
-
-
autoScale(AutoScalePolicy)Параметры масштабирования балансировщика.
-
minZoneSize(int)Минимальное количество ресурсных единиц в каждой зоне доступности. По умолчанию минимум равен 2. Указать минимальное значение меньше 2 нельзя.
-
maxSize(int)Максимальное суммарное количество ресурсных единиц.
-
-
zone(map[string]string)Параметры для отдельных зон доступности.
-
receiveTraffic(bool)Если
true, трафик на узлы балансировщика в этой зоне отключен.
-