Spec-Zone.ru › Kubernetes

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 (string), required

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

  • endpoints ([]Endpoint), required

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

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

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

    • endpoints.addresses ([]string), required

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

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

    • endpoints.conditions (EndpointConditions)

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

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

      • endpoints.conditions.ready (boolean)

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

      • endpoints.conditions.serving (boolean)

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

      • endpoints.conditions.terminating (boolean)

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

    • 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 (string), required

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

    • endpoints.hostname (string)

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

    • endpoints.nodeName (string)

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

    • endpoints.targetRef (ObjectReference)

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

    • endpoints.zone (string)

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

  • ports ([]EndpointPort)

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

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

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

    • ports.port (int32)

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

    • ports.protocol (string)

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

    • ports.name (string)

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

    • ports.appProtocol (string)

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

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

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

        • 'kubernetes.io/h2c' — HTTP/2 с предварительными знаниями через открытый текст, как описано в https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-
        • 'kubernetes.io/ws' — WebSocket через открытый текст, как описано в https://www.rfc-editor.org/rfc/rfc6455
        • 'kubernetes.io/wss' — WebSocket через 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), required

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

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

Spec-Zone.ru

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