ResourceSlice

ResourceSlice представляє один або кілька ресурсів у пулі подібних ресурсів, керованих спільним драйвером. Пул може охоплювати більше одного ResourceSlice, і точно визначити, скільки ResourceSlice складають пул, визначає драйвер.

На даний момент єдині підтримувані ресурси — це пристрої з атрибутами та ємностями (capacities). Кожен пристрій у даному пулі, незалежно від того, скільки ResourceSlice, повинен мати унікальне імʼя. ResourceSlice, у якому публікується пристрій, може змінюватися з часом. Унікальний ідентифікатор для пристрою — це кортеж <імʼя драйвера>, <імʼя пулу>, <імʼя пристрою>.

Щоразу, коли драйвер потребує оновлення пулу, він збільшує номер pool.Spec.Pool.Generation і оновлює всі ResourceSlices з новим номером та новими визначеннями ресурсів. Споживач повинен використовувати лише ResourceSlices з найвищим номером покоління і ігнорувати всі інші.

При виділенні всіх ресурсів у пулі, що відповідають певним критеріям, або при пошуку найкращого рішення серед кількох різних альтернатив, споживач повинен перевірити кількість ResourceSlices у пулі (включених у кожен ResourceSlice), щоб визначити, чи є його уявлення про пул повним, і якщо ні, слід чекати, поки драйвер завершить оновлення пулу.

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

apiVersion: resource.k8s.io/v1

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

ResourceSlice

ResourceSlice представляє один або кілька ресурсів у пулі подібних ресурсів, керованих спільним драйвером. Пул може охоплювати більше одного ResourceSlice, і точно визначити, скільки ResourceSlices складають пул, визначає драйвер.

На даний момент єдині підтримувані ресурси — це пристрої з атрибутами та ємностями (capacities). Кожен пристрій у даному пулі, незалежно від того, скільки ResourceSlices, повинен мати унікальне імʼя. ResourceSlice, у якому публікується пристрій, може змінюватися з часом. Унікальний ідентифікатор для пристрою — це кортеж <імʼя драйвера>, <імʼя пулу>, <імʼя пристрою>.

Щоразу, коли драйвер потребує оновлення пулу, він збільшує номер pool.Spec.Pool.Generation і оновлює всі ResourceSlices з новим номером та новими визначеннями ресурсів. Споживач повинен використовувати лише ResourceSlices з найвищим номером покоління і ігнорувати всі інші.

Коли виділяються всі ресурси в пулі, що відповідають певним критеріям, або коли шукається найкраще рішення серед кількох різних альтернатив, споживач повинен перевірити кількість ResourceSlices у пулі (включених у кожен ResourceSlice), щоб визначити, чи є його уявлення про пул повним, і якщо ні, слід чекати, поки драйвер завершить оновлення пулу.

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


ПолеОпис
apiVersion
string
APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind визначає тип REST-ресурсу, який представляє цей обʼєкт. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не може бути оновлено. У CamelCase. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ObjectMeta
Стандартні метадані обʼєкта
spec *
ResourceSliceSpec
Містить інформацію, опубліковану драйвером. Зміна spec автоматично збільшує номер metadata.generation.

ResourceSliceSpec

ResourceSliceSpec містить інформацію, опубліковану драйвером в одному ResourceSlice.


ПолеОпис
allNodes
boolean

AllNodes вказує, що всі вузли мають доступ до ресурсів у пулі.

Тільки один з NodeName, NodeSelector, AllNodes та PerDeviceNodeSelection повинен бути встановлений.

devices
Device array

Devices перелічує деякі або всі пристрої в цьому пулі.

Не повинно бути більше 128 записів. Якщо будь-який пристрій використовує taints або споживає лічильники, обмеження становить 64.

Тільки один з Devices та SharedCounters може бути встановлений у ResourceSlice.

driver *
string

Driver визнає DRA драйвер, який надає інформацію про ємність. Можна використовувати селектор полів, щоб перелічити лише обʼєкти ResourceSlice з певним імʼям драйвера.

Повинно бути DNS-піддоменом і закінчуватися DNS-доменом, що належить постачальнику драйвера. Повинно використовувати лише малі літери. Це поле є незмінним.

nodeName
string

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

Це поле можна використовувати для обмеження доступу вузлів до ResourceSlices з однаковим імʼям вузла. Воно також вказує автомасштабувальникам, що додавання нових вузлів того ж типу, що й деякі старі вузли, може також зробити доступними нові ресурси.

Тільки один з NodeName, NodeSelector, AllNodes та PerDeviceNodeSelection повинен бути встановлений. Це поле є незмінним.

nodeSelector
NodeSelector

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

Має тільки один термін.

Тільки один з NodeName, NodeSelector, AllNodes та PerDeviceNodeSelection повинен бути встановлений.

perDeviceNodeSelection
boolean

PerDeviceNodeSelection визначає, чи доступ вузлів до ресурсів у пулі встановлюється на рівні ResourceSlice або на кожному пристрої. Якщо встановлено значення true, кожен пристрій, визначений у ResourceSlice, повинен вказати це окремо.

