Spec-Zone.ru › Kubernetes 1.27

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

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

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 (строка), обязательно

        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_LABEL. Необязательно только если определен один порт.

      • 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/rfc7540
        • Другие протоколы должны использовать определённые реализацией префиксные имена, такие как 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-27.docs.kubernetes.io/docs/reference/kubernetes-api/service-resources/endpoints-v1/

Spec-Zone.ru

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