CSIStorageCapacity

CSIStorageCapacity зберігає результат одного виклику CSI GetCapacity.

apiVersion: storage.k8s.io/v1

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

CSIStorageCapacity

CSIStorageCapacity зберігає результат одного виклику CSI GetCapacity. Для заданого StorageClass це описує доступну місткість у певному сегменті топології. Це можна використовувати під час розгляду місця для створення нових PersistentVolumes.

Наприклад, це може виражати такі речі:

  • StorageClass "standard" має "1234 GiB" доступних у "topology.kubernetes.io/zone=us-east1"
  • StorageClass "localssd" має "10 GiB" доступних у "kubernetes.io/hostname=knode-abc123"

Наступні три випадки означають, що місткість недоступна для певної комбінації:

  • не існує обʼєкта з відповідною топологією та імʼям класу зберігання
  • такий обʼєкт існує, але місткість не задана
  • такий обʼєкт існує, але місткість дорівнює нулю

Виробник цих обʼєктів може вирішити, який підхід є більш відповідним.

Вони споживаються планувальником kube-scheduler, коли драйвер CSI вибирає планування з урахуванням місткості за допомогою CSIDriverSpec.StorageCapacity. Планувальник порівнює MaximumVolumeSize із запитаним розміром очікуваних томів, щоб відфільтрувати невідповідні вузли. Якщо MaximumVolumeSize не задано, він повертається до порівняння з менш точною Capacity. Якщо і це не задано, планувальник припускає, що місткість недостатня, і пробує інший вузол.


  • apiVersion: storage.k8s.io/v1

  • kind: CSIStorageCapacity

  • metadata (ObjectMeta)

    Стандартні метадані обʼєкта. Імʼя не має особливого значення. Воно повинно бути піддоменом DNS (допускаються точки, 253 символи). Щоб уникнути конфліктів з іншими драйверами CSI у кластері, рекомендується використовувати csisc-<uuid>, згенероване імʼя або імʼя у зворотному порядку домену, яке закінчується унікальним імʼям драйвера CSI.

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

    Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

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

    storageClassName представляє імʼя StorageClass, до якого відноситься звітна місткість. Воно повинно відповідати тим самим вимогам, що й імʼя обʼєкта StorageClass (не порожнє, піддомен DNS). Якщо цей обʼєкт більше не існує, обʼєкт CSIStorageCapacity застарів і повинен бути видалений його творцем. Це поле незмінне.

  • capacity (Quantity)

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

    Семантика наразі (CSI spec 1.2) визначена як: доступна місткість у байтах сховища, яка може бути використана для створення томів. Якщо не задано, ця інформація наразі недоступна.

  • maximumVolumeSize (Quantity)

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

    Це визначено починаючи з CSI spec 1.4.0 як найбільший розмір, який може бути використаний у полі CreateVolumeRequest.capacity_range.required_bytes для створення тому з тими самими параметрами, що й у GetCapacityRequest. Відповідне значення в API Kubernetes — це ResourceRequirements.Requests у запиті на том.

  • nodeTopology (LabelSelector)

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

CSIStorageCapacityList

CSIStorageCapacityList — це колекція обʼєктів CSIStorageCapacity.


Операції


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

HTTP запит

GET /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}

Параметри

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

    імʼя CSIStorageCapacity

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

    namespace

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

    pretty

Відповідь

200 (CSIStorageCapacity): OK

401: Unauthorized

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

HTTP запит

GET /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities

Параметри

Відповідь

200 (CSIStorageCapacityList): OK

401: Unauthorized

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

HTTP запит

GET /apis/storage.k8s.io/v1/csistoragecapacities

Параметри

Відповідь

200 (CSIStorageCapacityList): OK

401: Unauthorized

create створення CSIStorageCapacity

HTTP запит

POST /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities

Параметри

Відповідь

200 (CSIStorageCapacity): OK

201 (CSIStorageCapacity): Created

202 (CSIStorageCapacity): Accepted

401: Unauthorized

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

HTTP запит

PUT /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}

Параметри

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

    імʼя CSIStorageCapacity

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

    namespace

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

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

    dryRun

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

    fieldManager

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

    fieldValidation

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

    pretty

Відповідь

200 (CSIStorageCapacity): OK

201 (CSIStorageCapacity): Created

401: Unauthorized

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

HTTP запит

PATCH /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}

Параметри

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

    імʼя CSIStorageCapacity

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

    namespace

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

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

    dryRun

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

    fieldManager

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

    fieldValidation

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

    force

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

    pretty

Відповідь

200 (CSIStorageCapacity): OK

201 (CSIStorageCapacity): Created

401: Unauthorized

delete видалення CSIStorageCapacity

HTTP запит

DELETE /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}

Параметри

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

    імʼя CSIStorageCapacity

  • 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 видалення колекції CSIStorageCapacity

HTTP запит

DELETE /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities

Параметри

Відповідь

200 (Status): OK

401: Unauthorized

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