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 (карта[строка]строка)
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 пусто, это означает, что нет определенных портов. Если порт определен с нулевым значением порта, это означает «все порты». Каждый фрагмент может включать не более 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 по открытому каналу, как описано в https://www.rfc-editor.org/rfc/rfc7540
-
Другие протоколы должны использовать имена с префиксами, определёнными реализацией, такими как 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-27.docs.kubernetes.io/docs/reference/kubernetes-api/service-resources/endpoint-slice-v1/