Тільки один з NodeName, NodeSelector, AllNodes та PerDeviceNodeSelection повинен бути встановлений.

pool *
ResourcePool
Pool описує пул, до якого належить цей ResourceSlice.
sharedCounters
CounterSet array

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

Імена наборів лічильників повинні бути унікальними в ResourcePool. Тільки один з Devices та SharedCounters може бути встановлений у ResourceSlice. Максимальна кількість наборів лічильників становить 8.

ResourceSliceList

ResourceSliceList is a collection of ResourceSlices.


ПолеОпис
apiVersion
string
APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
items *
ResourceSlice array
Items визначає список ресурсів ResourceSlices.
kind
string
Kind визначає тип REST-ресурсу, який представляє цей обʼєкт. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не може бути оновлено. У CamelCase. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ListMeta
Стандартні метадані списку

CapacityRequestPolicy

CapacityRequestPolicy визначає, як запити споживають ємність пристрою.

Не можна встановлювати більше одного ValidRequestValues.


ПолеОпис
default
Quantity
Default визначає, скільки цієї ємності споживається запитом, який не містить запису для неї в Capacity DeviceRequest.
validRange
CapacityRequestPolicyRange

ValidRange визначає допустимий діапазон значень кількості в запитах на споживання.

Якщо це поле встановлено, Default повинен бути визначений і він повинен потрапляти в межі визначеного ValidRange.

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

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

validValues
Quantity array

ValidValues визначає набір допустимих значень кількості в запитах на споживання.

Не може містити більше 10 записів. Повинно бути відсортовано за зростанням.

Якщо це поле встановлено, Default повинен бути визначений і він повинен входити до списку ValidValues.

Якщо запитана кількість не відповідає жодному допустимому значенню, але менша за деякі допустимі значення, планувальник обчислює найменше допустиме значення, яке більше або дорівнює запиту. Тобто: min(ceil(requestedValue) ∈ validValues), де requestedValue ≤ max(validValues).

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

CapacityRequestPolicyRange

CapacityRequestPolicyRange визначає допустимий діапазон значень споживаної ємності.

  • Якщо запитана кількість менша за Min, вона округлюється до значення Min.
  • Якщо Step встановлено, а запитана кількість знаходиться між Min і Max, але не відповідає Step, вона буде округлена до наступного значення, рівного Min + (n * Step).
  • Якщо Step не встановлено, запитана кількість використовується як є, якщо вона знаходиться в діапазоні від Min до Max (якщо встановлено).
  • Якщо запитана або округлена кількість перевищує Max (якщо встановлено), запит не відповідає політиці, і пристрій не може бути виділений.

ПолеОпис
max
Quantity

Max визначає верхню межу ємності, яку можна запитати.

Max повинен бути меншим або рівним значенню ємності. Min і requestPolicy.default повинні бути меншими або рівними максимуму.

min *
Quantity

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

Min повинен бути більшим або рівним нулю та меншим або рівним значенню ємності. requestPolicy.default повинен бути більшим або рівним мінімуму.

step
Quantity

Step визначає крок між допустимими значеннями ємності в межах діапазону.

Max (якщо встановлено) та requestPolicy.default повинні бути кратними Step. Min + Step повинно бути меншим або рівним значенню ємності.

Counter

Counter описує кількість, пов'язану з пристроєм.


ПолеОпис
value *
Quantity
Value визначає, скільки певного лічильника пристрою доступно.

CounterSet

CounterSet визначає іменований набір лічильників, які доступні для використання пристроями, визначеними в ResourcePool.

Лічильники самі по собі не можуть бути виділені, але можуть бути посиланням для пристроїв. Коли пристрій виділяється, частина лічильників, яку він використовує, більше не буде доступна для використання іншими пристроями.


ПолеОпис
counters *
object

Counters визначає набір лічильників для цього CounterSet.

Імʼя кожного лічильника повинно бути унікальним у цьому наборі та відповідати DNS-мітці. Максимальна кількість лічильників — 32.

name *
string

Name визначає імʼя набору лічильників.

Воно повинно бути DNS-міткою.

Device

Device представляє один окремий апаратний екземпляр, який можна вибрати на основі його атрибутів. Крім імені, має бути встановлено тільки одне поле.


ПолеОпис
allNodes
boolean

AllNodes вказує, що всі вузли мають доступ до пристрою.

Має бути встановлено лише якщо Spec.PerDeviceNodeSelection встановлено в true. Можна встановити не більше одного з NodeName, NodeSelector та AllNodes.

allowMultipleAllocations
boolean

AllowMultipleAllocations вказує, чи дозволено виділяти пристрій для кількох DeviceRequests.

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

attributes
object

Attributes визначає набір атрибутів для цього пристрою.

Імʼя кожного атрибуту повинно бути унікальним у цьому наборі.

Максимальна кількість атрибутів та ємностей разом становить 32.

bindingConditions
string array

