EndpointSlice

EndpointSlice представляє підмножину точок доступу, які реалізують сервіс.

apiVersion: discovery.k8s.io/v1

import "k8s.io/api/discovery/v1"

EndpointSlice

EndpointSlice представляє підмножину точок доступу, які реалізують сервіс. Для даного сервісу може існувати декілька обʼєктів EndpointSlice, виділених мітками, які необхідно обʼєднати для отримання повного набору кінцевих точок.


  • apiVersion: discovery.k8s.io/v1

  • kind: EndpointSlice

  • metadata (ObjectMeta)

    Стандартні метадані обʼєкта.

  • addressType (string), обовʼязково

    addressType вказує тип адреси, яку містить цей EndpointSlice. Усі адреси в цьому сегменті повинні бути одного типу. Це поле є незмінним після створення. Наразі підтримуються такі типи адрес:

    • IPv4: Представляє адресу IPv4.
    • IPv6: Представляє адресу IPv6.
    • FQDN: Представляє повне доменне імʼя (Fully Qualified Domain Name).
  • endpoints ([]Endpoint), обовʼязково

    Atomic: буде замінено під час злиття

    endpoints — список унікальних точок доступу у цьому зрізі. Кожен зріз може містити максимум 1000 точок доступу.

    Точка доступу являє собою окремий логічний “бекенд", що реалізує сервіс.

    • endpoints.addresses ([]string), обовʼязково

      Set: унікальні значення будуть збережені під час злиття

      адреси цієї точки доступу. Вміст цього поля інтерпретується згідно з відповідним полем EndpointSlice addressType. Споживачі повинні обробляти різні типи адрес у контексті власних можливостей. Це поле має містити принаймні одну адресу, але не більше 100. Вважається, що всі вони є взаємозамінними, і клієнти можуть використовувати лише перший елемент. Зверніться до: https://issue.k8s.io/106267

    • endpoints.conditions (EndpointConditions)

      conditions містить інформацію про поточний стан точки доступу.

      EndpointConditions представляє поточний стано точки доступу.

      • endpoints.conditions.ready (boolean)

        ready вказує на те, що ця точка доступу готова приймати трафік, відповідно до системи, яка керує цією точкою доступу. Нульове значення вказує на невідомий стан. У більшості випадків споживачі повинні інтерпретувати цей невідомий стан як готовий. З міркувань сумісності значення ready ніколи не повинно бути "true" для точок доступу, що завершують роботу, за винятком випадків, коли звичайна поведінка готовності явно перевизначена, наприклад, коли пов'язана служба встановила прапорець publishNotReadyAddresses.

      • endpoints.conditions.serving (boolean)

        serving ідентичний ready, за винятком того, що він встановлюється незалежно від завершального стану точок доступу. Ця умова має бути встановлена в true для точки доступу що має стан ready, яка завершує роботу. Якщо вона дорівнює нулю, споживачі повинні відкладати обслуговування до стану готовності.

      • endpoints.conditions.terminating (boolean)

        terminating вказує на те, що ця точка доступу завершує роботу. Нульове значення вказує на невідомий стан. Споживачі повинні інтерпретувати цей невідомий стан як те, що точка доступу не завершує роботу.

    • endpoints.deprecatedTopology (map[string]string)

      deprecatedTopology містить інформацію про топологію, яка є частиною v1beta1 API. Це поле є застарілим і буде вилучено, коли буде вилучено API v1beta1 (не раніше kubernetes v1.24). Хоча це поле може містити значення, воно не може бути записане через v1 API, і будь-які спроби запису до нього будуть проігноровані. Замість цього інформацію про топологію можна знайти у полях zone та nodeName.

    • endpoints.hints (EndpointHints)

      hints містить інформацію, повʼязану з тим, як слід використовувати точку доступу.

      EndpointHints надає підказки, що описують, як слід використовувати точку доступу.

      • endpoints.hints.forZones ([]ForZone)

        Atomic: буде замінено під час злиття

        forZones вказує на зону(и), до якої(их) повинна потрапити ця точка доступу, щоб увімкнути топологічно орієнтовану маршрутизацію.

        ForZone надає інформацію про те, які зони повинні використовувати цю точку доступу.

        • endpoints.hints.forZones.name (string), обовʼязково

          name — назва зони.

    • endpoints.hostname (string)

      ім'я хосту цієї точки доступу. Це поле може використовуватися споживачами точок доступу, щоб відрізняти їх одна від одної (наприклад, в іменах DNS). Кілька точок доступу, які використовують одне й те саме ім'я хосту, слід вважати взаємозамінними (наприклад, кілька значень A в DNS). Повинні бути малими літерами і проходити перевірку DNS-мітки (RFC 1123).

    • endpoints.nodeName (string)

      nodeName — імʼя вузла, на якому розміщено цю точку доступу. Це може бути використано для визначення локальних для вузла точок доступу.

    • endpoints.targetRef (ObjectReference)

      targetRef — посилання на обʼєкт Kubernetes, який представляє цю точку доступу.

    • endpoints.zone (string)

      зона — назва зони, в якій існує ця точка доступу.

  • ports ([]EndpointPort)

    Atomic: буде замінено під час злиття

    ports визначає список мережевих портів, доступних для кожної точки доступу у цьому зрізі. Кожен порт повинен мати унікальну назву. Якщо параметр ports порожній, це означає, що немає визначених портів. Якщо порт визначено зі значенням nil port, це означає "all ports" (всі порти). Кожен зріз може містити максимум 100 портів.

    EndpointPort представляє Port, який використовується EndpointSlice

    • ports.port (int32)

      порт — це номер порту точки доступу. Якщо його не вказано, порти не обмежуються і повинні інтерпретуватися в контексті конкретного споживача.

    • ports.protocol (string)

      протокол представляє IP-протокол для цього порту. Має бути UDP, TCP або SCTP. Стандартно використовується TCP.

    • ports.name (string)

      name - імʼя цього порту. Усі порти у фрагменті EndpointSlice повинні мати унікальне імʼя. Якщо EndpointSlice є похідним від сервісу Kubernetes, це імʼя відповідає Service.ports[].name. Імʼя має бути або порожнім рядком, або пройти перевірку DNS_LABEL:

      • повинно мати довжину не більше 63 символів.
      • має складатися з малих літер та цифр або символу '-'.
      • повинно починатися і закінчуватися буквено-цифровим символом. Стандартно - порожній рядок.
    • ports.appProtocol (string)

      Протокол застосунку для цього порту. Це використовується як підказка для реалізацій, щоб запропонувати багатший функціонал для протоколів, які вони розуміють. Це поле дотримується стандартного синтаксису міток Kubernetes. Допустимі значення:

