Стадия жизненного цикла модуля: Общедоступная версия

У модуля есть требования для установки

Deckhouse Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.

ServiceWithHealthchecks

Короткие имена: swh

Область: Namespaced
Версия: v1alpha1

Модуль ServiceWithHealthchecks
  • apiVersion
    строка
  • kind
    строка
  • metadata
    объект
  • spec
    объект

    Описывает желаемое состояние ServiceWithHealthchecks.

    Чтобы создаваемые балансировщики ServiceWithHealthchecks работали, необходимо выполнение следующих условий:

    • В сетевой политике пользовательского проекта, в котором будет создаваться ServiceWithHealthchecks, должно присутствовать правило, разрешающее входящий трафик из всех подов неймспейса d8-service-with-healthchecks:

      ingress:
      - from:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: d8-service-with-healthchecks

      Подробнее о сетевых политиках — в разделе «Настройка сетевых политик».

    • Кластерная роль, которая используется в ClusterRoleBinding и RoleBinding при назначении прав пользователям и сервисным аккаунтам, для ресурса ServiceWithHealthchecks должна быть расширена следующими правилами:

      • get
      • list
      • watch
      • create
      • update
      • patch
      • delete.

      Подробнее — в разделе «Выдача прав пользователям и сервисным аккаунтам».

    • spec.allocateLoadBalancerNodePorts
      булевый

      Определяет, следует ли автоматически выделять NodePort для сервисов типа LoadBalancer. Значение по умолчанию — true. Значение можно установить в false, если балансировщик нагрузки кластера не зависит от NodePorts.

      Если запрашивающая сторона указывает конкретные значения NodePort, эти запросы будут выполнены независимо от значения этого параметра. Данный параметр может быть установлен только для сервисов типа LoadBalancer и автоматически сбрасывается при изменении типа на другой.

    • spec.clusterIP
      строка

      IP-адрес сервиса.

      Обычно, IP-адрес назначается сервису случайным образом. Если IP-адрес указывается вручную, он должен находиться в допустимом диапазоне (заданном конфигурацией системы) и быть свободным для назначения; в противном случае создание сервиса завершится ошибкой.

      Поле не подлежит изменению при обновлении, за исключением случаев, когда тип сервиса также изменяется на ExternalName (в этом случае поле должно быть пустым), или когда тип меняется с ExternalName, позволяя задать это поле дополнительно, как указано выше.

      Допустимые значения: None, пустая строка (""), или действительный IP-адрес. Установка этого значения в None создает сервис без виртуального IP, что полезно, когда предпочтительнее прямое подключение к конечным точкам, и проксирование не требуется. Применимо только к типам ClusterIP, NodePort и LoadBalancer. Если это поле указано при создании сервиса типа ExternalName, создание завершится неудачей. Подробнее.

      Внимание. Поле неизменяемое и учитывается только при создании дочернего Service. Используемый адрес приводится в status.clusterIP.

    • spec.externalIPs
      массив строк

      Список IP-адресов, по которым узлы в кластере также будут принимать трафик для этого сервиса. Эти IP-адреса не управляются Kubernetes. Пользователь несет ответственность за обеспечение доставки трафика на узел с этим IP-адресом.

      Общий пример — внешние балансировщики нагрузки, которые не являются частью системы Kubernetes.

    • spec.externalName
      строка
      Внешняя ссылка, которую механизмы обнаружения будут возвращать в качестве псевдонима для этого сервиса (например, DNS-запись CNAME). Проксирование не будет использоваться. Имя должно быть в нижнем регистре и соответствовать стандарту RFC-1123 и требует, чтобы поле type было установлено в ExternalName.
    • spec.externalTrafficPolicy
      строка

      Описывает, как узлы распределяют трафик сервиса, который они получают через один из его “внешне направленных” адресов (NodePorts, ExternalIPs и LoadBalancer IPs). Если установлено значение Local, прокси настроит сервис таким образом, что внешние балансировщики нагрузки будут управлять распределением трафика между узлами, и каждый узел будет передавать трафик только локальным конечным точкам сервиса, не маскируя исходный IP-адрес клиента. Трафик, ошибочно отправленный на узел без конечных точек, будет отброшен.

      Значение по умолчанию — Cluster, при котором используется стандартное поведение равномерной маршрутизации ко всем конечным точкам (возможно, с модификациями на основе топологии и других особенностей).

      Обратите внимание, что трафик, отправленный на External IP или LoadBalancer IP изнутри кластера, всегда будет использовать семантику Cluster, но клиенты, отправляющие трафик на NodePort внутри кластера, могут учитывать политику трафика при выборе узла.

    • spec.healthCheckNodePort
      целое число

      Указывает NodePort для проверки состояния сервиса. Это применимо только тогда, когда тип сервиса установлен на LoadBalancer, а параметр externalTrafficPolicy установлен на Local. Если указано значение, оно находится в допустимом диапазоне и не используется, то оно будет применено.

      Если не указано, значение будет назначено автоматически. Внешние системы (например, балансировщики нагрузки) могут использовать этот порт, чтобы определить, содержит ли узел конечные точки для этого сервиса.

      Если это поле указано при создании сервиса, который в этом не нуждается, создание завершится ошибкой. Это поле будет очищено при изменении параметров сервиса, например, при изменении типа.

      Внимание. Поле неизменяемое и учитывается только при создании дочернего Service.

    • spec.healthcheck
      объект
      • spec.healthcheck.initialDelaySeconds
        целое число
        Время в секундах после страта пода, по истечении которого запускаются пробы.

        По умолчанию: 10

        Допустимые значения: 0 <= X <= 108000

      • spec.healthcheck.periodSeconds
        целое число
        Период в секундах для повторных запусков проб.

        По умолчанию: 10

        Допустимые значения: 1 <= X <= 108000

      • spec.healthcheck.probes
        массив объектов
        • spec.healthcheck.probes.failureThreshold
          целое число
          Минимальное количество последовательных неудач, после которых проба будет считаться неудачной.

          По умолчанию: 3

          Допустимые значения: 1 <= X

        • spec.healthcheck.probes.http
          объект
          • spec.healthcheck.probes.http.caCert
            строка
            CA-сертификат для HTTPS соединения.
          • spec.healthcheck.probes.http.code
            массив целых чисел

            Коды состояния ответа, которые считаются успешным результатом пробы.

            Если не указано, успешным считается любой код из диапазона 200-399.

            • spec.healthcheck.probes.http.code.Элемент массива
              целое число

              Допустимые значения: 200 <= X <= 399

          • spec.healthcheck.probes.http.host
            строка
            Имя хоста для подключения, по умолчанию используется IP-адрес пода.
          • spec.healthcheck.probes.http.httpHeaders
            массив объектов
            Пользовательские заголовки, которые будут добавлены к HTTP-запросу и использованы при выполнении пробы. Разрешены повторяющиеся заголовки.
            • spec.healthcheck.probes.http.httpHeaders.name
              строка

              Имя заголовка.

              При выводе будет приведено к стандартному виду (lowercase), так что заголовки с разным регистром будут распознаваться как одинаковые.

            • spec.healthcheck.probes.http.httpHeaders.value
              строка
              Значение заголовка.
          • spec.healthcheck.probes.http.insecureSkipTLSVerify
            булевый
            Указывает, следует ли клиенту пропустить проверку цепочки сертификатов TLS сервера и имени хоста.

            По умолчанию: false

          • spec.healthcheck.probes.http.method
            строка
            Метод, который будет использоваться для запроса.

            По умолчанию: GET

            Допустимые значения: GET, HEAD

          • spec.healthcheck.probes.http.path
            строка

            Путь для доступа к HTTP-серверу.

            Должен начинаться с / и не должен содержать символы CR и LF.

            Шаблон: ^/[^\r\n]*$

          • spec.healthcheck.probes.http.scheme
            строка
            Схема, используемая для подключения к хосту.

            По умолчанию: HTTP

            Допустимые значения: HTTP, HTTPS

          • spec.healthcheck.probes.http.targetPort
            целое число

            Обязательный параметр

            Номер порта для доступа к контейнеру.

            Допустимые значения: 1 <= X <= 65535

        • spec.healthcheck.probes.mode
          строка
          Режим для проверки.

          Допустимые значения: HTTP, TCP, PostgreSQL

        • spec.healthcheck.probes.postgreSQL
          объект
          • spec.healthcheck.probes.postgreSQL.authSecretName
            строка

            Имя секрета (Secret), расположенного в том же пространстве имен, что и этот ресурс. Секрет может содержать следующие поля аутентификации: tlsMode, clientCert, clientKey, caCert, password, user.

            Внимание. Тип секрета должен быть network.deckhouse.io/postgresql-credentials.

          • spec.healthcheck.probes.postgreSQL.dbName
            строка
            Имя базы данных, используемое при подключении. Если не указать, то будет использовано имя пользователя.
          • spec.healthcheck.probes.postgreSQL.query
            строка

            Запрос к PostgreSQL для тестирования.

            Чтобы считаться успешным, запрос должен возвращать одно из следующих значений: TRUE, t, true, y, yes, 1.

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

            По умолчанию: select 1

          • spec.healthcheck.probes.postgreSQL.targetPort
            целое число

            Обязательный параметр

            Номер порта для доступа к контейнеру.

            Допустимые значения: 1 <= X <= 65535

        • spec.healthcheck.probes.successThreshold
          целое число
          Минимальное количество последовательных успешных проверок, после которых проверка считается успешной после предыдущих неудач.

          По умолчанию: 1

          Допустимые значения: 1 <= X

        • spec.healthcheck.probes.tcp
          объект
          • spec.healthcheck.probes.tcp.targetPort
            целое число

            Обязательный параметр

            Номер порта для доступа к контейнеру.

            Допустимые значения: 1 <= X <= 65535

        • spec.healthcheck.probes.timeoutSeconds
          целое число
          Число секунд, по истечении которых проверка завершится по таймауту.

          По умолчанию: 1

          Допустимые значения: 1 <= X

    • spec.internalTrafficPolicy
      строка

      Описывает, как узлы распределяют трафик сервиса, который они получают через ClusterIP.

      Если параметр установлен на Local, прокси предполагает, что поды взаимодействуют только с конечными точками сервиса, находящимися на том же узле, что и под. Трафик будет отброшен, если на узле нет локальных конечных точек.

      Значение по умолчанию — Cluster, при котором используется стандартное поведение маршрутизации ко всем конечным точкам равномерно (возможны изменения в зависимости от топологии и других функций).

      По умолчанию: Cluster

    • spec.ipFamilies
      массив строк

      Семейство IP-адресов (например, IPv4, IPv6), назначенных сервису. Это поле обычно назначается автоматически на основе конфигурации кластера и поля ipFamilyPolicy.

      Если поле указано вручную и запрашиваемое семейство доступно в кластере, а ipFamilyPolicy это позволяет, оно будет использовано; в противном случае создание сервиса завершится ошибкой. Это поле можно изменять условно: допускается добавление или удаление вторичного IP-семейства, но нельзя изменить основное семейство IP-адресов сервиса.

      Допустимые значения — IPv4 и IPv6. Это поле применяется только к сервисам типов ClusterIP, NodePort и LoadBalancer.

      Это поле будет удалено при обновлении сервиса до типа ExternalName.

      Эти семейства должны соответствовать значениям поля clusterIPs, если оно указано. Поля clusterIPs и ipFamilies управляются полем ipFamilyPolicy. Поле может содержать максимум два значения.

      • spec.ipFamilies.Элемент массива
        строка
        Семейство IP-адресов — IPv4 или IPv6.
    • spec.ipFamilyPolicy
      строка

      Требуемая или запрашиваемая поддержка двух стеков для сервиса.

      Если значение не указано, это поле будет установлено в SingleStack. Сервисы могут быть SingleStack (одно IP-семейство), PreferDualStack (два IP-семейства на кластерах с двойным стеком или одно IP-семейство на кластерах с одним стеком) или RequireDualStack (два семейства IP-адресов на кластерах с двойным стеком, в противном случае возникнет ошибка).

      Поля ipFamilies и clusterIPs зависят от значения этого поля. Это поле будет очищено при обновлении сервиса до типа ExternalName.

    • spec.loadBalancerClass
      строка

      Класс реализации балансировщика нагрузки, к которому принадлежит этот сервис. Если указано, значение этого поля должно быть идентификатором в стиле лейбла с необязательным префиксом, например, internal-vip или example.com/internal-vip. Имена без префикса зарезервированы для конечных пользователей.

      Это поле может быть установлено только тогда, когда тип сервиса — LoadBalancer.

      Если тип не указан, используется реализация балансировщика нагрузки по умолчанию, которая обычно осуществляется через интеграцию с облачным провайдером, но должна применяться для любой реализации по умолчанию.

      Если тип указан, предполагается, что реализация балансировщика нагрузки отслеживает сервисы с соответствующим классом. Любая реализация балансировщика нагрузки по умолчанию (например, облачные провайдеры) должна игнорировать сервисы, устанавливающие это поле.

      Внимание. Поле неизменяемое. Чтобы использовать другую реализацию балансировщика, пересоздайте ресурс.

    • spec.loadBalancerIP
      строка

      Адрес, который требуется запросить для балансировщика нагрузки. Применяется только для type: LoadBalancer.

      Внимание. Поле объявлено устаревшим в Kubernetes. Реализация может его проигнорировать и выдать другой адрес или не выдать его вовсе. Предпочтительнее аннотация самой реализации: аннотации этого ресурса копируются в дочерний Service.

    • spec.loadBalancerSourceRanges
      массив строк

      Если указано и поддерживается платформой, это ограничит трафик через облачный балансировщик нагрузки только для указанных клиентских IP-адресов.

      Это поле будет игнорироваться, если облачный провайдер не поддерживает данную функцию. Подробнее.

    • spec.ports
      массив объектов
      Список портов, которые открыты этим сервисом. Подробнее.
      • spec.ports.appProtocol
        строка

        Протокол приложения для данного порта. Служит подсказкой для реализаций, позволяя предложить более расширенное поведение для поддерживаемых протоколов. Это поле следует стандартному синтаксису лейблов Kubernetes. Допустимые значения:

        • Именования протоколов без префиксов — зарезервированы для стандартных имён служб IANA, в соответствии с RFC-6335.
        • Именования с префиксом, определенные Kubernetes:
          • kubernetes.io/h2c — HTTP/2 с предварительным знанием в открытом виде, как описано в RFC;
          • kubernetes.io/ws — WebSocket в открытом виде, как описано в RFC;
          • kubernetes.io/wss — WebSocket через TLS, как описано в RFC.
        • Другие протоколы должны использовать имена с определенными реализациями, например с такими как mycompany.com/my-custom-protocol.
      • spec.ports.name
        строка

        Имя этого порта внутри сервиса. Должно соответствовать стандарту DNS_LABEL.

        Имена портов должны быть уникальны в пределах сервиса: по этому имени потребитель сопоставляет порт сервиса с портом опубликованного эндпоинта.

        Имя можно не указывать, если у сервиса всего один порт. Если портов больше одного, имя обязательно для каждого.

        Максимальная длина: 63

        Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

      • spec.ports.nodePort
        целое число

        Порт на каждом узле, на котором эта служба открыта, когда тип равен NodePort или LoadBalancer. Обычно назначается системой. Если указано значение, оно должно быть в диапазоне и не должно использоваться, иначе операция завершится с ошибкой.

        Если не указано, порт будет выделен, если этой службе это требуется.

        Если это поле указано при создании службы, которая в этом не нуждается, создание завершится с ошибкой.

        Это поле будет очищено при обновлении службы, например, при изменении типа с NodePort на ClusterIP. Подробнее.

      • spec.ports.port
        целое число
        Порт, который будет открыт этой службой.
      • spec.ports.protocol
        строка
        IP-протокол для этого порта. Поддерживает TCP, UDP и SCTP.

        По умолчанию: TCP

      • spec.ports.targetPort
        целое число

        Номер порта для доступа к подам, на которые нацелен сервис.

        Это поле игнорируется для сервисов с clusterIP=None и должно быть установлено равным полю port. Подробнее.

    • spec.publishNotReadyAddresses
      булевый

      Указывает, что любые агенты, занимающиеся обработкой конечных точек данного сервиса, должны игнорировать статусы готовности или неготовности. Основное применение этого поля заключается в том, чтобы сервисы StatefulSet могли распространять записи SRV DNS для своих подов с целью обнаружения пиров.

      Контроллеры Kubernetes, которые генерируют ресурсы Endpoints и EndpointSlice для сервисов, трактуют это как указание, что все конечные точки следует считать “готовыми”, даже если поды не прошли пробы и не готовы.

    • spec.selector
      объект

      Маршрутизирует трафик сервиса к подам, у которых ключи и значения лейблов соответствуют этому селектору. Если параметр не определен, предполагается, что у сервиса есть внешний процесс, управляющий его конечными точками, которые Kubernetes не будет изменять.

      Применимо только к типам ClusterIP, NodePort и LoadBalancer.

      Игнорируется, если тип — ExternalName. Подробнее.

    • spec.sessionAffinity
      строка
      Используется для поддержания сессий с привязкой к клиенту. Должно быть указано значение либо ClientIP, либо None. Подробнее.
    • spec.sessionAffinityConfig
      объект
      Содержит конфигурацию привязки сессий.
      • spec.sessionAffinityConfig.clientIP
        объект
        Содержит конфигурацию привязки сессий на основе IP-адреса клиента.
        • spec.sessionAffinityConfig.clientIP.timeoutSeconds
          целое число

          Указывает время удержания сессии для типа ClientIP в секундах.

          Значение должно быть >0 && <=86400 (для 1 дня), если ServiceAffinity == ClientIP.

    • spec.trafficDistribution
      строка

      Позволяет задать предпочтения по распределению трафика между конечными точками сервиса. Реализации могут учитывать это поле как рекомендацию, но не обязаны строго его соблюдать.

      Если поле не задано, реализация применяет стратегию маршрутизации по умолчанию. Если установлено значение PreferClose, реализации должны приоритизировать конечные точки, которые топологически близки (например, в той же зоне).

    • spec.type
      строка

      Определяет доступность сервиса.

      По умолчанию используется ClusterIP. Допустимые варианты: ExternalName, ClusterIP, NodePort и LoadBalancer.

      ClusterIP выделяет внутренний IP-адрес для балансировки нагрузки между конечными точками. Конечные точки определяются selector или, если он не указан, вручную с помощью объектов Endpoints или EndpointSlice.

      Если значение clusterIP установлено на None, виртуальный IP не выделяется, и конечные точки публикуются как набор конечных точек, а не как виртуальный IP.

      NodePort расширяет ClusterIP и выделяет порт на каждом узле, который маршрутизируется к тем же конечным точкам, что и clusterIP.

      LoadBalancer расширяет NodePort и создает внешний балансировщик нагрузки (если поддерживается текущим облаком), который маршрутизируется к тем же конечным точкам, что и clusterIP.

      ExternalName создает алиас этому сервису на указанный externalName. Некоторые другие поля не применяются к сервисам типа ExternalName.

      Подробнее.

      По умолчанию: ClusterIP

  • status
    объект
    Определяет наблюдаемое состояние ServiceWithHealthchecks.
    • status.clusterIP
      строка
      Адрес дочернего сервиса: либо запрошенный в spec.clusterIP, либо выданный кластером.
    • status.clusterIPs
      массив строк
      Все адреса дочернего сервиса, по одному на каждое семейство IP-адресов.
    • status.conditions
      массив объектов

      Текущее состояние сервиса:

      • ChildServiceReady — удалось ли создать дочерний Service и принадлежит ли он этому ресурсу.
      • LoadBalancerReady — только для type: LoadBalancer: выделен ли адрес.
      • Ready — проходят ли пробы все опубликованные эндпоинты.
      • status.conditions.lastTransitionTime
        строка

        Последнее время изменения, когда условие перешло из одного состояния в другое. Это должно соответствовать времени изменения основного условия.

        Если время неизвестно, можно использовать время изменения поля API.

      • status.conditions.message
        строка

        Понятное человеку сообщение, указывающее детали перехода.

        Это может быть пустая строка.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целое число

        Значение .metadata.generation, на основе которого было установлено состояние.

        Например, если .metadata.generation равно 12, а .status.conditions[x].observedGeneration равно 9, то состояние устарело по отношению к текущему состоянию экземпляра.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка

        Программный идентификатор, указывающий причину последнего перехода состояния. Производители конкретных типов состояний могут определить ожидаемые значения и их значения для этого поля, а также то, считаются ли эти значения гарантированным API.

        Значение должно быть строкой в CamelCase.

        Это поле не может быть пустым.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Состояние условия, одно из значений True, False, Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка

        Тип условия в формате CamelCase или в виде foo.example.com/CamelCase.

        Многие значения .condition.type последовательны для различных ресурсов, таких как Available, но поскольку произвольные условия могут быть полезными (см. .node.status.conditions), важна возможность разрешения конфликтов. Регулярное выражение, которому оно соответствует: (dns1123SubdomainFmt/)?(qualifiedNameFmt)

        Максимальная длина: 316

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.endpointStatuses
      массив объектов
      Текущее состояние службы.
      • status.endpointStatuses.failedProbes
        массив строк

        Список проб, которые сейчас находятся в состоянии отказа.

        Проба попадает в этот список после того, как достигнут её failureThreshold, и покидает его после того, как достигнут её successThreshold. Это ровно тот набор проб, из-за которого probesSuccessful равно false.

      • status.endpointStatuses.lastProbeTime
        строка
        Время последней проверки пода (обновляется в зависимости от настройки verboseStatus).
      • status.endpointStatuses.lastTransitionTime
        строка
        Время, когда состояние пробы последний раз перешло из одного статуса в другой.
      • status.endpointStatuses.nodeName
        строка
        Узел, на котором запущен под.
      • status.endpointStatuses.podName
        строка
        Имя проверяемого пода.
      • status.endpointStatuses.probesSuccessful
        булевый
        Указывает, были ли успешными все пользовательские пробы ServiceWithHealthchecks.
      • status.endpointStatuses.ready
        булевый

        Указывает, готов ли эндпоинт: под прошёл стандартные проверки readiness Kubernetes и все пользовательские пробы ServiceWithHealthchecks завершились успешно.

        В readyEndpoints учитываются эндпоинты, отмеченные здесь как готовые. Если значение false, а probesSuccessful равно true, значит не готов сам под.

    • status.healthcheckCondition
      объект
      Сводка результатов проверок (health checks).
      • status.healthcheckCondition.endpoints
        целое число
        Общее количество эндпоинтов (подов), для которых выполняются проверки.
      • status.healthcheckCondition.observedGeneration
        целое число
        Последнее поколение (generation) ресурса, которое наблюдал контроллер.
      • status.healthcheckCondition.readyEndpoints
        целое число
        Количество эндпоинтов (подов), успешно прошедших проверки.
    • status.loadBalancer
      объект
      Содержит текущее состояние балансировщика нагрузки, если он присутствует.
      • status.loadBalancer.ingress
        массив объектов
        Список, содержащий точки входа для балансировщика нагрузки. Трафик, предназначенный для сервиса, должен направляться на эти точки входа.
        • status.loadBalancer.ingress.hostname
          строка
          Устанавливается для точек входа балансировщика нагрузки, которые основаны на DNS (обычно балансировщики нагрузки AWS).
        • status.loadBalancer.ingress.ip
          строка
          Устанавливается для точек входа балансировщика нагрузки, которые основаны на IP-адресах (обычно балансировщики нагрузки GCE или OpenStack).
        • status.loadBalancer.ingress.ipMode
          строка

          Указывает, как ведет себя IP-адрес балансировщика нагрузки и может быть указан только при указании поля ip. Установка значения VIP означает, что трафик доставляется на узел с назначением, установленным на IP-адрес и порт балансировщика нагрузки. Установка значения Proxy указывает, что трафик доставляется на узел или под с назначением, установленным на IP-адрес узла и порт узла или IP-адрес пода и порт.

          Реализации сервиса могут использовать эту информацию для настройки маршрутизации трафика.

        • status.loadBalancer.ingress.ports
          массив объектов

          Список записей портов сервиса.

          Если используется, каждый порт, определенный в сервисе, должен иметь соответствующую запись в этом списке.

          • status.loadBalancer.ingress.ports.error
            строка
            Проблема, о которой балансировщик сообщил для этого порта, в формулировке его реализации.

            Максимальная длина: 316

          • status.loadBalancer.ingress.ports.port
            целое число
            Номер порта сервиса, статус которого указан.
          • status.loadBalancer.ingress.ports.protocol
            строка
            Протокол порта сервиса, статус которого здесь записан. Поддерживаемые значения: TCP, UDP, SCTP.

            По умолчанию: TCP

    • status.ports
      строка
      Порты дочернего сервиса, например 80/TCP,443:31443/TCP.