BindingConditions визначає умови для продовження привʼязки.

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

Максимальна кількість умов привʼязки становить 4.

Умови повинні бути дійсним рядком типу умови.

Це бета-поле і вимагає увімкнення функційних можливостей DRADeviceBindingConditions та DRAResourceClaimDeviceStatus.

bindingFailureConditions
string array

BindingFailureConditions визначає умови для невдачі привʼязки. Вони можуть бути встановлені в умовах стану кожного пристрою. Якщо будь-яка з них встановлена в "True", сталася невдача привʼязки.

Максимальна кількість умов невдачі привʼязки становить 4.

Умови повинні бути дійсним рядком типу умови.

Це бета-поле і вимагає увімкнення функційних можливостей DRADeviceBindingConditions та DRAResourceClaimDeviceStatus.

bindsToNode
boolean

BindsToNode показує, чи використання виділення, що включає цей пристрій, має бути обмежене саме тим вузлом, який був обраний під час розподілу заявки. Якщо встановлено в true, планувальник встановить ResourceClaim.Status.Allocation.NodeSelector, щоб відповідати вузлу, де було зроблено виділення.

Це бета-поле і вимагає увімкнення функційних можливостей DRADeviceBindingConditions та DRAResourceClaimDeviceStatus.

capacity
object

Capacity визначає набір ємностей для цього пристрою. Імʼя кожної ємності повинно бути унікальним у цьому наборі.

Максимальна кількість атрибутів і ємностей разом становить 32.

consumesCounters
DeviceCounterConsumption array

ConsumesCounters визначає список посилань на sharedCounters та набір лічильників, які пристрій буде споживати з цих наборів лічильників.

Може бути лише один запис на counterSet. Максимальна кількість споживань лічильників пристрою на пристрій становить 2.

