Spec-Zone.ru › Kubernetes 1.25

Конечные точки

Конечные точки — это набор конечных точек, реализующих фактический сервис.

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/

Spec-Zone.ru

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