ResourceClaim v1alpha2
apiVersion: resource.k8s.io/v1alpha2
import "k8s.io/api/resource/v1alpha2"
ResourceClaim
ResourceClaim описує які ресурси потрібні споживачу ресурсів. Його статус вказує на те, чи були ресурси виділені та кому вони належать.
Це тип альфа-версії й вимагає увімкнення функціональної можливості DynamicResourceAllocation.
apiVersion: resource.k8s.io/v1alpha2
kind: ResourceClaim
metadata (ObjectMeta)
Стандартні метадані обʼєкта
spec (ResourceClaimSpec), обовʼязково
Специфікація описує бажані атрибути ресурсу, який потім потрібно буде виділити. Її можна встановити лише один раз при створенні ResourceClaim.
status (ResourceClaimStatus)
Статус описує, чи доступний ресурс та з якими атрибутами.
ResourceClaimSpec
ResourceClaimSpec визначає, як має бути виділений ресурс.
resourceClassName (string), обовʼязково
ResourceClassName посилається на драйвер та додаткові параметри через імʼя ResourceClass, яке було створено в рамках розгортання драйвера.
allocationMode (string)
Виділення може розпочатися негайно або коли Pod захоче використовувати ресурс. Стандартно використовується "WaitForFirstConsumer".
parametersRef (ResourceClaimParametersReference)
ParametersRef посилається на окремий обʼєкт із довільними параметрами, які будуть використані драйвером під час виділення ресурсу для запиту.
Обʼєкт повинен знаходитися в тому ж самому просторі імен, що і ResourceClaim.
ResourceClaimParametersReference містить достатньо інформації, щоб дозволити знайти параметри для ResourceClaim. Обʼєкт повинен знаходитися в тому ж самому просторі імен, що і ResourceClaim.
parametersRef.kind (string), обовʼязково
Kind — це тип ресурсу, на який робиться посилання. Це те саме значення, що і в метаданих обʼєкта параметрів, наприклад "ConfigMap".
parametersRef.name (string), обовʼязково
Name — це імʼя ресурсу, на який робиться посилання.
parametersRef.apiGroup (string)
APIGroup — це група для ресурсу, на який робиться посилання. Вона порожня для основного API. Це відповідає групі в APIVersion, яка використовується під час створення ресурсів.
ResourceClaimStatus
ResourceClaimStatus відстежує, чи було виділено ресурс і які атрибути отримано в результаті.
allocation (AllocationResult)
Allocation встановлюється драйвером ресурсу, коли ресурс або набір ресурсів було успішно виділено. Якщо це поле не вказане, ресурси ще не були виділені.
AllocationResult містить атрибути виділеного ресурсу.
allocation.availableOnNodes (NodeSelector)
Це поле встановлюється драйвером ресурсу після виділення ресурсу, щоб інформувати планувальник, де можна розміщувати Podʼи, що використовують ResourceClaim.
Встановлення цього поля є необовʼязковим. Якщо воно має значення null, ресурс доступний всюди.
Node selector представляє обʼєднання результатів одного або кількох запитів за мітками по набору вузлів; тобто представляє OR вибірок, представлених термінами вибірки вузлів.
allocation.availableOnNodes.nodeSelectorTerms ([]NodeSelectorTerm), обовʼязково
Обовʼязково. Список термінів вибірки вузлів. Терміни поєднуються логічним OR.
Нульовий або порожній термін вибірки вузлів не відповідає жодним обʼєктам. Їхні вимоги поєднуються логічним AND. Тип TopologySelectorTerm реалізує підмножину типу NodeSelectorTerm.
allocation.availableOnNodes.nodeSelectorTerms.matchExpressions ([]NodeSelectorRequirement)
Список вимог вибірки вузлів за мітками вузлів.
allocation.availableOnNodes.nodeSelectorTerms.matchFields ([]<a href="/uk/docs/reference/kubernetes-api/common-definitions/node-selector-requirement/#NodeSelectorRequirement
Список вимог вибірки вузлів за полями вузлів.
allocation.resourceHandles ([]ResourceHandle)
Atomic: буде замінено під час злиття
ResourceHandles містять стан, повʼязаний з виділенням, який слід підтримувати протягом усього терміну запиту. Кожен ResourceHandle містить дані, які слід передати певному втулку kubelet після його розміщення на вузлі. Ці дані повертаються драйвером після успішного виділення та є непрозорими для Kubernetes. Документація драйвера може пояснити користувачам, як інтерпретувати ці дані, якщо це необхідно.
Встановлення цього поля є необовʼязковим. Воно має максимальний розмір у 32 записи. Якщо null (або порожній), припускається, що це виділення буде оброблено одним втулком kubelet без доданих даних ResourceHandle. Імʼя втулка kubelet, що викликається, збігається з DriverName, встановленим у ResourceClaimStatus, у якому вбудовано цей AllocationResult.
ResourceHandle містить непрозорі дані ресурсу для обробки певним втулком kubelet.
allocation.resourceHandles.data (string)
Data містить непрозорі дані, повʼязані з цим ResourceHandle. Їх встановлює компонент контролера драйвера ресурсу, імʼя якого збігається з DriverName, встановленим у ResourceClaimStatus, у якому вбудовано цей ResourceHandle. Встановлюється під час виділення та призначено для обробки втулком kubelet, імʼя якого збігається з DriverName, встановленим у цьому ResourceHandle.
Максимальний розмір цього поля становить 16 КіБ. У майбутньому це може бути збільшено, але не зменшено.
allocation.resourceHandles.driverName (string)
DriverName вказує імʼя драйвера ресурсу, втулок kubelet якого слід викликати для обробки даних цього ResourceHandle після його розміщення на вузлі. Це може відрізнятися від DriverName, встановленого у ResourceClaimStatus, у якому вбудовано цей ResourceHandle.
allocation.shareable (boolean)
Shareable визначає, чи підтримує ресурс одночасне використання більше ніж одним споживачем.
deallocationRequested (boolean)
DeallocationRequested вказує, що ResourceClaim має бути відкликана.
Драйвер повинен потім відкликати цей запит і скинути поле разом з очищенням поля Allocation.
Поки DeallocationRequested встановлено, нові споживачі не можуть бути додані до ReservedFor.
driverName (string)
DriverName — це копія імені драйвера з ResourceClass на момент початку виділення.
reservedFor ([]ResourceClaimConsumerReference)
Map: унікальні значення за ключем uid зберігаються під час злиття
ReservedFor вказує, яким обʼєктам наразі дозволено використовувати запит. Pod, який посилається на ResourceClaim, що не зарезервований для цього Pod, не буде запущено.
Може бути максимум 32 таких резервування. У майбутньому це може бути збільшено, але не зменшено.
ResourceClaimConsumerReference містить достатньо інформації, щоб знайти споживача ResourceClaim. Споживач має бути ресурсом у тому ж просторі імен, що і ResourceClaim.
reservedFor.name (string), обовʼязково
Name — це імʼя ресурсу, на який робиться посилання.
reservedFor.resource (string), обовʼязково
Resource — це тип ресурсу, на який робиться посилання, наприклад "pods".
reservedFor.uid (string), обовʼязково
UID однозначно ідентифікує один екземпляр ресурсу.
reservedFor.apiGroup (string)
APIGroup — це група для ресурсу, на який робиться посилання. Вона порожня для основного API. Це відповідає групі в APIVersion, яка використовується під час створення ресурсів.
ResourceClaimList
ResourceClaimList — це колекція запитів.
apiVersion: resource.k8s.io/v1alpha2
kind: ResourceClaimList
metadata (ListMeta)
Стандартні метадані списку
items ([]ResourceClaim), обовʼязково
Items — це список запитів на ресурси.
Операції
get
отримати вказаний ResourceClaim
HTTP Запит
GET /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}
Параметри
name (в шляху): string, обовʼязково
назва ResourceClaim
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
Відповідь
200 (ResourceClaim): OK
401: Unauthorized
get
отримати статус вказаного ResourceClaim
HTTP Запит
GET /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}/status
Параметри
name (в шляху): string, обовʼязково
назва ResourceClaim
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
Відповідь
200 (ResourceClaim): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу ResourceClaim
HTTP Запит
GET /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims
Параметри
namespace (в шляху): string, обовʼязково
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (ResourceClaimList): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу ResourceClaim
HTTP Запит
GET /apis/resource.k8s.io/v1alpha2/resourceclaims
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (ResourceClaimList): OK
401: Unauthorized
create
створення ResourceClaim
HTTP Запит
POST /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims
Параметри
namespace (в шляху): string, обовʼязково
body: ResourceClaim, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (ResourceClaim): OK
201 (ResourceClaim): Created
202 (ResourceClaim): Accepted
401: Unauthorized
update
заміна вказаного ResourceClaim
HTTP Запит
PUT /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}
Параметри
name (в шляху): string, обовʼязково
назва ResourceClaim
namespace (в шляху): string, обовʼязково
body: ResourceClaim, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (ResourceClaim): OK
201 (ResourceClaim): Created
401: Unauthorized
update
заміна статусу вказаного ResourceClaim
HTTP Запит
PUT /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}/status
Параметри
name (в шляху): string, обовʼязково
назва ResourceClaim
namespace (в шляху): string, обовʼязково
body: ResourceClaim, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (ResourceClaim): OK
201 (ResourceClaim): Created
401: Unauthorized
patch
часткое оновлення вказаного ResourceClaim
HTTP Запит
PATCH /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}
Параметри
name (в шляху): string, обовʼязково
назва ResourceClaim
namespace (в шляху): string, обовʼязково
body: patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (ResourceClaim): OK
401: Unauthorized
patch
часткове оновлення статусу вказаного ResourceClaim
HTTP Запит
PATCH /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}/status
Параметри
name (в шляху): string, обовʼязково
назва ResourceClaim
namespace (в шляху): string, обовʼязково
body: patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (ResourceClaim): OK
401: Unauthorized
delete
видалення ResourceClaim
HTTP запит
DELETE /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}
Параметри
name (в шляху): string, обовʼязково
назва ResourceClaim
namespace (в шляху): string, обовʼязково
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (ResourceClaim): OK
202 (ResourceClaim): ПAccepted
401: Unauthorized
deletecollection
видалення колекції ResourceClaim
HTTP запит
DELETE /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims
Параметри
namespace (в шляху): string, обовʼязково
body: DeleteOptions
continue (в запиті): string
dryRun (в запиті): string
fieldSelector (в запиті): string
gracePeriodSeconds (в запиті): integer
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
Відповідь
200 (Status): OK
401: Unauthorized