name *
string
Name є унікальним ідентифікатором серед усіх пристроїв, керованих драйвером у пулі. Він повинен бути міткою DNS.
nodeAllocatableResourceMappings
object
NodeAllocatableResourceMappings визначає зіставлення ресурсів вузла, якими керує драйвер DRA, що надає цей пристрій. Це включає ресурси, які наразі повідомляються у v1.Node status.allocatable, але не є розширеними ресурсами (див. https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#extended-resources). Прикладами є "cpu", "memory", "ephemeral-storage" та hugepages. Крім стандартних запитів, зроблених через Pod spec, ці ресурси також можуть бути запитані через заявки та виділені драйвером DRA. Наприклад, драйвер CPU DRA може виділяти ексклюзивні CPU або допоміжні залежності памʼяті вузла для прискорювального пристрою. Ключі цієї мапи є іменами ресурсів, доступних на вузлі (наприклад, "cpu", "memory"). Імена розширених ресурсів не дозволяються як ключі.
nodeName
string

NodeName визначає вузол, де доступний пристрій.

Може бути встановлено лише якщо Spec.PerDeviceNodeSelection встановлено в true. Може бути встановлено не більше одного з NodeName, NodeSelector та AllNodes.

nodeSelector
NodeSelector

NodeSelector визначає вузли, де доступний пристрій.

Має використовуватися тільки один термін.

Може бути встановлено лише якщо Spec.PerDeviceNodeSelection встановлено в true. Може бути встановлено не більше одного з NodeName, NodeSelector та AllNodes.

taints
DeviceTaint array

Якщо вказано, то це taint, визначені драйвером.

Максимальна кількість taints становить 16. Якщо taints встановлено для будь-якого пристрою в ResourceSlice, тоді максимальна кількість дозволених пристроїв на ResourceSlice становить 64 замість 128.

Це бета-поле і вимагає увімкнення функціональної можливості DRADeviceTaints.

DeviceAttribute

DeviceAttribute має мати встановлене тільки одне поле.


ПолеОпис
bool
boolean
BoolValue є значенням true/false.
bools
boolean array
BoolValues є непорожнім списком значень true/false.
int
integer
IntValue є числом.
ints
integer array

IntValues є непорожнім списком чисел.

Це альфа-поле і вимагає увімкнення функціональної можливості DRAListTypeAttributes.

string
string
StringValue є рядком. Не повинен перевищувати 64 символи.
strings
string array

StringValues є непорожнім списком рядків. Кожен рядок не повинен перевищувати 64 символи.

Це альфа-поле і вимагає увімкнення функціональної можливості DRAListTypeAttributes.

version
string
VersionValue є семантичним версіонуванням відповідно до специфікації semver.org 2.0.0. Не має перевищувати 64 символи.
versions
string array

VersionValues є непорожнім списком семантичних версій відповідно до специфікації semver.org 2.0.0. Кожен рядок версії не повинен перевищувати 64 символи.

Це альфа-поле і вимагає увімкнення функціональної можливості DRAListTypeAttributes.

DeviceCapacity

DeviceCapacity описує кількість, повʼязану з пристроєм.


ПолеОпис
requestPolicy
CapacityRequestPolicy

RequestPolicy визначає, як ця DeviceCapacity повинна споживатися, коли пристрій дозволено ділити між кількома розподілами.

Пристрій повинен мати allowMultipleAllocations встановлено в true, щоб встановити requestPolicy.

Якщо не встановлено, запити на ємність не обмежені: запити можуть споживати будь-яку кількість ємності, доки загальна спожита кількість у всіх виділеннях не перевищує визначену ємність пристрою. Якщо request також не встановлено, за замовчуванням використовується повна ємність.

value *
Quantity

Value визначає, скільки певної ємності має пристрій.

Це поле відображає фіксовану загальну ємність і не змінюється. Спожита кількість відстежується окремо планувальником і не впливає на це значення.

DeviceCounterConsumption

DeviceCounterConsumption визначає набір лічильників, які пристрій буде споживати з CounterSet.


ПолеОпис
counterSet *
string
CounterSet є назвою набору, з якого будуть споживатися визначені лічильники.
counters *
object

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

Максимальна кількість лічильників становить 32.

DeviceTaint

Пристрій, до якого прикріплено цей taint, має «вплив» на будь-яку заявку, яка не толерує taint, і, через заявку, на podʼи, що використовують цю заявку.


ПолеОпис
effect *
string

Вплив taint на заявки, які не толерують цей taint, і через такі заявки на поди, що їх використовують.

Дійсні ефекти: None, NoSchedule та NoExecute. PreferNoSchedule, як використовується для вузлів, тут недійсний. У майбутньому можуть бути додані інші ефекти. Споживачі повинні трактувати невідомі ефекти як None.

Можливі значення enum:

  • "NoExecute" Виселити будь-які вже запущені поди, які не толерують taint пристрою.
  • "NoSchedule" Не дозволяти новим подам плануватися з використанням taint пристрою, якщо вони не толерують taint, але дозволяти всім подам, поданим до Kubelet без проходження через планувальник, запускатися, і дозволяти всім вже запущеним подам продовжувати працювати.
  • "None" Без ефекту, taint є чисто інформаційним.

key *
string
Ключ taint, який буде застосовано до пристрою. Повинен бути імʼям мітки.
timeAdded
Time

TimeAdded представляє час, коли taint був доданий або (тільки в DeviceTaintRule) ефект був змінений. Додається автоматично під час створення або оновлення, якщо не встановлено.

Крім того, у DeviceTaintRule значення, надане під час оновлення, замінюється на поточний час, якщо надане значення збігається зі старим і новий ефект відрізняється. Зміна ключа та/або значення при збереженні ефекту без змін можлива і не оновлює часову мітку, оскільки виселення, яке її використовує, вже почалося (NoExecute) або ще не почалося (NoEffect, NoSchedule).

value
string
Значення taint, що відповідає ключу taint. Повинно бути значенням мітки.

NodeAllocatableResourceMapping

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


ПолеОпис
allocationMultiplier
Quantity

AllocationMultiplier використовується як множник для кількості виділених пристроїв або виділеної ємності в запиті. Зазвичай дорівнює 1, якщо не вказано. Використання цього поля також залежить від того, чи встановлено capacityKey.

  1. Якщо capacityKey не встановлено: allocationMultiplier множить кількість пристроїв, виділених для запиту.
    • a. DRA-драйвер, який представляє кожне ядро CPU як пристрій, матиме {ResourceName: "cpu", allocationMultiplier: "2"} у своєму nodeAllocatableResourceMappings. Якщо 4 пристрої виділено для запиту, 4 * 2 CPU вважатимуться виділеними і відніматимуться з ємності вузла.
    • b. GPU-пристрій, який потребує додаткової памʼяті вузла на кожне виділення GPU, матиме {ResourceName: "memory", allocationMultiplier: "2Gi"}. Кожен виділений екземпляр цього типу GPU-пристрою враховуватиме 2Gi пам'яті.
  2. Якщо capacityKey встановлено: allocationMultiplier множиться на кількість спожитої ємності. Остаточна кількість ресурсу вузла, доступного для виділення, визначається як consumedCapacity[capacityKey] * allocationMultiplier. Наприклад, якщо спожито ємність пристрою "dra.example.com/cores", і кожне "ядро" забезпечує 2 "cpu", відображення буде таким: {ResourceName: "cpu", capacityKey: "dra.example.com/cores", allocationMultiplier: "2"}. Якщо запит споживає 8 "dra.example.com/cores", відбиток CPU становитиме 8 * 2 = 16.
capacityKey
string
CapacityKey посилається на назву ємності, визначену як ключ у мапі spec.devices[*].capacity. Коли це поле встановлено, значення, повʼязане з цим ключем у мапі status.allocation.devices.results[*].consumedCapacity (для конкретного виділення запиту), визначає базову кількість для ресурсу вузла, доступного для виділення. Якщо також встановлено allocationMultiplier, воно множиться на базову кількість. Наприклад, якщо spec.devices[*].capacity має запис "dra.example.com/memory": "128Gi", і це поле встановлено на "dra.example.com/memory", тоді для виділення запиту, яке споживає { "dra.example.com/memory": "4Gi" }, базова кількість для відображення ресурсу вузла буде "4Gi", і allocationMultiplier слід опустити або встановити на "1".

NodeSelectorRequirement

Вимога до селектора вузлів — це селектор, що містить значення, ключ та оператор, який пов’язує ключ і значення.


ПолеОпис
key *
string
Ключ мітки, до якого застосовується селектор.
operator *
string
Представляє відношення ключа до набору значень. Дійсні оператори: In, NotIn, Exists, DoesNotExist, Gt та Lt.

Можливі значення enum:
  • "DoesNotExist"
  • "Exists"
  • "Gt"
  • "In"
  • "Lt"
  • "NotIn"
values
string array
Масив значень рядків. Якщо оператор дорівнює In або NotIn, масив values повинен бути непорожнім. Якщо оператор дорівнює Exists або DoesNotExist, масив values повинен бути порожнім. Якщо оператор дорівнює Gt або Lt, масив values повинен містити один елемент, який буде інтерпретований як ціле число. Цей масив замінюється під час стратегічного злиття патчу.

ResourcePool

ResourcePool Описує пул, до якого належать ResourceSlices.


ПолеОпис
generation *
integer

Generation відстежує зміни в пулі з часом. Коли драйвер змінює щось у одному або декількох ресурсах у пулі, він повинен змінити generation у всіх ResourceSlices, які є частиною цього пулу. Споживачі ResourceSlices повинні враховувати лише ресурси з пулу з найвищим номером generation. Generation може бути скинутий драйверами, що має бути прийнятним для споживачів, за умови, що всі ResourceSlices у пулі оновлені або видалені.

У поєднанні з ResourceSliceCount, цей механізм дозволяє споживачам виявляти пули, які складаються з кількох ResourceSlices і знаходяться в неповному стані.

name *
string

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

Воно не повинно перевищувати 253 символи і повинно складатися з одного або декількох піддоменів DNS, розділених слешами. Це поле є незмінним.

resourceSliceCount *
integer

ResourceSliceCount є загальною кількістю ResourceSlices у пулі на цей номер generation. Має бути більше нуля.

Споживачі можуть використовувати це, щоб перевірити, чи бачили вони всі ResourceSlices, що належать до одного пулу.

Операції


post Create

HTTP Запит

POST /apis/resource.k8s.io/v1/resourceslices

Параметри запиту

НазваТипОпис
prettystringЯкщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRunstringКоли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
  • All: всі етапи dry run будуть виконані
fieldManagerstringfieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidationstringfieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
  • Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
  • Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
  • Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.

Параметри тіла запиту

НазваТипОпис
bodyResourceSlice

Відповідь

СтатусОписВідповідь
200OKResourceSlice
201CreatedResourceSlice
202AcceptedResourceSlice

patch Patch

HTTP Запит

PATCH /apis/resource.k8s.io/v1/resourceslices/{name}

Параметри шляху

НазваТипОпис
namestringНазва ResourceSlice

Параметри запиту

НазваТипОпис
prettystringЯкщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRunstringКоли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
  • All: всі етапи dry run будуть виконані
fieldManagerstringfieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint. Це поле обовʼязкове для запитів apply (application/apply-patch), але необовʼязкове для типів патчів, що не застосовуються (JsonPatch, MergePatch, StrategicMergePatch).
fieldValidationstringfieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
  • Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
  • Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
  • Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.
forcebooleanForce має на меті "примусово" застосовувати запити Apply. Це означає, що користувач повторно отримає конфліктні поля, що належать іншим користувачам. Прапорець Force повинен бути скасований для запитів, що не є патчами apply.

Параметри тіла запиту

НазваТипОпис
bodyPatch

Відповідь

СтатусОписВідповідь
200OKResourceSlice
201CreatedResourceSlice

put Replace

HTTP Запит

PUT /apis/resource.k8s.io/v1/resourceslices/{name}

Параметри шляху

НазваТипОпис
namestringНазва ResourceSlice

Параметри запиту

НазваТипОпис
prettystringЯкщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRunstringКоли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
  • All: всі етапи dry run будуть виконані
fieldManagerstringfieldManager є імʼям, повʼязаним з а́ктором або сутністю, яка вносить ці зміни. Значення повинно бути менше або дорівнювати 128 символам і містити лише друковані символи, як визначено в https://golang.org/pkg/unicode/#IsPrint.
fieldValidationstringfieldValidation інструктує сервер, як обробляти обʼєкти в запиті (POST/PUT/PATCH), що містять невідомі або дубльовані поля. Дійсні значення:
  • Ignore: Ігнорує всі невідомі поля, які без попередження видаляються з обʼєкта, а також ігнорує всі дублікати полів, крім останнього, на які натрапляє декодер. Це стандартна поведінка до v1.23.
  • Warn: Надсилає попередження через стандартний заголовок відповіді для кожного невідомого поля, яке видаляється з обʼєкта, і для кожного дубльованого поля, яке зустрічається. Запит все ще буде успішним, якщо немає інших помилок, і буде зберігатися лише останнє з будь-яких дубльованих полів. Це стандартна поведінка у v1.23+
  • Strict: У цьому випадку запит завершиться з помилкою BadRequest, якщо з обʼєкта будуть вилучені невідомі поля або якщо будуть виявлені дублікати полів. Помилка, що повертається сервером, міститиме всі виявлені невідомі та дубльовані поля.

Параметри тіла запиту

НазваТипОпис
bodyResourceSlice

Відповідь

СтатусОписВідповідь
200OKResourceSlice
201CreatedResourceSlice

delete Delete

HTTP Запит

DELETE /apis/resource.k8s.io/v1/resourceslices/{name}

Параметри шляху

НазваТипОпис
namestringНазва ResourceSlice

Параметри запиту

НазваТипОпис
prettystringЯкщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
dryRunstringКоли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
  • All: всі етапи dry run будуть виконані
gracePeriodSecondsintegerЧасу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotentialbooleanЯкщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
orphanDependentsbooleanЗастаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicystringЧи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.

Параметри тіла запиту

НазваТипОпис
bodyDeleteOptions

Відповідь

СтатусОписВідповідь
200OKResourceSlice
202AcceptedResourceSlice

delete Delete Collection

HTTP Запит

DELETE /apis/resource.k8s.io/v1/resourceslices

Параметри запиту

НазваТипОпис
prettystringЯкщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
continuestringОпція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
dryRunstringКоли параметр присутній, це вказує, що зміни не повинні зберігатися. Неправильна або нерозпізнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення:
  • All: всі етапи dry run будуть виконані
fieldSelectorstringСелектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
gracePeriodSecondsintegerЧасу у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль вказує на негайне видалення. Якщо це значення відсутнє, буде використано стандартний період очікування для зазначеного типу. Зазвичай використовується значення для конкретного обʼєкта, якщо не вказано. Нуль означає негайне видалення.
ignoreStoreReadErrorWithClusterBreakingPotentialbooleanЯкщо встановлено в true, це призведе до небезпечного видалення ресурсу у випадку, якщо нормальний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища томущо: a) його дані не можна трансформувати, наприклад, помилка дешифрування, або b) не вдається декодувати в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження завершувача, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на нормальний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання.
labelSelectorstringСелектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limitintegerlimit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
orphanDependentsbooleanЗастаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва.
propagationPolicystringЧи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій.
resourceVersionstringresourceVersion встановлює обмеження на те, з яких версій ресурсів може обслуговуватися запит. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
resourceVersionMatchstringresourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEventsbooleansendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
  • resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
  • resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelectorstringshardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів:
