Spec-Zone.ru › Kubernetes 1.28

EndpointSlice

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

apiVersion: discovery.k8s.io/v1

import "k8s.io/api/discovery/v1"

EndpointSlice

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

  • apiVersion: discovery.k8s.io/v1

  • kind: EndpointSlice

  • metadata (ObjectMeta)

    Стандартные метаданные объекта.

  • addressType (строка), обязательно

    addressType указывает тип адреса, переносимого этим EndpointSlice. Все адреса в этом фрагменте должны быть одного типа. Это поле неизменяемо после создания. В настоящее время поддерживаются следующие типы адресов: * IPv4: Представляет IPv4-адрес. * IPv6: Представляет IPv6-адрес. * FQDN: Представляет полное доменное имя.

  • endpoints ([]Endpoint), обязательно

    Атомарно: будет заменено во время слияния

    endpoints — это список уникальных конечных точек в этом фрагменте. Каждый фрагмент может содержать не более 1000 конечных точек.

    Endpoint представляет собой отдельную логическую "заднюю" конечную точку, реализующую сервис.

    • endpoints.addresses ([]строка), обязательно

      Множество: уникальные значения будут сохранены во время слияния

      адреса этой конечной точки. Содержимое этого поля интерпретируется в соответствии с полем addressType соответствующего EndpointSlice. Потребители должны обрабатывать разные типы адресов в контексте собственных возможностей. Это должно содержать по крайней мере один адрес, но не более 100. Все они предполагаются взаимозаменяемыми, и клиенты могут выбрать использование только первого элемента. См.: https://issue.k8s.io/106267

    • endpoints.conditions (EndpointConditions)

      conditions содержит информацию о текущем состоянии конечной точки.

      EndpointConditions представляет текущее состояние конечной точки.

      • endpoints.conditions.ready (булево)

        ready указывает, что эта конечная точка готова принимать трафик в соответствии с тем или иным управлением конечной точкой. Значение null указывает неизвестное состояние. В большинстве случаев потребители должны интерпретировать это неизвестное состояние как готовое. По соображениям совместимости ready никогда не должно быть «true» для завершающихся конечных точек, за исключением случаев, когда поведение готовности явно переопределяется, например, когда связанный сервис установил флаг publishNotReadyAddresses.

      • endpoints.conditions.serving (булево)

        serving идентично ready, за исключением того, что оно устанавливается независимо от состояния завершения конечных точек. Это условие должно быть установлено в значение true для готовой конечной точки, которая завершается. Если значение null, потребители должны учитывать условие ready.

      • endpoints.conditions.terminating (булево)

        terminating указывает, что эта конечная точка завершается. Значение null указывает неизвестное состояние. Потребители должны интерпретировать это неизвестное состояние так, что конечная точка не завершается.

    • endpoints.deprecatedTopology (map[string]string)

      deprecatedTopology содержит информацию о топологии, являющуюся частью API v1beta1. Это поле устарело и будет удалено при удалении API v1beta1 (не ранее Kubernetes v1.24). Хотя это поле может содержать значения, оно не может быть записано через API v1, и любые попытки записи в него будут проигнорированы. Информация о топологии доступна в полях zone и nodeName.

    • endpoints.hints (EndpointHints)

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

      EndpointHints предоставляет подсказки, описывающие, как должна потребляться конечная точка.

      • endpoints.hints.forZones ([]ForZone)

        Атомарно: будет заменено во время слияния

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

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

        • endpoints.hints.forZones.name (строка), обязательно

          name представляет имя зоны.

    • endpoints.hostname (строка)

      hostname этой конечной точки. Это поле может использоваться потребителями конечных точек для различения конечных точек друг от друга (например, в именах DNS). Несколько конечных точек, использующих одно и то же имя хоста, должны рассматриваться как взаимозаменяемые (например, несколько значений A в DNS). Должен быть в нижнем регистре и пройти проверку на соответствие метке DNS (RFC 1123).

    • endpoints.nodeName (строка)

      nodeName представляет имя узла, на котором размещена эта конечная точка. Это можно использовать для определения конечных точек, локальных для узла.

    • endpoints.targetRef (ObjectReference)

      targetRef — ссылка на объект Kubernetes, который представляет эту конечную точку.

    • endpoints.zone (строка)

      zone — имя зоны, в которой существует эта конечная точка.

  • ports ([]EndpointPort)

    Атомарно: будет заменено во время слияния

    ports определяет список сетевых портов, экспонируемых каждой конечной точкой в этом фрагменте. Каждый порт должен иметь уникальное имя. Если ports пусто, это указывает на отсутствие определенных портов. Если порт определен со значением порта null, это указывает «все порты». Каждый фрагмент может содержать не более 100 портов.

    EndpointPort представляет порт, используемый EndpointSlice

    • ports.port (int32)

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

    • ports.protocol (строка)

      protocol представляет IP-протокол для этого порта. Должно быть UDP, TCP или SCTP. По умолчанию — TCP.

    • ports.name (строка)

      name представляет имя этого порта. Все порты в EndpointSlice должны иметь уникальное имя. Если EndpointSlice получен из сервиса Kubernetes, это соответствует Service.ports[].name. Имя должно быть либо пустой строкой, либо проходить проверку DNS_LABEL: * должно быть не более 63 символов длиной. * должно состоять из строчных букв, цифр или '-'. * должно начинаться и заканчиваться буквенно-цифровым символом. По умолчанию — пустая строка.

    • ports.appProtocol (строка)

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

      • Имена протоколов без префиксов — зарезервированы для стандартных имен сервисов IANA (в соответствии с RFC-6335 и https://www.iana.org/assignments/service-names).

      • Определенные Kubernetes префиксные имена:

        • 'kubernetes.io/h2c' — HTTP/2 over cleartext, как описано в https://www.rfc-editor.org/rfc/rfc7540
        • 'kubernetes.io/ws' — WebSocket over cleartext, как описано в https://www.rfc-editor.org/rfc/rfc6455
        • 'kubernetes.io/wss' — WebSocket over TLS, как описано в https://www.rfc-editor.org/rfc/rfc6455
      • Другие протоколы должны использовать определенные реализацией префиксные имена, такие как mycompany.com/my-custom-protocol.

EndpointSliceList

EndpointSliceList представляет собой список фрагментов конечных точек

  • apiVersion: discovery.k8s.io/v1

  • kind: EndpointSliceList

  • metadata (ListMeta)

    Стандартные метаданные списка.

  • items ([]EndpointSlice), обязательно

    items — это список фрагментов конечных точек

© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-28.docs.kubernetes.io/docs/reference/kubernetes-api/service-resources/endpoint-slice-v1/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API