Конечные точки
apiVersion: v1
import "k8s.io/api/core/v1"
Конечные точки
Конечные точки — это набор конечных точек, реализующих фактическую службу. Пример:
Имя: "mysvc", Подмножества: [ { Адреса: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], Порты: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] }, { Адреса: [{"ip": "10.10.3.3"}], Порты: [{"name": "a", "port": 93}, {"name": "b", "port": 76}] }, ]
apiVersion: v1
kind: Конечные точки
-
metadata (ObjectMeta)
Стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
-
subsets ([]EndpointSubset)
Атомарно: будет заменено при слиянии
Набор всех конечных точек — это объединение всех подмножеств. Адреса помещаются в подмножества в соответствии с общими IP-адресами. Один адрес с несколькими портами, некоторые из которых готовы, а некоторые — нет (потому что они взяты из разных контейнеров), приведет к отображению адреса в разных подмножествах для разных портов. Ни один адрес не будет отображаться как в адресах, так и в адресах NotReady в одном подмножестве. Наборы адресов и портов, составляющих службу.
*EndpointSubset — это группа адресов с общим набором портов. Расширенный набор конечных точек представляет собой декартово произведение Addresses x Ports. Например, при:
{ Адреса: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], Порты: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] }
Полученный набор конечных точек можно рассматривать как:
a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], b: [ 10.10.1.1:309, 10.10.2.2:309 ]*
-
subsets.addresses ([]EndpointAddress)
Атомарно: будет заменено при слиянии
IP-адреса, предоставляющие соответствующие порты, помеченные как готовые. Эти конечные точки следует считать безопасными для использования балансировщиками нагрузки и клиентами.
EndpointAddress — кортеж, описывающий один IP-адрес.
-
subsets.addresses.ip (строка), обязательно
IP этой конечной точки. Не должен быть обратным (127.0.0.0/8 или ::1), локальным (169.254.0.0/16 или fe80::/10) или локальным многоадресным (224.0.0.0/24 или ff02::/16).
-
subsets.addresses.hostname (строка)
Имя хоста этой конечной точки
-
subsets.addresses.nodeName (строка)
Необязательно: узел, на котором размещена эта конечная точка. Это можно использовать для определения конечных точек, локальных для узла.
-
subsets.addresses.targetRef (ObjectReference)
Ссылка на объект, предоставляющий конечную точку.
-
-
subsets.notReadyAddresses ([]EndpointAddress)
Атомарно: будет заменено при слиянии
IP-адреса, предоставляющие соответствующие порты, но в настоящее время не помеченные как готовые, так как они еще не завершили запуск, недавно не прошли проверку готовности или недавно не прошли проверку работоспособности.
EndpointAddress — кортеж, описывающий один IP-адрес.
-
subsets.notReadyAddresses.ip (строка), обязательно
IP этой конечной точки. Не должен быть обратным (127.0.0.0/8 или ::1), локальным (169.254.0.0/16 или fe80::/10) или локальным многоадресным (224.0.0.0/24 или ff02::/16).
-
subsets.notReadyAddresses.hostname (строка)
Имя хоста этой конечной точки
-
subsets.notReadyAddresses.nodeName (строка)
Необязательно: узел, на котором размещена эта конечная точка. Это можно использовать для определения конечных точек, локальных для узла.
-
subsets.notReadyAddresses.targetRef (ObjectReference)
Ссылка на объект, предоставляющий конечную точку.
-
-
subsets.ports ([]EndpointPort)
Атомарно: будет заменено при слиянии
Номера портов, доступные по соответствующим IP-адресам.
EndpointPort — кортеж, описывающий один порт.
-
subsets.ports.port (int32), обязательно
Номер порта конечной точки.
-
subsets.ports.protocol (строка)
IP-протокол для этого порта. Должен быть UDP, TCP или SCTP. По умолчанию TCP.
-
subsets.ports.name (строка)
Имя этого порта. Должно совпадать с полем «name» в соответствующем ServicePort. Должен быть меткой DNS. Необязательно только в случае одного порта.
-
subsets.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/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.
-
-
Список конечных точек
EndpointsList — это список конечных точек.
apiVersion: v1
kind: Список конечных точек
-
metadata (ListMeta)
Стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
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/endpoints-v1/