shardRange(object.metadata.uid, '0x0', '0x8000000000000000')
shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000')
Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
  • object.metadata.uid
  • object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
  • 2-шардове розділення:
    шард 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x8000000000000000')
    шард 1: shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000')
  • 4-шардове розділення:
    шард 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x4000000000000000')
    шард 1: shardRange(object.metadata.uid, '0x4000000000000000', '0x8000000000000000')
    шард 2: shardRange(object.metadata.uid, '0x8000000000000000', '0xc000000000000000')
    шард 3: shardRange(object.metadata.uid, '0xc000000000000000', '0x10000000000000000')
Це альфа-поле і вимагає увімкнення функціональної можливості ShardedListAndWatch.
timeoutSecondsintegerЧас очікування для виклику list/watch. Це обмежує тривалість виклику, незалежно від будь-якої активності чи неактивності.

Параметри тіла запиту

НазваТипОпис
bodyDeleteOptions

Відповідь

СтатусОписВідповідь
200OKStatus

get Read

HTTP Запит

GET /apis/resource.k8s.io/v1/resourceslices/{name}

Параметри шляху

НазваТипОпис
namestringНазва ResourceSlice

Параметри запиту

НазваТипОпис
prettystringЯкщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).

Відповідь

СтатусОписВідповідь
200OKResourceSlice

