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