EndpointSliceList

EndpointSliceList представляє список зрізів точок доступу


  • apiVersion: discovery.k8s.io/v1

  • kind: EndpointSliceList

  • metadata (ListMeta)

    Стандартні метадані списку.

  • items ([]EndpointSlice), обовʼязково

    items — список зрізів точок доступу

Операції


get отримати вказанний EndpointSlice

HTTP запит

GET /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}

Параметри

  • name (в шляху): string, обовʼязково

    імʼя EndpointSlice

  • namespace (в шляху): string, обовʼязково

    namespace

  • pretty (в запиті): string

    pretty

Відповідь

200 (EndpointSlice): OK

401: Unauthorized

list перелік або перегляд обʼєктів EndpointSlice

HTTP запит

GET /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices

Параметри

Відповідь

200 (EndpointSliceList): OK

401: Unauthorized

list перелік або перегляд обʼєктів EndpointSlice

HTTP запит

GET /apis/discovery.k8s.io/v1/endpointslices

Параметри

Відповідь

200 (EndpointSliceList): OK

401: Unauthorized

create створення EndpointSlice

HTTP запит

POST /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices

Параметри

Відповідь

200 (EndpointSlice): OK

201 (EndpointSlice): Created

202 (EndpointSlice): Accepted

401: Unauthorized

update заміна вказаного EndpointSlice

HTTP запит

PUT /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}

Параметри

  • name (в шляху): string, обовʼязково

    імʼя EndpointSlice

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: EndpointSlice, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • pretty (в запиті): string

    pretty

Відповідь

200 (EndpointSlice): OK

201 (EndpointSlice): Created

401: Unauthorized

patch часткове оновлення вказаного EndpointSlice

HTTP запит

PATCH /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}

Параметри

  • name (в шляху): string, обовʼязково

    імʼя EndpointSlice

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: Patch, обовʼязково

  • dryRun (в запиті): string

    dryRun

  • fieldManager (в запиті): string

    fieldManager

  • fieldValidation (в запиті): string

    fieldValidation

  • force (в запиті): boolean

    force

  • pretty (в запиті): string

    pretty

Відповідь

200 (EndpointSlice): OK

201 (EndpointSlice): Created

401: Unauthorized

delete видалення EndpointSlice

HTTP запит

DELETE /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}

Параметри

  • name (в шляху): string, обовʼязково

    імʼя EndpointSlice

  • namespace (в шляху): string, обовʼязково

    namespace

  • body: DeleteOptions

  • dryRun (в запиті): string

    dryRun

  • gracePeriodSeconds (в запиті): integer

    gracePeriodSeconds

  • pretty (в запиті): string

    pretty

  • propagationPolicy (в запиті): string

    propagationPolicy

Відповідь

200 (Status): OK

202 (Status): Accepted

401: Unauthorized

deletecollection видалення колекції EndpointSlice

HTTP запит

DELETE /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices

Параметри

Відповідь

200 (Status): OK

401: Unauthorized

Змінено September 06, 2024 at 4:29 PM PST: upstream sync (b8cab2cff8)