Поля и аннотации ресурса Service
Ресурс Service
определяет сервис Kubernetes. Для Network Load Balancer для Managed Service for Kubernetes сервисы представляют собой балансировщики входящего трафика.
Service
— стандартный ресурс Kubernetes. В этом справочнике описаны поля и аннотации ресурса, которые поддерживаются Network Load Balancer для Managed Service for Kubernetes. Полный справочник ресурса см. в документации Kubernetes
Service
apiVersion: v1
kind: Service
metadata: <ObjectMeta>
spec: <ServiceSpec>
Поле |
Значение или тип |
Описание |
|
|
Обязательное |
|
|
Тип ресурса |
|
|
Обязательное |
|
|
Обязательное |
Пример
apiVersion: v1
kind: Service
metadata:
name: nlb-demo-1
spec:
selector:
app: app-demo-1
type: LoadBalancer
ports:
- port: 80
name: plaintext
targetPort: 8080
ObjectMeta
name: <string>
annotations:
yandex.cloud/load-balancer-type: <string>
yandex.cloud/subnet-id: <string>
yandex.cloud/load-balancer-healthcheck-healthy-threshold: <string>
yandex.cloud/load-balancer-healthcheck-interval: <string>
yandex.cloud/load-balancer-healthcheck-timeout: <string>
yandex.cloud/load-balancer-healthcheck-unhealthy-threshold: <string>
Поле |
Значение или тип |
Описание |
|
|
Обязательное Не соответствует имени балансировщика в Network Load Balancer |
|
|
Аннотации (metadata.annotations)
Аннотации — это коллекция пар ключ:значение
, которые используются для присвоения метаданных объекту. Значения аннотаций всегда имеют тип данных string
. Подробнее об аннотациях см. в документации Kubernetes
Для объекта ObjectMeta
можно передать следующие аннотации:
-
yandex.cloud/load-balancer-type
Тип балансировщика (по умолчанию — с внешним IP-адресом).
Значение для балансировщика с внутренним IP-адресом —
internal
. -
yandex.cloud/subnet-id
Идентификатор подсети, в которой необходимо выделить IP-адрес для внутреннего сетевого балансировщика нагрузки.
-
yandex.cloud/load-balancer-healthcheck-healthy-threshold
Число последовательных удачных проверок, по достижении которого узел будет считаться доступным.
Минимальное значение —
2
, максимальное значение —10
. -
yandex.cloud/load-balancer-healthcheck-interval
Интервал выполнения проверок (в секундах).
Минимальное значение —
2s
, максимальное значение —300s
. -
yandex.cloud/load-balancer-healthcheck-timeout
Таймаут выполнения проверок (в секундах). Узел считается недоступным, если он не ответил за отведенное время.
Минимальное значение —
1s
, максимальное значение —60s
. -
yandex.cloud/load-balancer-healthcheck-unhealthy-threshold
Число последовательных неудачных проверок, по достижении которого узел будет считаться недоступным.
Минимальное значение —
2
, максимальное значение —10
.
ServiceSpec
type: LoadBalancer
ports:
- <ServicePort>
- ...
loadBalancerIP: <string>
externalTrafficPolicy: <string>
Поле |
Значение или тип |
Описание |
|
|
Обязательное Важно Сервисы Kubernetes, используемые в качестве сетевых балансировщиков нагрузки, должны иметь тип |
|
|
Обязательное |
|
|
При использовании внешнего балансировщика нагрузки в этом поле можно указать статический публичный IP-адрес. Такой адрес необходимо зарезервировать заранее. Во время резервирования публичного IP-адреса можно активировать защиту от DDoS-атак. Если не указывать статический IP-адрес, то сетевому балансировщику нагрузки будет назначен динамический IP-адрес |
|
|
|
ServicePort
name: <string>
port: <int32>
targetPort: <int32>
nodePort: <int32>
Поле |
Значение или тип |
Описание |
|
|
Имя порта внутри сервиса. |
|
|
Обязательное Этот же порт будет назначен обработчику балансировщика нагрузки в качестве порта, на котором будет приниматься входящий трафик. |
|
|
Порт контейнера, на котором доступно приложение. Если не указывать это поле, то значение |
|
|
Порт, на котором будут обслуживаться пользовательские запросы, поступающие к сервису извне кластера. Этот же порт будет назначен обработчику балансировщика нагрузки в качестве целевого порта, на котором ресурсы в целевой группе будут принимать трафик. Обычно поле не указывается, поэтому значение Однако вы можете указать нужный порт явно. Выбранный порт не должен использоваться другими объектами Kubernetes. Диапазон значений: |