get List

HTTP Запит

GET /apis/resource.k8s.io/v1/resourceslices

Параметри запиту

НазваТипОпис
prettystringЯкщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
allowWatchBookmarksbooleanallowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continuestringОпція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelectorstringСелектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelectorstringСелектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limitintegerlimit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
resourceVersionstringresourceVersion встановлює обмеження на те, з яких версій ресурсів може обслуговуватися запит. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
resourceVersionMatchstringresourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEventsbooleansendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
  • resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
  • resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelectorstringshardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів:
shardRange(object.metadata.uid, '0x0', '0x8000000000000000')
shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000')
Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
  • object.metadata.uid
  • object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
  • 2-шардове розділення:
    шард 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x8000000000000000')
    шард 1: shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000')
  • 4-шардове розділення:
    шард 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x4000000000000000')
    шард 1: shardRange(object.metadata.uid, '0x4000000000000000', '0x8000000000000000')
    шард 2: shardRange(object.metadata.uid, '0x8000000000000000', '0xc000000000000000')
    шард 3: shardRange(object.metadata.uid, '0xc000000000000000', '0x10000000000000000')
Це альфа-поле і вимагає увімкнення функціональної можливості ShardedListAndWatch.
timeoutSecondsintegerЧас очікування для виклику list/watch. Це обмежує тривалість виклику, незалежно від будь-якої активності чи неактивності.
watchbooleanСпостерігати за змінами описаних ресурсів і повертати їх як потік сповіщень про додавання, оновлення та видалення. Вкажіть resourceVersion.

