apiVersion: v1
import "k8s.io/api/core/v1"
PersistentVolumeClaim представляє запит користувача на отримання та право на постійний том.
apiVersion: v1
kind: PersistentVolumeClaim
metadata (ObjectMeta)
Метадані стандартного обʼєкта. Додаткова інформація: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (PersistentVolumeClaimSpec)
Специфікація визначає бажані характеристики тому, запитаного автором Podʼа. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
status (PersistentVolumeClaimStatus)
Статус представляє поточну інформацію/стан запиту на постійний том. Тільки для читання. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
PersistentVolumeClaimSpec описує загальні атрибути пристроїв зберігання та дозволяє вказувати джерело для атрибутів, специфічних для постачальника.
accessModes ([]string)
Atomic: буде замінено під час злиття
accessModes містить бажані режими доступу, якими повинен користуватися том. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
selector (LabelSelector)
selector — це запит мітки для томів, які слід враховувати при звʼязуванні.
resources (VolumeResourceRequirements)
resources представляє мінімальні ресурси, якими повинен володіти том. Користувачам дозволяється вказувати вимоги до ресурсів, які нижчі за попереднє значення, але все ще мають бути вищими, ніж місткість, вказана в полі статусу вимоги. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
VolumeResourceRequirements описує вимоги до ресурсів збереження для томів.
resources.limits (map[string]Quantity)
Limits описує максимальну кількість дозволених обчислювальних ресурсів. Додаткова інформація: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
resources.requests (map[string]Quantity)
Requests описує мінімальну кількість обчислювальних ресурсів, що потрібна. Якщо Requests відсутній для контейнера, він стандартно встановлюється як Limits, якщо це явно вказано, інакше — як значення, визначене реалізацією. Запити не можуть перевищувати Limits. Додаткова інформація: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
volumeName (string)
volumeName — це посилання на звʼязування з постійним томом, що підтримує цей запит.
storageClassName (string)
storageClassName — це назва StorageClass, необхідного для вимоги. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
volumeMode (string)
volumeMode визначає тип тому, необхідного для вимоги. Значення Filesystem підтверджується, коли воно не включене у специфікацію вимоги.
Можливі значення переліку (enum):
"Block" означає, що том не буде відформатований та не міститиме файлову систему, а залишиться необробленим блоковим пристроєм."Filesystem" означає, що том буде або вже відформатований та містить файлову систему.dataSource (TypedLocalObjectReference)
Поле dataSource може використовуватися для вказівки на:
Якщо провайдер або зовнішній контролер може підтримувати вказане джерело даних, він створить новий том на основі вмісту вказаного джерела даних. Коли вмикається функціональна властивість AnyVolumeDataSource, вміст dataSource буде скопійовано до dataSourceRef, а вміст dataSourceRef буде скопійовано до dataSource, коли не вказано dataSourceRef.namespace. Якщо вказано простір імен, то dataSourceRef не буде скопійовано до dataSource.
dataSourceRef (TypedObjectReference)
dataSourceRef вказує на обʼєкт, з якого потрібно заповнити том даними, якщо потрібний непорожній том. Це може бути будь-який обʼєкт з непорожньої API-групи (не базовий обʼєкт) або обʼєкт PersistentVolumeClaim. Коли вказано це поле, звʼязування тому вдасться тільки в тому випадку, якщо тип вказаного обʼєкта відповідає якомусь встановленому наповнювачу тому або динамічному провайдеру. Це поле замінить функціональність поля dataSource і як таке, якщо обидва поля непорожні, вони повинні мати однакове значення. Для забезпечення зворотної сумісності, коли простір імен не вказано в dataSourceRef, обидва поля (dataSource та dataSourceRef) будуть автоматично встановлені в одне значення, якщо одне з них порожнє, а інше — непорожнє. Коли простір імен вказаний в dataSourceRef, dataSource не встановлюється в те ж саме значення і повинно бути порожнім. Є три важливі відмінності між dataSource та dataSourceRef:
(Бета) Використання цього поля вимагає ввімкненої властивості AnyVolumeDataSource. (Альфа) Використання поля namespace у dataSourceRef вимагає ввімкненої властивості CrossNamespaceVolumeDataSource.
TypedObjectReference містить достатньо інформації, щоб ви могли знайти типізований обʼєкт, на який є посилання
dataSourceRef.kind (string), обовʼязково
Kind — це тип ресурсу, на який вказується
dataSourceRef.name (string), обовʼязково
Name — це назва ресурсу, на який вказується
dataSourceRef.apiGroup (string)
APIGroup — це група для ресурсу, на який вказується. Якщо APIGroup не вказано, вказаний Kind повинен бути в базовій групі API. Для будь-яких інших сторонніх типів APIGroup обовʼязковий.
dataSourceRef.namespace (string)
Namespace — це простір імен ресурсу, на який вказується. Зверніть увагу, що при вказанні простору імен для призначення namespace необхідний обʼєкт gateway.networking.k8s.io/ReferenceGrant в просторі імен-джерелі, щоб дозволити власнику цього простору імен приймати посилання. Див. документацію ReferenceGrant для отримання деталей. (Альфа) Це поле вимагає ввімкненої властивості CrossNamespaceVolumeDataSource.
volumeAttributesClassName (string)
Поле volumeAttributesClassName може бути використане для встановлення VolumeAttributesClass, який буде використано заявкою. Якщо вказано, драйвер CSI створить або оновить том із атрибутами, визначеними у відповідному VolumeAttributesClass. Це поле має інше призначення, ніж storageClassName, і може бути змінене після створення заявки. Порожнє значення означає, що жоден VolumeAttributesClass не буде застосований до заявки, однак не можна скинути це поле на порожне значпння після його встановлення. Порожній рядок або значення nil вказує, що до заявки не буде застосовано жодного VolumeAttributesClass. Якщо заявка переходить у стан помилки Infeasible, це поле можна скинути до попереднього значення (включно з nil), щоб скасувати зміну. Якщо ресурс, на який посилається volumeAttributesClass, не існує, PersistentVolumeClaim отримає стан Pending ("Очікування"), що буде відображено в полі modifyVolumeStatus, доки такий ресурс не зʼявиться. Докладніше: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/. (Beta) Використання цього поля вимагає ввімкнення функціональної можливості VolumeAttributesClass (стандартно вимкнено).
PersistentVolumeClaimStatus — це поточний статус запиту на постійний том.
accessModes ([]string)
Atomic: буде замінено під час злиття
accessModes містить фактичні режими доступу, якими володіє том, що підтримує PVC. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
allocatedResourceStatuses (map[string]string)
allocatedResourceStatuses зберігає статус ресурсу, який змінюється для даного PVC. Імена ключів відповідають стандартному синтаксису міток Kubernetes. Допустимі значення:
Крім вищезазначених значень — ключі без префіксу або з префіксом kubernetes.io вважаються зарезервованими й, отже, не можуть використовуватися.
ClaimResourceStatus може бути в одному з наступних станів:
Наприклад, якщо PVC розширюється для більшої місткості, це поле може бути в одному з наступних станів:
Якщо це поле не встановлено, це означає, що операція зміни розміру для даного PVC не виконується.
Контролер, що отримує оновлення PVC з невідомим раніше resourceName або ClaimResourceStatus, повинен ігнорувати оновлення з метою, для якої він був створений. Наприклад, контролер, який відповідає лише за зміну розміру місткості тому, повинен ігнорувати оновлення PVC, які змінюють інші дійсні ресурси, повʼязані з PVC.
allocatedResources (map[string]Quantity)
allocatedResources відстежує ресурси, виділені для PVC, включаючи його місткість. Імена ключів відповідають стандартному синтаксису міток Kubernetes. Допустимі значення:
Крім вищезазначених значень — ключі без префіксу або з префіксом kubernetes.io вважаються зарезервованими й, отже, не можуть використовуватися.
Місткість, зазначена тут, може бути більшою за фактичну місткість, коли запит на розширення тому виконується. Для квоти на зберігання використовується більше значення з allocatedResources і PVC.spec.resources. Якщо allocatedResources не встановлено, для розрахунку квоти використовується лише PVC.spec.resources. Якщо запит на розширення місткості тому знижено, allocatedResources знижується лише в тому випадку, якщо операції розширення не виконуються і якщо фактична місткість тому дорівнює або нижча за запитану місткість.
Контролер, що отримує оновлення PVC з невідомим раніше resourceName, повинен ігнорувати оновлення з метою, для якої він був створений. Наприклад, контролер, який відповідає лише за зміну розміру місткості тому, повинен ігнорувати оновлення PVC, які змінюють інші дійсні ресурси, повʼязані з PVC.
capacity (map[string]Quantity)
capacity представляє фактичні ресурси базового тому.
conditions ([]PersistentVolumeClaimCondition)
Patch strategy: обʼєднання за ключем type
conditions — це поточний стан запиту на постійний том. Якщо базовий постійний том змінюється в розмірі, стан буде встановлено на 'Resizing'.
PersistentVolumeClaimCondition містить деталі про стан pvc
conditions.status (string), обовʼязково
Status — це статус стану. Може бути True, False, Unknown. Докладніше: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1
conditions.type (string), обовʼязково
Тип — це тип стану. Докладніше: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1
conditions.lastProbeTime (Time)
lastProbeTime - це час, коли ми обстежили стан.
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
conditions.lastTransitionTime (Time)
lastTransitionTime — це час, коли стан перейшов з одного статусу до іншого.
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
conditions.message (string)
message — це зрозуміле для людини повідомлення, що вказує на деталі останнього переходу.
conditions.reason (string)
reason — це унікальний, короткий, зрозумілий для машини рядок, який вказує причину останнього переходу стану. Якщо він повідомляє "Resizing", це означає, що базовий постійний том змінюється в розмірі.
currentVolumeAttributesClassName (string)
currentVolumeAttributesClassName — це поточна назва VolumeAttributesClass, яку використовує PVC. Якщо не встановлено, то до цього PersistentVolumeClaim не застосовано жодного VolumeAttributeClass.
modifyVolumeStatus (ModifyVolumeStatus)
ModifyVolumeStatus представляє обʼєкт статусу операції ControllerModifyVolume. Якщо не встановлено, спроба виконання операції ModifyVolume не відбувається.
ModifyVolumeStatus представляє обʼєкт стану операції ControllerModifyVolume.
modifyVolumeStatus.status (string), required
status — це статус операції ControllerModifyVolume. Він може перебувати в одному з наступних станів:
Примітка: Нові статуси можуть бути додані в майбутньому. Споживачі повинні перевіряти наявність невідомих статусів і відповідно обробляти помилки.
Можливі значення переліку (enum):
"InProgress" InProgress вказує, що том модифікується"Infeasible" Infeasible вказує, що запит був відхилений драйвером CSI як недійсний. Щоб вирішити цю помилку, потрібно вказати дійсний VolumeAttributesClass"Pending" Pending вказує, що PersistentVolumeClaim не може бути змінений через невиконання вимог, таких як відсутність вказаного VolumeAttributesClassmodifyVolumeStatus.targetVolumeAttributesClassName (string)
targetVolumeAttributesClassName — імʼя класу VolumeAttributesClass, який зараз узгоджується з PVC
phase (string)
phase представляє поточну фазу запиту на постійний том.
Можливі значення переліку (enum):
"Bound" використовується для PersistentVolumeClaims, які прив'язані"Lost" використовується для PersistentVolumeClaims, які втратили свій базовий PersistentVolume. Заявка була привʼязана до PersistentVolume, але цей том більше не існує, і всі дані на ньому були втрачені."Pending" — використовується для PersistentVolumeClaims, які ще не привʼязані.PersistentVolumeClaimList — це список елементів PersistentVolumeClaim.
apiVersion: v1
kind: PersistentVolumeClaimList
metadata (ListMeta)
Стандартні метадані списку. Додаткова інформація: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
items ([]PersistentVolumeClaim), обовʼязково
items — це список запитів на постійні томи. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
get отримати вказаний PersistentVolumeClaimGET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
name (в шляху): string, обовʼязковий
імʼя PersistentVolumeClaim
namespace (в шляху): string, обовʼязковий
pretty (в запиті): string
200 (PersistentVolumeClaim): OK
401: Unauthorized
get отримати статус вказаного PersistentVolumeClaimGET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status
name (в шляху): string, обовʼязковий
імʼя PersistentVolumeClaim
namespace (в шляху): string, обовʼязковий
pretty (в запиті): string
200 (PersistentVolumeClaim): OK
401: Unauthorized
list перелік або спостереження за обʼєктами типу PersistentVolumeClaimGET /api/v1/namespaces/{namespace}/persistentvolumeclaims
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 (PersistentVolumeClaimList): OK
401: Unauthorized
list перелік або спостереження за обʼєктами типу PersistentVolumeClaimGET /api/v1/persistentvolumeclaims
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
200 (PersistentVolumeClaimList): OK
401: Unauthorized
create створити PersistentVolumeClaimPOST /api/v1/namespaces/{namespace}/persistentvolumeclaims
namespace (в шляху): string, обовʼязковий
body: PersistentVolumeClaim, обовʼязковий
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
202 (PersistentVolumeClaim): Accepted
401: Unauthorized
update замінити вказаний PersistentVolumeClaimPUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
name (в шляху): string, обовʼязковий
імʼя PersistentVolumeClaim
namespace (в шляху): string, обовʼязковий
body: PersistentVolumeClaim, обовʼязковий
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
401: Unauthorized
update замінити статус вказаного PersistentVolumeClaimPUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status
name (в шляху): string, обовʼязковий
імʼя PersistentVolumeClaim
namespace (в шляху): string, обовʼязковий
body: PersistentVolumeClaim, обовʼязковий
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
401: Unauthorized
patch частково оновити вказаний PersistentVolumeClaimPATCH /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
name (в шляху): string, обовʼязковий
імʼя PersistentVolumeClaim
namespace (в шляху): string, обовʼязковий
body: Patch, обовʼязковий
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
401: Unauthorized
patch частково оновити статус вказаного PersistentVolumeClaimPATCH /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status
name (в шляху): string, обовʼязковий
імʼя PersistentVolumeClaim
namespace (в шляху): string, обовʼязковий
body: Patch, обовʼязковий
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
401: Unauthorized
delete видалити PersistentVolumeClaimDELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
name (в шляху): string, обовʼязковий
імʼя PersistentVolumeClaim
namespace (в шляху): string, обовʼязковий
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
ignoreStoreReadErrorWithClusterBreakingPotential (в запиті): boolean
pretty (в запиті): string
propagationPolicy (в запиті): string
200 (PersistentVolumeClaim): OK
202 (PersistentVolumeClaim): Accepted
401: Unauthorized
deletecollection видалити колекцію PersistentVolumeClaimDELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims
namespace (в шляху): string, обовʼязковий
body: DeleteOptions
continue (в запиті): string
dryRun (в запиті): string
fieldSelector (в запиті): string
gracePeriodSeconds (в запиті): integer
ignoreStoreReadErrorWithClusterBreakingPotential (в запиті): boolean
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
200 (Status): OK
401: Unauthorized