Конечные точки
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-адресами. Один адрес с несколькими портами, некоторые из которых готовы, а некоторые нет (потому что они происходят из разных контейнеров), приведёт к отображению адреса в разных подмножествах для разных портов. Ни один адрес не будет отображаться как в Addresses, так и в NotReadyAddresses в одном подмножестве. Наборы адресов и портов, составляющих сервис.
*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), required
IP этой конечной точки. Не должен быть обратным (127.0.0.0/8), локальным (169.254.0.0/16) или локальным мультикастом ((224.0.0.0/24). IPv6 также принимается, но не полностью поддерживается на всех платформах. Кроме того, некоторые компоненты Kubernetes, например kube-proxy, не поддерживают IPv6.
-
subsets.addresses.hostname (string)
Имя хоста этой конечной точки
-
subsets.addresses.nodeName (string)
Необязательно: узел, на котором размещена эта конечная точка. Это можно использовать для определения конечных точек, локальных для узла.
-
subsets.addresses.targetRef (ObjectReference)
Ссылка на объект, предоставляющий конечную точку.
-
-
subsets.notReadyAddresses ([]EndpointAddress)
IP-адреса, предлагающие соответствующие порты, но в настоящее время не отмеченные как готовые, поскольку они ещё не завершили запуск, недавно не прошли проверку готовности или недавно не прошли проверку работоспособности.
EndpointAddress — это кортеж, описывающий один IP-адрес.
-
subsets.notReadyAddresses.ip (string), required
IP этой конечной точки. Не должен быть обратным (127.0.0.0/8), локальным (169.254.0.0/16) или локальным мультикастом ((224.0.0.0/24). IPv6 также принимается, но не полностью поддерживается на всех платформах. Кроме того, некоторые компоненты Kubernetes, например kube-proxy, не поддерживают IPv6.
-
subsets.notReadyAddresses.hostname (string)
Имя хоста этой конечной точки
-
subsets.notReadyAddresses.nodeName (string)
Необязательно: узел, на котором размещена эта конечная точка. Это можно использовать для определения конечных точек, локальных для узла.
-
subsets.notReadyAddresses.targetRef (ObjectReference)
Ссылка на объект, предоставляющий конечную точку.
-
-
subsets.ports ([]EndpointPort)
Номера портов, доступные по соответствующим IP-адресам.
EndpointPort — это кортеж, описывающий один порт.
-
subsets.ports.port (int32), required
Номер порта конечной точки.
-
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). Нестандартные протоколы должны использовать префиксные имена, такие как 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 ([]Endpoints), required
Список конечных точек.
© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-25.docs.kubernetes.io/docs/reference/kubernetes-api/service-resources/endpoints-v1/