Відповідь

СтатусОписВідповідь
200OKResourceSliceList

get Watch

HTTP Запит

GET /apis/resource.k8s.io/v1/watch/resourceslices/{name}

Параметри шляху

НазваТипОпис
namestringНазва ResourceSlice

Параметри запиту

НазваТипОпис
allowWatchBookmarksbooleanallowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continuestringОпція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelectorstringСелектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelectorstringСелектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limitintegerlimit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
prettystringЯкщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionstringresourceVersion встановлює обмеження на те, з яких версій ресурсів може обслуговуватися запит. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
resourceVersionMatchstringresourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEventsbooleansendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
  • resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
  • resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelectorstringshardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів:
shardRange(object.metadata.uid, '0x0', '0x8000000000000000')
shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000')
Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
  • object.metadata.uid
  • object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
  • 2-шардове розділення:
    шард 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x8000000000000000')
    шард 1: shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000')
  • 4-шардове розділення:
    шард 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x4000000000000000')
    шард 1: shardRange(object.metadata.uid, '0x4000000000000000', '0x8000000000000000')
    шард 2: shardRange(object.metadata.uid, '0x8000000000000000', '0xc000000000000000')
    шард 3: shardRange(object.metadata.uid, '0xc000000000000000', '0x10000000000000000')
Це альфа-поле і вимагає увімкнення функціональної можливості ShardedListAndWatch.
timeoutSecondsintegerЧас очікування для виклику list/watch. Це обмежує тривалість виклику, незалежно від будь-якої активності чи неактивності.
watchbooleanСпостерігати за змінами описаних ресурсів і повертати їх як потік сповіщень про додавання, оновлення та видалення. Вкажіть resourceVersion.

Відповідь

СтатусОписВідповідь
200OKWatchEvent

get Watch List

HTTP Запит

GET /apis/resource.k8s.io/v1/watch/resourceslices

Параметри запиту

