ResourceClaim v1alpha2

ResourceClaim описує які ресурси потрібні споживачу ресурсів.

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, обовʼязково

    namespace

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

    pretty

Відповідь

200 (ResourceClaim): OK

401: Unauthorized

get отримати статус вказаного ResourceClaim

HTTP Запит

GET /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}/status

Параметри

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

    назва ResourceClaim

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

    namespace

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

    pretty

Відповідь

200 (ResourceClaim): OK

401: Unauthorized

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

HTTP Запит

GET /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims

Параметри

Відповідь

200 (ResourceClaimList): OK

401: Unauthorized

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

HTTP Запит

GET /apis/resource.k8s.io/v1alpha2/resourceclaims

Параметри

Відповідь

200 (ResourceClaimList): OK

401: Unauthorized

create створення ResourceClaim

HTTP Запит

POST /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims

Параметри

Відповідь

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, обовʼязково

    namespace

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

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

    dryRun

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

    fieldManager

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

    fieldValidation

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

    pretty

Відповідь

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, обовʼязково

    namespace

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

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

    dryRun

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

    fieldManager

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

    fieldValidation

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

    pretty

Відповідь

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, обовʼязково

    namespace

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

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

    dryRun

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

    fieldManager

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

    fieldValidation

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

    force

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

    pretty

Відповідь

200 (ResourceClaim): OK

401: Unauthorized

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

HTTP Запит

PATCH /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}/status

Параметри

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

    назва ResourceClaim

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

    namespace

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

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

    dryRun

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

    fieldManager

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

    fieldValidation

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

    force

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

    pretty

Відповідь

200 (ResourceClaim): OK

401: Unauthorized

delete видалення ResourceClaim

HTTP запит

DELETE /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}

Параметри

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

    назва ResourceClaim

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

    namespace

  • body: DeleteOptions

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

    dryRun

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

    gracePeriodSeconds

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

    pretty

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

    propagationPolicy

Відповідь

200 (ResourceClaim): OK

202 (ResourceClaim): ПAccepted

401: Unauthorized

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

HTTP запит

DELETE /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims

Параметри

Відповідь

200 (Status): OK

401: Unauthorized

Змінено June 20, 2024 at 12:44 PM PST: Sync changest from andygol/k8s-website (36d05bc8a1)