НазваТипОпис
allowWatchBookmarksbooleanallowWatchBookmarks запитує події спостереження з типом "BOOKMARK". Сервери, які не реалізують закладки, можуть ігнорувати цей прапорець, а закладки надсилаються на розсуд сервера. Клієнти не повинні припускати, що закладки повертаються через певний інтервал, і не можуть припускати, що сервер надішле будь-яку подію BOOKMARK під час сеансу. Якщо це не спостереження, це поле ігнорується.
continuestringОпція continue повинна бути встановлена при отриманні додаткових результатів від сервера. Оскільки це значення визначається сервером, клієнти можуть використовувати значення continue лише з попереднього результату запиту з ідентичними параметрами запиту (крім значення continue), і сервер може відхилити значення continue, яке він не розпізнає. Якщо вказане значення continue більше не дійсне через закінчення терміну дії (зазвичай пʼять-пʼятнадцять хвилин) або зміну конфігурації на сервері, сервер відповість помилкою 410 ResourceExpired разом з токеном continue. Якщо клієнту потрібен послідовний список, він повинен перезапустити свій список без поля continue. В іншому випадку клієнт може надіслати ще один запит списку з токеном, отриманим з помилкою 410, сервер відповість списком, починаючи з наступного ключа, але з останнього знімка, що не відповідає попереднім результатам списку — обʼєкти, які були створені, змінені або видалені після першого запиту списку, будуть включені у відповідь, якщо їх ключі йдуть після "наступного ключа". Це поле не підтримується, коли watch встановлено в true. Клієнти можуть почати спостереження з останнього значення resourceVersion, повернутого сервером, і не пропустити жодних змін.
fieldSelectorstringСелектор для обмеження списку обʼєктів, що повертаються, за їхніми полями. Зазвичай повертаються всі обʼєкти.
labelSelectorstringСелектор для обмеження списку обʼєктів, що повертаються, за їхніми мітками. Зазвичай повертаються всі обʼєкти.
limitintegerlimit є максимальним числом відповідей, які потрібно повернути для виклику списку. Якщо існує більше елементів, сервер встановить поле continue у метаданих списку на значення, яке можна використовувати з тим самим початковим запитом для отримання наступного набору результатів. Встановлення обмеження може повернути менше, ніж запитана кількість елементів (до нуля елементів) у випадку, якщо всі запитані обʼєкти відфільтровані, і клієнти повинні використовувати лише наявність поля continue, щоб визначити, чи доступні додаткові результати. Сервери можуть вирішити не підтримувати аргумент limit і повернуть усі доступні результати. Якщо limit вказано, а поле continue порожнє, клієнти можуть припустити, що результатів більше немає. Це поле не підтримується, якщо watch дорівнює true. Сервер гарантує, що обʼєкти, повернені при використанні continue, будуть ідентичні до виконання одного виклику списку без обмеження — тобто жодні обʼєкти, створені, змінені або видалені після першого запиту, не будуть включені в будь-які наступні продовжені запити. Це іноді називають послідовним знімком, і забезпечує, що клієнт, який використовує limit для отримання менших частин дуже великого результату, може бути впевнений, що він бачить усі можливі обʼєкти. Якщо обʼєкти оновлюються під час отримання часткового списку, повертається версія обʼєкта, яка була присутня на момент обчислення першого результату списку.
prettystringЯкщо 'true', то вихідні дані форматуються у зручному для читання вигляді. Зазвичай 'false', якщо user-agent не вказує оглядач або командний інструмент для роботи з HTTP (curl та wget).
resourceVersionstringresourceVersion встановлює обмеження на те, з яких версій ресурсів може обслуговуватися запит. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
resourceVersionMatchstringresourceVersionMatch визначає, як resourceVersion застосовується до викликів списку. Рекомендується встановлювати resourceVersionMatch для викликів списку, де встановлено resourceVersion. Див. https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions для деталей. Стандартне значення не встановлено
sendInitialEventsbooleansendInitialEvents=true може бути встановлено разом з watch=true. У цьому випадку потік спостереження почнеться з синтетичних подій для відтворення поточного стану обʼєктів у колекції. Після надсилання всіх таких подій буде надіслано синтетичну подію "Bookmark". Закладка повідомить ResourceVersion (RV), що відповідає набору обʼєктів, і буде позначена анотацією "k8s.io/initial-events-end": "true". Після цього потік спостереження продовжиться як зазвичай, надсилаючи події спостереження, що відповідають змінам (після RV) для спостережуваних обʼєктів. Коли встановлено опцію sendInitialEvents, ми вимагаємо також встановлення опції resourceVersionMatch. Семантика запиту спостереження наступна:
  • resourceVersionMatch = NotOlderThan інтерпретується як «дані, що є принаймні такими ж новими, як зазначена resourceVersion», і подія bookmark надсилається, коли стан синхронізується з resourceVersion, яка є принаймні такою ж актуальною, як та, що вказана в ListOptions. Якщо resourceVersion не встановлено, це інтерпретується як «послідовне читання», і подія bookmark надсилається, коли стан синхронізується принаймні до моменту, коли почалася обробка запиту.
  • resourceVersionMatch, встановлений на будь-яке інше значення або не встановлений — повертається помилка Invalid. Стандартне значення true, якщо resourceVersion="" або resourceVersion="0" (з міркувань сумісності) і false в іншому випадку.
shardSelectorstringshardSelector обмежує список обʼєктів, що повертаються, за допомогою виразу вибору шардів на основі CEL. Формат використовує функцію shardRange() у поєднанні з || (логічне АБО) для вказівки одного або кількох діапазонів хешів:
shardRange(object.metadata.uid, '0x0', '0x8000000000000000')
shardRange(object.metadata.uid, '0x0', '0x8000000000000000') || shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000')
Шляхи полів використовують синтаксис CEL, що починається з обʼєкта (наприклад, "object.metadata.uid"), а не формат fieldSelector ("metadata.uid"). Наразі підтримуються такі шляхи:
  • object.metadata.uid
  • object.metadata.namespace
hexStart і hexEnd є рядковими літералами CEL у одинарних лапках з префіксом '0x', що визначають включну нижню і виключну верхню межі в 64-бітовому просторі хешів FNV-1a. Повний діапазон: [0x0, 0x10000000000000000), де виключна верхня межа дорівнює 2^64. Приклади:
  • 2-шардове розділення:
    шард 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x8000000000000000')
    шард 1: shardRange(object.metadata.uid, '0x8000000000000000', '0x10000000000000000')
  • 4-шардове розділення:
    шард 0: shardRange(object.metadata.uid, '0x0000000000000000', '0x4000000000000000')
    шард 1: shardRange(object.metadata.uid, '0x4000000000000000', '0x8000000000000000')
    шард 2: shardRange(object.metadata.uid, '0x8000000000000000', '0xc000000000000000')
    шард 3: shardRange(object.metadata.uid, '0xc000000000000000', '0x10000000000000000')
Це альфа-поле і вимагає увімкнення функціональної можливості ShardedListAndWatch.
timeoutSecondsintegerЧас очікування для виклику list/watch. Це обмежує тривалість виклику, незалежно від будь-якої активності чи неактивності.
watchbooleanСпостерігати за змінами описаних ресурсів і повертати їх як потік сповіщень про додавання, оновлення та видалення. Вкажіть resourceVersion.

Відповідь

СтатусОписВідповідь
200OKWatchEvent
Востаннє змінено June 10, 2026 at 8:00 PM PST: [uk] Ukrainian translation (all-in-one) (4e8fe0f729)