Це багатосторінковий друкований вигляд цього розділу. Натисність щоб друкувати.
Ресурси конфігурації та зберігання
1 - ConfigMap
apiVersion: v1
import "k8s.io/api/core/v1"
ConfigMap
ConfigMap містить конфігураційні дані, які використовуються Podʼами.
apiVersion: v1
kind: ConfigMap
metadata (ObjectMeta)
Стандартні метадані обʼєкта. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
binaryData (map[string][]byte)
BinaryData містить бінарні дані. Кожен ключ повинен складатися з алфавітно-цифрових символів, '-', '_' або '.'. BinaryData може містити байтові послідовності, які не належать до діапазону UTF-8. Ключі, що зберігаються у BinaryData, не повинні збігатися з ключами у полі Data, це перевіряється під час валідації. Використання цього поля вимагатиме apiserver та kubelet версії 1.10+.
data (map[string]string)
Data містить конфігураційні дані. Кожен ключ повинен складатися з алфавітно-цифрових символів, '-', '_' або '.'. Значення з байтовими послідовностями, що не належать до діапазону UTF-8, повинні використовувати поле BinaryData. Ключі, що зберігаються у Data, не повинні збігатися з ключами у полі BinaryData, це перевіряється під час валідації.
immutable (boolean)
Immutable, якщо встановлено в true, гарантує, що дані, збережені у ConfigMap, не можуть бути оновлені (можна змінювати лише метадані обʼєкта). Якщо не встановлено в true, поле можна змінити у будь-який час. Стандартне значення — nil.
ConfigMapList
ConfigMapList — це ресурс, що містить список обʼєктів ConfigMap.
apiVersion: v1
kind: ConfigMapList
metadata (ListMeta)
Докладніще: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]ConfigMap), обовʼязкове
Items — це список ConfigMap.
Операції
get
отримати вказаний ConfigMap
HTTP запит
GET /api/v1/namespaces/{namespace}/configmaps/{name}
Параметри
name (в шляху): string, обовʼязково
назва ConfigMap
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
Відповідь
200 (ConfigMap): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу ConfigMap
HTTP запит
GET /api/v1/namespaces/{namespace}/configmaps
Параметри
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 (ConfigMapList): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу ConfigMap
HTTP запит
GET /api/v1/configmaps
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (ConfigMapList): OK
401: Unauthorized
create
створення ConfigMap
HTTP запит
POST /api/v1/namespaces/{namespace}/configmaps
Параметри
namespace (в шляху): string, обовʼязково
body: ConfigMap, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (ConfigMap): OK
201 (ConfigMap): Created
202 (ConfigMap): Accepted
401: Unauthorized
update
заміна вказаного ConfigMap
HTTP запит
PUT /api/v1/namespaces/{namespace}/configmaps/{name}
Параметри
name (в шляху): string, обовʼязково
назва ConfigMap
namespace (в шляху): string, обовʼязково
body: ConfigMap, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (ConfigMap): OK
201 (ConfigMap): Created
401: Unauthorized
patch
часткове оновлення вказаного ConfigMap
HTTP запит
PATCH /api/v1/namespaces/{namespace}/configmaps/{name}
Параметри
name (в шляху): string, обовʼязково
назва ConfigMap
namespace (в шляху): string, обовʼязково
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (ConfigMap): OK
201 (ConfigMap): Created
401: Unauthorized
delete
видалення ConfigMap
HTTP запит
DELETE /api/v1/namespaces/{namespace}/configmaps/{name}
Параметри
name (в шляху): string, обовʼязково
назва ConfigMap
namespace (в шляху): string, обовʼязково
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
видалення колекції ConfigMap
HTTP запит
DELETE /api/v1/namespaces/{namespace}/configmaps
Параметри
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
2 - Secret
apiVersion: v1
import "k8s.io/api/core/v1"
Secret
Secret зберігає секретні дані певного типу. Загальна кількість байт значень у полі Data має бути меншою за MaxSecretSize.
apiVersion: v1
kind: Secret
metadata (ObjectMeta)
Стандартні метадані обʼєкта. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
data (map[string][]byte)
Data містить секретні дані. Кожен ключ повинен складатися з алфавітно-цифрових символів, '-', '_' або '.'. Сериалізована форма секретних даних є рядком, закодованим у base64, що представляє довільне (можливо, не рядкове) значення даних. Описано в https://tools.ietf.org/html/rfc4648#section-4.
immutable (boolean)
Immutable, якщо встановлено в true, гарантує, що дані, збережені в Secret, не можуть бути оновлені (можна змінювати лише метадані обʼєкта). Якщо не встановлено в true, поле можна змінити у будь-який час. Стандартне значення — nil.
stringData (map[string]string)
stringData дозволяє вказувати небінарні секретні дані у вигляді рядків. Це поле надається як поле вводу лише для запису для зручності. Усі ключі та значення обʼєднуються в поле data при записі, перезаписуючи будь-які наявні значення. Поле stringData ніколи не виводиться при читанні з API.
type (string)
Використовується для полегшення програмної обробки секретних даних. Більше інформації: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types.
SecretList
SecretList — це список обʼєктів Secret.
apiVersion: v1
kind: SecretList
metadata (ListMeta)
Стандартні метадані списку. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
items ([]Secret), обовʼязково
Items — це список секретних обʼєктів. Більше інформації: https://kubernetes.io/docs/concepts/configuration/secret
Операції
get
отримати вказаний Secret
HTTP запит
GET /api/v1/namespaces/{namespace}/secrets/{name}
Параметри
name (в шляху): string, обовʼязково
name of the Secret
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
Response
200 (Secret): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу Secret
HTTP запит
GET /api/v1/namespaces/{namespace}/secrets
Параметри
namespace (в шляху): string, обовʼязково
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Response
200 (SecretList): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу Secret
HTTP запит
GET /api/v1/secrets
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Response
200 (SecretList): OK
401: Unauthorized
create
створення Secret
HTTP запит
POST /api/v1/namespaces/{namespace}/secrets
Параметри
namespace (в шляху): string, обовʼязково
body: Secret, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Response
200 (Secret): OK
201 (Secret): Created
202 (Secret): Accepted
401: Unauthorized
update
заміна вказаного Secret
HTTP запит
PUT /api/v1/namespaces/{namespace}/secrets/{name}
Параметри
name (в шляху): string, обовʼязково
name of the Secret
namespace (в шляху): string, обовʼязково
body: Secret, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Response
200 (Secret): OK
201 (Secret): Created
401: Unauthorized
patch
часткове оновлення вказаного Secret
HTTP запит
PATCH /api/v1/namespaces/{namespace}/secrets/{name}
Параметри
name (в шляху): string, обовʼязково
name of the Secret
namespace (в шляху): string, обовʼязково
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Response
200 (Secret): OK
201 (Secret): Created
401: Unauthorized
delete
видалення Secret
HTTP запит
DELETE /api/v1/namespaces/{namespace}/secrets/{name}
Параметри
name (в шляху): string, обовʼязково
name of the Secret
namespace (в шляху): string, обовʼязково
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Response
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
видалення колекції Secret
HTTP запит
DELETE /api/v1/namespaces/{namespace}/secrets
Параметри
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
Response
200 (Status): OK
401: Unauthorized
3 - CSIDriver
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
CSIDriver
CSIDriver збирає інформацію про драйвер тому Container Storage Interface (CSI), розгорнутий в кластері. Контролер приєднання та відʼєднання Kubernetes використовує цей обʼєкт для визначення необхідності приєднання. Kubelet використовує цей обʼєкт, щоб визначити, чи потрібно передавати інформацію про контейнер при монтуванні. Обʼєкти CSIDriver не має простору імен.
apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata (ObjectMeta)
Стандартні метадані обʼєкта. metadata.Name вказує назву драйвера CSI, до якого відноситься цей обʼєкт; вона МАЄ бути такою ж, як імʼя, яке повертає виклик CSI GetPluginName() для цього драйвера. Назва драйвера повинна бути не більше 63 символів, починатися і закінчуватися алфавітно-цифровим символом ([a-z0-9A-Z]), з тире (-), крапками (.) та алфавітно-цифровими символами між ними. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (CSIDriverSpec), обовʼязково
spec представляє специфікацію драйвера CSI.
CSIDriverSpec
CSIDriverSpec — це специфікація CSIDriver.
attachобовʼязково (boolean)
attachобовʼязково вказує, що цей драйвер томів CSI вимагає операцію приєднання (оскільки він реалізує метод CSI ControllerPublishVolume()), і що контролер приєднання та відʼєднання Kubernetes повинен викликати інтерфейс приєднання томів, який перевіряє статус VolumeAttachment і чекає, поки том буде приєднано, перед тим як перейти до монтування. Зовнішній attacher CSI координується з драйвером томів CSI та оновлює статус VolumeAttachment після завершення операції приєднання. Якщо увімкнено функцію CSIDriverRegistry і значення встановлено на false, операція приєднання буде пропущена. В іншому випадку операція приєднання буде викликана.
Це поле незмінне.
fsGroupPolicy (string)
fsGroupPolicy визначає, чи підтримує базовий том зміну власності та дозволів на том перед монтуванням. Додаткову інформацію дивіться у конкретних значеннях FSGroupPolicy.
Це поле було незмінним в Kubernetes < 1.29, тепер воно є змінним.
Стандартне значення ReadWriteOnceWithFSType, що дозволяє перевірити кожен том, щоб визначити, чи повинен Kubernetes змінювати власність і дозволи на том. Зі стандартною політикою визначена fsGroup буде застосована лише, якщо визначено fstype і режим доступу тому містить ReadWriteOnce.
podInfoOnMount (boolean)
podInfoOnMount вказує, що цей драйвер томів CSI вимагає додаткову інформацію про Pod (наприклад, podName, podUID тощо) під час операцій монтування, якщо встановлено true. Якщо встановлено false, інформація про Pod не буде передаватися під час монтування. Стандартне значення — false.
Драйвер CSI визначає podInfoOnMount як частину розгортання драйвера. Якщо true, Kubelet передаватиме інформацію про Pod як VolumeContext у викликах CSI NodePublishVolume(). Драйвер CSI відповідає за розбір та перевірку інформації, переданої як VolumeContext.
Наступний VolumeContext буде передано, якщо podInfoOnMount встановлено в true. Цей список може розширюватися, але буде використовуватися префікс. "csi.storage.k8s.io/pod.name": pod.Name "csi.storage.k8s.io/pod.namespace": pod.Namespace "csi.storage.k8s.io/pod.uid": string(pod.UID) "csi.storage.k8s.io/ephemeral": "true", якщо том є ефемерним інлайн-томом, визначеним CSIVolumeSource, в іншому випадку "false"
"csi.storage.k8s.io/ephemeral" — це нова функція в Kubernetes 1.16. Вона потрібна лише для драйверів, які підтримують як "Persistent", так і "Ephemeral" VolumeLifecycleMode. Інші драйвери можуть залишити інформацію про Podʼи вимкненою та/або ігнорувати це поле. Оскільки Kubernetes 1.15 не підтримує це поле, драйвери можуть підтримувати лише один режим під час розгортання на такому кластері, і Deployment визначає, який режим це буде, наприклад, через параметр командного рядка драйвера.
Це поле було незмінним в Kubernetes < 1.29, тепер воно є змінним.
requiresRepublish (boolean)
requiresRepublish вказує, що драйвер CSI хоче, щоб
NodePublishVolume
періодично викликали, щоб відобразити будь-які можливі зміни у змонтованому томі. Стандартне значення цього поля — false.Примітка: після успішного початкового виклику NodePublishVolume наступні виклики NodePublishVolume повинні лише оновлювати вміст тому. Нові точки монтування не будуть видимі для запущеного контейнера.
seLinuxMount (boolean)
seLinuxMount визначає, чи підтримує драйвер CSI опцію монтування "-o context".
Коли "true", драйвер CSI повинен забезпечити, щоб усі томи, надані цим драйвером CSI, могли монтуватися окремо з різними параметрами
-o context
. Це типово для сховищ, які надають томи як файлові системи на блокових пристроях або як незалежні загальні томи. Kubernetes викликатиме NodeStage / NodePublish з параметром монтування "-o context=xyz" при монтуванні тому ReadWriteOncePod, який використовується в Pod, що явно встановив контекст SELinux. У майбутньому це може бути розширено до інших режимів доступу до томів. У будь-якому випадку Kubernetes забезпечить, щоб том монтувався лише з одним контекстом SELinux.Коли "false", Kubernetes не передаватиме жодних спеціальних параметрів монтування SELinux драйверу. Це типово для томів, які представляють підтеки більшої спільної файлової системи.
Стандартне значення — "false".
storageCapacity (boolean)
storageCapacity вказує, що драйвер томів CSI хоче, щоб планування Podʼів враховувало обсяг сховища, який буде повідомлено під час розгортання драйвера шляхом створення обʼєктів CSIStorageCapacity з інформацією про місткість, якщо встановлено true.
Перевірку можна ввімкнути відразу під час розгортання драйвера. У цьому випадку створення нових томів з відкладеним привʼязуванням зупиниться, доки Deployment драйвера не опублікує деякий відповідний обʼєкт CSIStorageCapacity.
Альтернативно, драйвер можна розгорнути з невстановленим або false полем, і його можна змінити пізніше, коли буде опубліковано інформацію про місткість сховища.
Це поле було незмінним у Kubernetes <= 1.22 і тепер воно є змінним.
tokenRequests ([]TokenRequest)
Atomic: буде замінено під час злиття
tokenRequests вказує, що драйвер CSI потребує токенів службових облікових записів Podʼів, для яких він монтує том, для необхідної автентифікації. Kubelet передасть токени у VolumeContext у викликах CSI NodePublishVolume. Драйвер CSI повинен розбирати та перевіряти наступний VolumeContext:
"csi.storage.k8s.io/serviceAccount.tokens": { "<audience>": { "token": <token>, "expirationTimestamp": <expiration timestamp in RFC3339>, }, ... }
Примітка: Аудиторія в кожному запиті токена повинна бути різною, і не більше одного токена має бути пустим рядком. Для отримання нового токена після закінчення терміну дії можна використовувати RequiresRepublish для періодичного виклику NodePublishVolume.
TokenRequest містить параметри токена службового облікового запису.
tokenRequests.audience (string), обовʼязково
audience — це призначена аудиторія токена в "TokenRequestSpec". Стандартно це аудиторії kube apiserver.
tokenRequests.expirationSeconds (int64)
expirationSeconds — це тривалість дії токена в "TokenRequestSpec". Має таке ж стандартне значення, як "ExpirationSeconds" у "TokenRequestSpec".
volumeLifecycleModes ([]string)
Set: унікальні значення будуть збережені під час злиття
volumeLifecycleModes визначає, які типи томів підтримує цей драйвер томів CSI. Стандартно, якщо список порожній, це "Persistent", що визначено специфікацією CSI та реалізовано в Kubernetes через звичайний механізм PV/PVC.
Інший режим — "Ephemeral". У цьому режимі томи визначаються інлайн у специфікації Podʼа за допомогою CSIVolumeSource, і їх життєвий цикл повʼязаний з життєвим циклом цього Podʼа. Драйвер повинен бути обізнаний про це, оскільки він отримає лише виклик NodePublishVolume для такого тому.
Для отримання додаткової інформації про реалізацію цього режиму див. https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html. Драйвер може підтримувати один або кілька цих режимів, і в майбутньому можуть бути додані інші режими.
Це поле знаходиться у стадії бета. Це поле незмінне.
CSIDriverList
CSIDriverList — це колекція обʼєктів CSIDriver.
apiVersion: storage.k8s.io/v1
kind: CSIDriverList
metadata (ListMeta)
Стандартні метадані списку. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]CSIDriver), обовʼязково
items — це список CSIDriver.
Операції
get
отримати вказаний CSIDriver
HTTP запит
GET /apis/storage.k8s.io/v1/csidrivers/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя CSIDriver
pretty (в запиті): string
Відповідь
200 (CSIDriver): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу CSIDriver
HTTP запит
GET /apis/storage.k8s.io/v1/csidrivers
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (CSIDriverList): OK
401: Unauthorized
create
створення CSIDriver
HTTP запит
POST /apis/storage.k8s.io/v1/csidrivers
Параметри
body: CSIDriver, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (CSIDriver): OK
201 (CSIDriver): Created
202 (CSIDriver): Accepted
401: Unauthorized
update
заміна вказаного CSIDriver
HTTP запит
PUT /apis/storage.k8s.io/v1/csidrivers/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя CSIDriver
body: CSIDriver, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (CSIDriver): OK
201 (CSIDriver): Created
401: Unauthorized
patch
часткове оновлення вказаного CSIDriver
HTTP запит
PATCH /apis/storage.k8s.io/v1/csidrivers/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя CSIDriver
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (CSIDriver): OK
201 (CSIDriver): Created
401: Unauthorized
delete
видалення CSIDriver
HTTP запит
DELETE /apis/storage.k8s.io/v1/csidrivers/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя CSIDriver
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (CSIDriver): OK
202 (CSIDriver): Accepted
401: Unauthorized
deletecollection
видалення колекції CSIDriver
HTTP запит
DELETE /apis/storage.k8s.io/v1/csidrivers
Параметри
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
4 - CSINode
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
CSINode
CSINode містить інформацію про всі драйвери CSI, встановлені на вузлі. Драйверам CSI не потрібно створювати обʼєкт CSINode безпосередньо. Якщо вони використовують sidecar контейнер node-driver-registrar, kubelet автоматично заповнить обʼєкт CSINode для драйвера CSI під час реєстрації втулка kubelet. CSINode має ту ж назву, що і вузол. Якщо обʼєкт відсутній, це означає, що або на вузлі немає доступних драйверів CSI, або версія Kubelet є достатньо низькою, щоб не створювати цей обʼєкт. CSINode має OwnerReference, яке вказує на відповідний обʼєкт вузла.
apiVersion: storage.k8s.io/v1
kind: CSINode
metadata (ObjectMeta)
Стандартні метадані обʼєкта. metadata.name має бути назвою вузла Kubernetes.
spec (CSINodeSpec)
spec — це специфікація CSINode
CSINodeSpec
CSINodeSpec містить інформацію про специфікації всіх драйверів CSI, встановлених на вузлі.
drivers ([]CSINodeDriver), обовʼязково
Patch strategy: злиття за ключем
name
Map: унікальні значення ключа name будуть збережені під час злиття
drivers — це список інформації про всі драйвери CSI, які існують на вузлі. Якщо всі драйвери в списку видалено, цей список може бути порожнім.
CSINodeDriver містить інформацію про специфікацію одного драйвера CSI, встановленого на вузлі
drivers.name (string), обовʼязково
name представляє імʼя драйвера CSI, до якого відноситься цей обʼєкт. Це МАЄ бути те саме імʼя, яке повертає виклик CSI GetPluginName() для цього драйвера.
drivers.nodeID (string), обовʼязково
nodeID вузла з погляду драйвера. Це поле дозволяє Kubernetes взаємодіяти з системами зберігання, які не використовують ту ж номенклатуру для вузлів. Наприклад, Kubernetes може називати вузол "node1", але система зберігання може називати той самий вузол "nodeA". Коли Kubernetes видає команду системі зберігання для приєднання тому до конкретного вузла, він може використовувати це поле для посилання на імʼя вузла за допомогою ID, який зрозуміє система зберігання, наприклад "nodeA" замість "node1". Це поле обовʼязкове.
drivers.allocatable (VolumeNodeResources)
allocatable представляє ресурс тому вузла, доступний для планування. Це поле є бета-версією.
VolumeNodeResources — це набір обмежень ресурсів для планування томів.
drivers.allocatable.count (int32)
count вказує максимальну кількість унікальних томів, що керуються драйвером CSI, які можна використовувати на вузлі. Том, який одночасно приєднаний і змонтований на вузлі, вважається використаним один раз, а не двічі. Те саме правило застосовується до унікального тому, який розділяється між кількома Podʼами на одному вузлі. Якщо це поле не вказано, то кількість підтримуваних томів на цьому вузлі не обмежена.
drivers.topologyKeys ([]string)
Atomic: буде замінено під час злиття
topologyKeys — це список ключів, підтримуваних драйвером. Коли драйвер ініціалізується в кластері, він надає набір ключів топології, які він розуміє (наприклад, "company.com/zone", "company.com/region"). Коли драйвер ініціалізується на вузлі, він надає ті самі ключі топології разом зі значеннями. Kubelet відображатиме ці ключі топології як мітки на своєму власному обʼєкті вузла. Коли Kubernetes виконує планування з урахуванням топології, він може використовувати цей список для визначення, які мітки він повинен отримати з обʼєкта вузла та передати назад драйверу. Для різних вузлів можуть використовуватися різні ключі топології. Це поле може бути порожнім, якщо драйвер не підтримує топологію.
CSINodeList
CSINodeList — це колекція обʼєктів CSINode.
apiVersion: storage.k8s.io/v1
kind: CSINodeList
metadata (ListMeta)
Стандартні метадані списку. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]CSINode), обовʼязково
items — це список CSINode.
Операції
get
отримати вказаний CSINode
HTTP запит
GET /apis/storage.k8s.io/v1/csinodes/{name}
Параметри
name (в шляху): string, обовʼязково
name of the CSINode
pretty (в запиті): string
Відповідь
200 (CSINode): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу CSINode
HTTP запит
GET /apis/storage.k8s.io/v1/csinodes
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (CSINodeList): OK
401: Unauthorized
create
створення CSINode
HTTP запит
POST /apis/storage.k8s.io/v1/csinodes
Параметри
body: CSINode, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (CSINode): OK
201 (CSINode): Created
202 (CSINode): Accepted
401: Unauthorized
update
заміна вказаного CSINode
HTTP запит
PUT /apis/storage.k8s.io/v1/csinodes/{name}
Параметри
name (в шляху): string, обовʼязково
name of the CSINode
body: CSINode, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (CSINode): OK
201 (CSINode): Created
401: Unauthorized
patch
часткове оновлення вказаного CSINode
HTTP запит
PATCH /apis/storage.k8s.io/v1/csinodes/{name}
Параметри
name (в шляху): string, обовʼязково
name of the CSINode
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (CSINode): OK
201 (CSINode): Created
401: Unauthorized
delete
видалення CSINode
HTTP запит
DELETE /apis/storage.k8s.io/v1/csinodes/{name}
Параметри
name (в шляху): string, обовʼязково
name of the CSINode
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (CSINode): OK
202 (CSINode): Accepted
401: Unauthorized
deletecollection
видалення колекції CSINode
HTTP запит
DELETE /apis/storage.k8s.io/v1/csinodes
Параметри
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
5 - CSIStorageCapacity
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.
apiVersion: storage.k8s.io/v1
kind: CSIStorageCapacityList
metadata (ListMeta)
Стандартні метадані списку. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]CSIStorageCapacity), обовʼязково
items — це список обʼєктів CSIStorageCapacity.
Операції
get
отримати вказаний CSIStorageCapacity
HTTP запит
GET /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя CSIStorageCapacity
namespace (в шляху): string, обовʼязково
pretty (в запиті): string
Відповідь
200 (CSIStorageCapacity): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу CSIStorageCapacity
HTTP запит
GET /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities
Параметри
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 (CSIStorageCapacityList): OK
401: Unauthorized
list
перелік або перегляд обʼєктів CSIStorageCapacity
HTTP запит
GET /apis/storage.k8s.io/v1/csistoragecapacities
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (CSIStorageCapacityList): OK
401: Unauthorized
create
створення CSIStorageCapacity
HTTP запит
POST /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities
Параметри
namespace (в шляху): string, обовʼязково
body: CSIStorageCapacity, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
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, обовʼязково
body: CSIStorageCapacity, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
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, обовʼязково
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
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, обовʼязково
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
видалення колекції CSIStorageCapacity
HTTP запит
DELETE /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities
Параметри
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
6 - PersistentVolumeClaim
apiVersion: v1
import "k8s.io/api/core/v1"
PersistentVolumeClaim
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
PersistentVolumeClaimSpec описує загальні атрибути пристроїв зберігання та дозволяє вказувати джерело для атрибутів, специфічних для постачальника.
accessModes ([]string)
Atomic: буде замінено під час злиття
accessModes містить бажані режими доступу, якими повинен користуватися том. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
selector (LabelSelector)
selector — це запит мітки для томів, які слід враховувати при звʼязуванні.
resources (VolumeResourceRequirements)
resources представляє мінімальні ресурси, якими повинен володіти том. Якщо включено можливість RecoverVolumeExpansionFailure, користувачам дозволяється вказувати вимоги до ресурсів, які нижчі за попереднє значення, але все ще мають бути вищими, ніж місткість, вказана в полі статусу вимоги. Додаткова інформація: 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 підтверджується, коли воно не включене у специфікацію вимоги.
Бета-рівень
dataSource (TypedLocalObjectReference)
Поле dataSource може використовуватися для вказівки на:
- Наявний обʼєкт VolumeSnapshot (snapshot.storage.k8s.io/VolumeSnapshot)
- Наявний PVC (PersistentVolumeClaim)
Якщо провайдер або зовнішній контролер може підтримувати вказане джерело даних, він створить новий том на основі вмісту вказаного джерела даних. Коли вмикається функціональна властивість AnyVolumeDataSource, вміст dataSource буде скопійовано до dataSourceRef, а вміст dataSourceRef буде скопійовано до dataSource, коли не вказано dataSourceRef.namespace. Якщо вказано простір імен, то dataSourceRef не буде скопійовано до dataSource.
dataSourceRef (TypedObjectReference)
dataSourceRef вказує на обʼєкт, з якого потрібно заповнити том даними, якщо потрібний непорожній том. Це може бути будь-який обʼєкт з непорожньої API-групи (не базовий обʼєкт) або обʼєкт PersistentVolumeClaim. Коли вказано це поле, звʼязування тому вдасться тільки в тому випадку, якщо тип вказаного обʼєкта відповідає якомусь встановленому наповнювачу тому або динамічному провайдеру. Це поле замінить функціональність поля dataSource і як таке, якщо обидва поля непорожні, вони повинні мати однакове значення. Для забезпечення зворотної сумісності, коли простір імен не вказано в dataSourceRef, обидва поля (dataSource та dataSourceRef) будуть автоматично встановлені в одне значення, якщо одне з них порожнє, а інше — непорожнє. Коли простір імен вказаний в dataSourceRef, dataSource не встановлюється в те ж саме значення і повинно бути порожнім. Є три важливі відмінності між dataSource та dataSourceRef:
- Поки dataSource дозволяє лише два конкретних типи обʼєктів, dataSourceRef дозволяє будь-які не базові обʼєкти, а також обʼєкти PersistentVolumeClaim.
- Поки dataSource ігнорує заборонені значення (вилучаючи їх), dataSourceRef зберігає всі значення і генерує помилку, якщо вказано заборонене значення.
- Поки dataSource дозволяє лише локальні обʼєкти, dataSourceRef дозволяє обʼєкти в будь-яких просторах імен.
(Бета) Використання цього поля вимагає ввімкненої властивості AnyVolumeDataSource. (Альфа) Використання поля namespace у dataSourceRef вимагає ввімкненої властивості CrossNamespaceVolumeDataSource.
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
не буде застосований до заявки, однак не можна скинути це поле на порожне значпння після його встановлення. Якщо не вказано і PersistentVolumeClaim не привʼязано до конкретного PersistentVolume, то контролер томів встановить стандартний VolumeAttributesClass, якщо він існує. Якщо ресурс, на який посилаєтьсяvolumeAttributesClass
, не існує, PersistentVolumeClaim отримає стан Pending ("Очікування"), що буде відображено в поліmodifyVolumeStatus
, доки такий ресурс не зʼявиться. Докладніше: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/. (Beta) Використання цього поля вимагає ввімкнення функціональної можливостіVolumeAttributesClass
(стандартно вимкнено).
PersistentVolumeClaimStatus
PersistentVolumeClaimStatus — це поточний статус запиту на постійний том.
accessModes ([]string)
Atomic: буде замінено під час злиття
accessModes містить фактичні режими доступу, якими володіє том, що підтримує PVC. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
allocatedResourceStatuses (map[string]string)
allocatedResourceStatuses зберігає статус ресурсу, який змінюється для даного PVC. Імена ключів відповідають стандартному синтаксису міток Kubernetes. Допустимі значення:
- Ключі без префіксу:
- storage — місткість тому.
- Власні ресурси повинні використовувати визначені реалізацією префіксовані імена, наприклад, "example.com/my-custom-resource".
Крім вищезазначених значень — ключі без префіксу або з префіксом kubernetes.io вважаються зарезервованими й, отже, не можуть використовуватися.
ClaimResourceStatus може бути в одному з наступних станів:
- ControllerResizeInProgress: Стан встановлюється, коли контролер зміни розміру починає змінювати розмір тому в панелі управління.
- ControllerResizeFailed: Стан встановлюється, коли зміна розміру не вдалася у контролері зміни розміру з термінальною помилкою.
- NodeResizePending: Стан встановлюється, коли контролер зміни розміру завершив зміну розміру тому, але подальша зміна розміру тому необхідна на вузлі.
- NodeResizeInProgress: Стан встановлюється, коли kubelet починає змінювати розмір тому.
- NodeResizeFailed: Стан встановлюється, коли зміна розміру не вдалася у kubelet з термінальною помилкою. Тимчасові помилки не встановлюють NodeResizeFailed.
Наприклад, якщо PVC розширюється для більшої місткості, це поле може бути в одному з наступних станів:
- pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeInProgress"
- pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeFailed"
- pvc.status.allocatedResourceStatus['storage'] = "NodeResizePending"
- pvc.status.allocatedResourceStatus['storage'] = "NodeResizeInProgress"
- pvc.status.allocatedResourceStatus['storage'] = "NodeResizeFailed"
Якщо це поле не встановлено, це означає, що операція зміни розміру для даного PVC не виконується.
Контролер, що отримує оновлення PVC з невідомим раніше resourceName або ClaimResourceStatus, повинен ігнорувати оновлення з метою, для якої він був створений. Наприклад, контролер, який відповідає лише за зміну розміру місткості тому, повинен ігнорувати оновлення PVC, які змінюють інші дійсні ресурси, повʼязані з PVC.
Це поле альфа-версії та вимагає ввімкнення властивості RecoverVolumeExpansionFailure.
- Ключі без префіксу:
allocatedResources (map[string]Quantity)
allocatedResources відстежує ресурси, виділені для PVC, включаючи його місткість. Імена ключів відповідають стандартному синтаксису міток Kubernetes. Допустимі значення:
- Ключі без префіксу:
- storage - місткість тому.
- Власні ресурси повинні використовувати визначені реалізацією префіксовані імена, наприклад, "example.com/my-custom-resource"
Крім вищезазначених значень — ключі без префіксу або з префіксом kubernetes.io вважаються зарезервованими й, отже, не можуть використовуватися.
Місткість, зазначена тут, може бути більшою за фактичну місткість, коли запит на розширення тому виконується. Для квоти на зберігання використовується більше значення з allocatedResources і PVC.spec.resources. Якщо allocatedResources не встановлено, для розрахунку квоти використовується лише PVC.spec.resources. Якщо запит на розширення місткості тому знижено, allocatedResources знижується лише в тому випадку, якщо операції розширення не виконуються і якщо фактична місткість тому дорівнює або нижча за запитану місткість.
Контролер, що отримує оновлення PVC з невідомим раніше resourceName, повинен ігнорувати оновлення з метою, для якої він був створений. Наприклад, контролер, який відповідає лише за зміну розміру місткості тому, повинен ігнорувати оновлення PVC, які змінюють інші дійсні ресурси, повʼязані з PVC.
Це поле альфа-версії та вимагає ввімкнення властивості RecoverVolumeExpansionFailure.
- Ключі без префіксу:
capacity (map[string]Quantity)
capacity представляє фактичні ресурси базового тому.
conditions ([]PersistentVolumeClaimCondition)
Patch strategy: злиття за ключем
type
conditions — це поточний стан запиту на постійний том. Якщо базовий постійний том змінюється в розмірі, стан буде встановлено на 'Resizing'.
PersistentVolumeClaimCondition містить деталі про стан pvc
conditions.status (string), обовʼязково
conditions.type (string), обовʼязково
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. Це бета-поле і вимагає ввімкнення функції VolumeAttributesClass (стандартно вимкнена).modifyVolumeStatus (ModifyVolumeStatus)
ModifyVolumeStatus
представляє обʼєкт статусу операції ControllerModifyVolume. Якщо не встановлено, спроба виконання операції ModifyVolume не відбувається. Це бета-поле і вимагає ввімкнення функції VolumeAttributesClass (стандартно вимкнена).ModifyVolumeStatus представляє обʼєкт стану операції ControllerModifyVolume.
modifyVolumeStatus.status (string), required
status
— це статус операції ControllerModifyVolume. Він може перебувати в одному з наступних станів:- Pending
- Pending вказує на те, що PersistentVolumeClaim не може бути змінений через невиконані вимоги, такі як відсутність вказаного VolumeAttributesClass.
- InProgress
- InProgress вказує на те, що том наразі модифікується.
- Infeasible
- Infeasible вказує на те, що запит було відхилено як недійсний драйвером CSI. Щоб усунути помилку, потрібно вказати дійсний VolumeAttributesClass.
Примітка: Нові статуси можуть бути додані в майбутньому. Споживачі повинні перевіряти наявність невідомих статусів і відповідно обробляти помилки.
modifyVolumeStatus.targetVolumeAttributesClassName (string)
targetVolumeAttributesClassName — імʼя класу VolumeAttributesClass, який зараз узгоджується з PVC
phase (string)
phase представляє поточну фазу запиту на постійний том.
PersistentVolumeClaimList
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
отримати вказаний PersistentVolumeClaim
HTTP-запит
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
Параметри
name (в шляху): string, обовʼязковий
імʼя PersistentVolumeClaim
namespace (в шляху): string, обовʼязковий
pretty (в запиті): string
Відповідь
200 (PersistentVolumeClaim): OK
401: Unauthorized
get
отримати статус вказаного PersistentVolumeClaim
HTTP-запит
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status
Параметри
name (в шляху): string, обовʼязковий
імʼя PersistentVolumeClaim
namespace (в шляху): string, обовʼязковий
pretty (в запиті): string
Відповідь
200 (PersistentVolumeClaim): OK
401: Unauthorized
list
перелік або спостереження за обʼєктами типу PersistentVolumeClaim
HTTP-запит
GET /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
перелік або спостереження за обʼєктами типу PersistentVolumeClaim
HTTP-запит
GET /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
створити PersistentVolumeClaim
HTTP-запит
POST /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
замінити вказаний PersistentVolumeClaim
HTTP-запит
PUT /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
замінити статус вказаного PersistentVolumeClaim
HTTP-запит
PUT /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
частково оновити вказаний PersistentVolumeClaim
HTTP-запит
PATCH /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
частково оновити статус вказаного PersistentVolumeClaim
HTTP-запит
PATCH /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
видалити PersistentVolumeClaim
HTTP-запит
DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
Параметри
name (в шляху): string, обовʼязковий
імʼя PersistentVolumeClaim
namespace (в шляху): string, обовʼязковий
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (PersistentVolumeClaim): OK
202 (PersistentVolumeClaim): Accepted
401: Unauthorized
deletecollection
видалити колекцію PersistentVolumeClaim
HTTP-запит
DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims
Параметри
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
7 - PersistentVolume
apiVersion: v1
import "k8s.io/api/core/v1"
PersistentVolume
PersistentVolume (PV) — це ресурс зберігання, який впроваджується адміністратором. Він є аналогом ресурсу Node. Докладніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes.
apiVersion: v1
kind: PersistentVolume
metadata (ObjectMeta)
Стандартні метадані обʼєкта. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (PersistentVolumeSpec)
spec визначає специфікацію постійного тому, що належить кластеру. Впроваджується адміністратором. Докладніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
status (PersistentVolumeStatus)
status представляє поточну інформацію/статус для постійного тому. Заповнюється системою. Лише для читання. Докладніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
PersistentVolumeSpec
PersistentVolumeSpec — це специфікація постійного тому.
accessModes ([]string)
Atomic: буде замінено під час злиття
accessModes містить всі способи, якими том може бути змонтований. Докладніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
capacity (map[string]Quantity)
capacity — це опис ресурсів та місткості постійного тому. Докладніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
claimRef (ObjectReference)
claimRef є частиною двостороннього звʼязування між PersistentVolume та PersistentVolumeClaim. Очікується, що він буде ненульовим при звʼязуванні. claim.VolumeName є офіційним звʼязуванням між PV та PVC. Докладніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
mountOptions ([]string)
Atomic: буде замінено під час злиття
mountOptions — це список опцій монтування, наприклад ["ro", "soft"]. Не перевіряється — монтування просто завершиться з помилкою, якщо одна з опцій недійсна. Докладніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
nodeAffinity (VolumeNodeAffinity)
nodeAffinity визначає обмеження, які обмежують доступ до цього тому з певних вузлів. Це поле впливає на планування Podʼів, які використовують цей том.
VolumeNodeAffinity визначає обмеження, які обмежують доступ до цього тому з певних вузлів.
nodeAffinity.required (NodeSelector)
обовʼязково визначає жорсткі обмеження на вузли, які повинні бути виконані.
Селектор вузлів представляє обʼєднання результатів одного або кількох запитів по мітках у наборі вузлів; тобто, він представляє операцію АБО для селекторів, представлених термінами селектора вузлів.
nodeAffinity.required.nodeSelectorTerms ([]NodeSelectorTerm), обовʼязково
Atomic: буде замінено під час злиття
Обовʼязково. Список термінів селектора вузлів. Терміни обʼєднуються операцією OR.
Null або порожній термін селектора вузла не відповідає жодному об'єкту. Вимоги до них складаються за принципом AND. Тип TopologySelectorTerm реалізує підмножину NodeSelectorTerm.
nodeAffinity.required.nodeSelectorTerms.matchExpressions ([]NodeSelectorRequirement)
Atomic: буде замінено під час злиття
Список вимог селектора вузлів за мітками вузлів.
nodeAffinity.required.nodeSelectorTerms.matchFields ([]NodeSelectorRequirement)
Atomic: буде замінено під час злиття
Список вимог селектора вузлів за полями вузлів.
persistentVolumeReclaimPolicy (string)
persistentVolumeReclaimPolicy визначає, що відбувається з постійним томом після його звільнення від заявки. Валідні варіанти: Retain (стандартно для створених вручну PersistentVolumes), Delete (стандартно для динамічно наданих PersistentVolumes) та Recycle (застаріле). Recycle повинен підтримуватися втулком тому, що забезпечує роботу цього PersistentVolume. Докладніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
storageClassName (string)
storageClassName — це назва StorageClass, до якого належить цей постійний том. Порожнє значення означає, що цей том не належить жодному StorageClass.
volumeAttributesClassName (string)
Імʼя VolumeAttributesClass, до якого належить цей постійний том. Порожнє значення не допускається. Якщо це поле не встановлено, це означає, що цей том не належить до жодного VolumeAttributesClass. Це поле змінюване і може бути змінене драйвером CSI після успішного оновлення тому до нового класу. Для непривʼязаного PersistentVolume значення
volumeAttributesClassName
буде зіставлено з непривʼязаними PersistentVolumeClaim під час процесу привʼязування. Це бета-поле і вимагає ввімкнення функції VolumeAttributesClass (стандартно вимкнена).volumeMode (string)
volumeMode визначає, чи призначений том для використання з форматованою файловою системою або залишатиметься в необробленому блочному стані. Значення Filesystem мається на увазі, якщо не включено в специфікацію.
Local
hostPath (HostPathVolumeSource)
hostPath представляє теку на хості. Надається розробником або тестувальником. Це корисно лише для одновузлової розробки та тестування! Зберігання на хості жодним чином не підтримується та НЕ ПРАЦЮВАТИМЕ у багатовузловому кластері. Докладніше: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
Представляє шлях на хості, зіставлений зі шляхом у Podʼі. Шляхи томів хосту не підтримують управління власністю або перепризначення міток SELinux.
hostPath.path (string), обовʼязково
path — шлях до теки на хості. Якщо шлях є символічним посиланням, він буде слідувати за посиланням до реального шляху. Докладніше: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
hostPath.type (string)
тип для HostPath Volume. Стандартне значення — "". Докладніше: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
local (LocalVolumeSource)
local — це безпосередньо приєднане сховище зі спорідненістю до вузла
Local представляє безпосередньо приєднане сховище зі спорідненістю до вузла (бета-функція)
local.path (string), обовʼязкове
повний шлях до тому на вузлі. Це може бути або тека, або блоковий пристрій (диск, розділ і т.д.).
local.fsType (string)
fsType — це тип файлової системи для монтування. Застосовується лише тоді, коли Path є блоковим пристроєм. Повинен бути тип файлової системи, підтримуваний операційною системою хосту. Наприклад, "ext4", "xfs", "ntfs". Стандартне значення — автоматичний вибір файлової системи, якщо не вказано.
Постійні томи
awsElasticBlockStore (AWSElasticBlockStoreVolumeSource)
awsElasticBlockStore представляє ресурс AWS Disk, який приєднано до машини хосту kubelet і пізніше надано доступ поду. Докладніше: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
Представляє постійний диск AWS.
awsElasticBlockStore.volumeID (string), обовʼязково
volumeID — це унікальний ідентифікатор ресурсу постійного диска в AWS (Amazon EBS volume). Докладніше: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
awsElasticBlockStore.fsType (string)
fsType — це тип файлової системи тому, який ви хочете монтувати. Переконайтеся, що тип файлової системи підтримується операційною системою хосту. Приклади: "ext4", "xfs", "ntfs". Передбачається "ext4", якщо не вказано інше. Докладніше: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
awsElasticBlockStore.partition (int32)
partition — це розділ у томі, який ви хочете монтувати. Якщо відсутній, то стандартно монтується за назвою тому. Приклади: Для тому /dev/sda1, ви вказуєте розділ як "1". Аналогічно, розділ тому /dev/sda є "0" (або ви можете залишити властивість пустою).
awsElasticBlockStore.readOnly (boolean)
readOnly значення true змусить використовувати параметр readOnly в VolumeMounts. Докладніше: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
azureDisk (AzureDiskVolumeSource)
azureDisk представляє монтування Azure Data Disk на хості та звʼязане монтування у Podʼі.
Представляє монтування Azure Data Disk на хості та звʼязане монтування у Podʼі.
azureDisk.diskName (string), обовʼязково
diskName — це імʼя диска даних у сховищі blob
azureDisk.diskURI (string), обовʼязково
diskURI — це URI диска даних у сховищі blob
azureDisk.cachingMode (string)
cachingMode — це режим кешування на хості: None, Read Only, Read Write.
azureDisk.fsType (string)
fsType — тип файлової системи для монтування. Має бути типом файлової системи, підтриманим операційною системою хосту. Наприклад, "ext4", "xfs", "ntfs". Передбачається "ext4", якщо не вказано інше.
azureDisk.kind (string)
kind — очікувані значення:
- Shared: декілька томів блобів на обліковому записі сховища
- Dedicated: один том блобів на обліковому записі сховища
- Managed: керований диск даних Azure (лише в керованому наборі доступності). Стандартне значення — shared.
azureDisk.readOnly (boolean)
readOnly — стандартне значення — false (запис/читання). Якщо тут встановлено true, то встановлюється параметр readOnly у VolumeMounts.
azureFile (AzureFilePersistentVolumeSource)
azureFile представляє монтування Azure File Service на хості та звʼязане монтування у Podʼі.
Представляє монтування Azure File Service на хості та звʼязане монтування у Podʼі.
azureFile.secretName (string), обовʼязково
secretName — це імʼя Secret, що містить імʼя та ключ облікового запису Azure Storage
azureFile.shareName (string), обовʼязково
shareName — це назва розділу Azure
azureFile.readOnly (boolean)
readOnly — стандартне значення — false (запис/читання). Якщо тут встановлено true, то встановлюється параметр readOnly в VolumeMounts.
azureFile.secretNamespace (string)
secretNamespace — це простір імен Secret, що містить імʼя та ключ облікового запису Azure. Стандартно використовується той самий простір імен, що й у Podʼа.
cephfs (CephFSPersistentVolumeSource)
cephFS представляє монтування Ceph FS на хості, яке спільно використовується з життєвим циклом Pod.
Представляє монтування файлової системи Ceph, яка існує протягом життя Podʼа. Томи Cephfs не підтримують управління власниками або перепризначення міток SELinux.
cephfs.monitors ([]string), обовʼязково
Atomic: буде замінено під час злиття
monitors — це колекція моніторів Ceph. Докладніше: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.path (string)
path — необовʼязково: використовується як коренева тека для монтування, стандартно — "/"
cephfs.readOnly (boolean)
readOnly — необовʼязково: стандартне значення — false (запис/читання). Якщо встановлено true, встановлюється параметр readOnly в VolumeMounts. Докладніше: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.secretFile (string)
secretFile — необовʼязково: secretFile — це шлях до секретів для користувача, стандартне значення — /etc/ceph/user.secret. Докладніше: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.secretRef (SecretReference)
secretRef — необовʼязково: secretRef — посилання на Secret для автентифікації користувача. Стандартне значення порожнє. Докладніше: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
SecretReference представляє посилання на Secret. Воно має достатньо інформації для отримання Secret в будь-якому просторі імен.
cephfs.secretRef.name (string)
name — унікальне імʼя в межах простору імен для посилання на ресурс Secret.
cephfs.secretRef.namespace (string)
namespace — визначає простір імен, в межах якого імʼя Secret має бути унікальним.
cephfs.user (string)
user — необовʼязково: user — імʼя користувача rados, стандартне значення — admin. Докладніше: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cinder (CinderPersistentVolumeSource)
cinder представляє монтування та підключення тому Cinder на машині хосту kubelet. Докладніше: https://examples.k8s.io/mysql-cinder-pd/README.md
Представляє ресурс тому Cinder в OpenStack. Том Cinder повинен існувати перед монтуванням у контейнер. Том також повинен знаходитися в тому ж регіоні, що й kubelet. Томи Cinder підтримують управління власниками та перепризначення міток SELinux.
cinder.volumeID (string), обовʼязково
volumeID — використовується для ідентифікації тому в Cinder. Докладніше: https://examples.k8s.io/mysql-cinder-pd/README.md
cinder.fsType (string)
fsType — тип файлової системи для монтування. Має бути підтримуваним типом файлової системи операційної системи хосту. Приклади: "ext4", "xfs", "ntfs". Передбачається "ext4", якщо не вказано інше. Докладніше: https://examples.k8s.io/mysql-cinder-pd/README.md
cinder.readOnly (boolean)
readOnly — необовʼязково: стандартне значення — false (запис/читання). Якщо встановлено true, параметр readOnly встановлюється в VolumeMounts. Докладніше: https://examples.k8s.io/mysql-cinder-pd/README.md
cinder.secretRef (SecretReference)
secretRef — необовʼязково: посилання на обʼєкт Secret, що містить параметри для підключення до OpenStack.
SecretReference представляє посилання на Secret. Воно має достатньо інформації для отримання Secret в будь-якому просторі імен.
cinder.secretRef.name (string)
name —- унікальне імʼя в межах простору імен для посилання на ресурс Secret.
cinder.secretRef.namespace (string)
namespace — визначає простір імен, в межах якого імʼя Secret має бути унікальним.
csi (CSIPersistentVolumeSource)
csi представляє сховище, яке обробляється зовнішнім драйвером CSI (функція Beta).
Представляє сховище, яке керується зовнішнім драйвером CSI для сховища (функція Beta)
csi.driver (string), обовʼязково
driver — це назва драйвера, який використовується для цього тому. Обовʼязково.
csi.volumeHandle (string), обовʼязково
volumeHandle — це унікальне імʼя тому, яке повертається драйвером CSI для посилання на том у всіх наступних викликах. Обовʼязково.
csi.controllerExpandSecretRef (SecretReference)
controllerExpandSecretRef — посилання на обʼєкт Secret, що містить чутливу інформацію для передачі до драйвера CSI для виконання виклику CSI ControllerExpandVolume. Це поле є необовʼязковим і може бути порожнім, якщо Secret не потрібен. Якщо обʼєкт Secret містить більше ніж один ключ, всі ключі передаються.
SecretReference представляє посилання на Secret. Воно має достатньо інформації для отримання Secret в будь-якому просторі імен.
csi.controllerExpandSecretRef.name (string)
name — унікальне імʼя в межах простору імен для посилання на ресурс Secret.
csi.controllerExpandSecretRef.namespace (string)
namespace — визначає простір імен, в межах якого імʼя Secret має бути унікальним.
csi.controllerPublishSecretRef (SecretReference)
controllerPublishSecretRef — посилання на обʼєкт Secret, що містить чутливу інформацію для передачі до драйвера CSI для виконання викликів CSI ControllerPublishVolume і ControllerUnpublishVolume. Це поле є необовʼязковим і може бути порожнім, якщо секрет не потрібен. Якщо обʼєкт Secret містить більше ніж один ключ, всі ключі передаються.
SecretReference представляє посилання на Secret. Воно має достатньо інформації для отримання Secret в будь-якому просторі імен.
csi.controllerPublishSecretRef.name (string)
name — унікальне імʼя в межах простору імен для посилання на ресурс Secret.
csi.controllerPublishSecretRef.namespace (string)
namespace — визначає простір імен, в межах якого імʼя Secret має бути унікальним.
csi.fsType (string)
fsType — тип файлової системи для монтування. Має бути підтримуваним типом файлової системи операційної системи хосту. Наприклад, "ext4", "xfs", "ntfs".
csi.nodeExpandSecretRef (SecretReference)
nodeExpandSecretRef — посилання на обʼєкт Secret, що містить чутливу інформацію для передачі до драйвера CSI для виконання виклику CSI NodeExpandVolume. Це поле є необовʼязковим і може бути опущеним, якщо Secret не потрібен. Якщо обʼєкт Secret містить більше ніж один ключ, всі ключі передаються.
SecretReference представляє посилання на Secret. Воно має достатньо інформації для отримання Secret в будь-якому просторі імен.
csi.nodeExpandSecretRef.name (string)
name — унікальне імʼя в межах простору імен для посилання на ресурс Secret.
csi.nodeExpandSecretRef.namespace (string)
namespace — визначає простір імен, в межах якого імʼя Secret має бути унікальним.
csi.nodePublishSecretRef (SecretReference)
nodePublishSecretRef — посилання на обʼєкт, Secret що містить чутливу інформацію для передачі до драйвера CSI для виконання викликів CSI NodePublishVolume і NodeUnpublishVolume. Це поле є необовʼязковим і може бути порожнім, якщо Secret не потрібен. Якщо обʼєкт Secret містить більше ніж один ключ, всі ключі передаються.
SecretReference представляє посилання на Secret. Воно має достатньо інформації для отримання Secret в будь-якому просторі імен.
csi.nodePublishSecretRef.name (string)
name — унікальне імʼя в межах простору імен для посилання на ресурс Secret.
csi.nodePublishSecretRef.namespace (string)
namespace — визначає простір імен, в межах якого імʼя Secret має бути унікальним.
csi.nodeStageSecretRef (SecretReference)
nodeStageSecretRef — посилання на обʼєкт Secret, що містить чутливу інформацію для передачі до драйвера CSI для виконання викликів CSI NodeStageVolume і NodeUnstageVolume. Це поле є необовʼязковим і може бути порожнім, якщо Secret не потрібен. Якщо обʼєкт Secret містить більше ніж один ключ, всі ключі передаються.
SecretReference представляє посилання на Secret. Воно має достатньо інформації для отримання Secret в будь-якому просторі імен.
csi.nodeStageSecretRef.name (string)
name — унікальне імʼя в межах простору імен для посилання на ресурс Secret.
csi.nodeStageSecretRef.namespace (string)
namespace — визначає простір імен, в межах якого імʼя Secret має бути унікальним.
csi.readOnly (boolean)
readOnly — значення для передачі до ControllerPublishVolumeRequest. Стандартне значення — false (запис/читання).
csi.volumeAttributes (map[string]string)
volumeAttributes — атрибути тому для публікації.
fc (FCVolumeSource)
fc представляє ресурс Fibre Channel, який приєднується до хост-машини kubelet і потім експонується для використання в Podʼі.
Представляє том Fibre Channel. Томи Fibre Channel можуть бути приєднані лише як для читання/запису один раз. Томи Fibre Channel підтримують управління власниками та перепризначення міток SELinux.
fc.fsType (string)
fsType — це тип файлової системи для монтування. Має бути підтримуваним типом файлової системи операційної системи хосту. Наприклад, "ext4", "xfs", "ntfs". Передбачається "ext4", якщо не вказано інше.
fc.lun (int32)
lun — необовʼязково: номер lun.
fc.readOnly (boolean)
readOnly — необовʼязково: стандартне значення — false (запис/читання). Якщо встановлено true, встановлюється параметр readOnly у VolumeMounts.
fc.targetWWNs ([]string)
Atomic: буде замінено під час злиття
targetWWNs — необовʼязково: FC вказує всесвітні імена (worldwide names, WWN).
fc.wwids ([]string)
Atomic: буде замінено під час злиття
wwids — необовʼязково: світові ідентифікатори тома FC (WWID). Можна встановити або wwids, або комбінацію targetWWNs і lun, але не одночасно.
flexVolume (FlexPersistentVolumeSource)
flexVolume представляє загальний ресурс тома, який надається/приєднується за допомогою втулка.
FlexPersistentVolumeSource представляє загальний постійний том, який надається/приєднується за допомогою втулка.
flexVolume.driver (string), обовʼязково
driver — це імʼя драйвера, яке використовується для цього тома.
flexVolume.fsType (string)
fsType — тип файлової системи для монтування. Має бути підтримуваним типом файлової системи операційної системи хоста. Наприклад, "ext4", "xfs", "ntfs". Тип стандартної файлової системи залежить від сценарію FlexVolume.
flexVolume.options (map[string]string)
options — необовʼязково: це поле містить додаткові параметри команди, якщо такі є.
flexVolume.readOnly (boolean)
readOnly — необовʼязково: стандартне значення — false (запис/читання). Якщо встановлено true, встановлюється параметр readOnly у VolumeMounts.
flexVolume.secretRef (SecretReference)
secretRef — необовʼязково: посилання на обʼєкт Secret, що містить чутливу інформацію для передачі в сценарії втулка. Це поле може бути порожнім, якщо обʼєкт Secret не вказано. Якщо Secret містить більше одного секрету, всі вони передаються в сценарії втулка.
SecretReference представляє посилання на Secret. Воно має достатньо інформації для отримання Secret в будь-якому просторі імен.
flexVolume.secretRef.name (string)
name — унікальне імʼя в межах простору імен для посилання на ресурс Secret.
flexVolume.secretRef.namespace (string)
namespace — визначає простір імен, в межах якого імʼя Secret має бути унікальним.
flocker (FlockerVolumeSource)
flocker представляє том Flocker, приєднаний до хост-машини kubelet і експонований для використання в Podʼі. Це залежить від того, чи працює служба керування Flocker.
Представляє том Flocker, приєднаний агентом Flocker. Повинно бути встановлено одне і тільки одне значення datasetName або datasetUUID. Томи Flocker не підтримують управління власниками або перевизначення міток SELinux.
flocker.datasetName (string)
datasetName — імʼя набору даних, збережене як метадані -> імʼя для набору даних Flocker. Вважається застарілим.
flocker.datasetUUID (string)
datasetUUID — UUID набору даних. Це унікальний ідентифікатор набору даних Flocker.
gcePersistentDisk (GCEPersistentDiskVolumeSource)
gcePersistentDisk представляє ресурс GCE Disk, який приєднується до хост-машини kubelet і потім експонується для використання в Podʼі. Впроваджується адміністратором. Докладніше: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
Представляє постійний диск в Google Compute Engine.
Диск GCE повинен існувати перед монтуванням в контейнер. Диск також повинен знаходитися в тому ж проєкті та зоні GCE, що і kubelet. Диск GCE може бути приєднаний тільки як для читання/запису один раз або тільки для читання багато разів. Диски GCE підтримують управління власниками та перепризначення міток SELinux.
gcePersistentDisk.pdName (string), обовʼязково
pdName — унікальне імʼя ресурсу PD в GCE. Використовується для ідентифікації диска в GCE.
gcePersistentDisk.fsType (string)
fsType — тип файлової системи тома, який ви хочете монтувати. Переконайтеся, що тип файлової системи підтримується операційною системою хосту. Приклади: "ext4", "xfs", "ntfs". Передбачається "ext4", якщо не вказано інше.
gcePersistentDisk.partition (int32)
partition — розділ у томі, який ви хочете монтувати. Якщо пропущено,стандартно монтується за іменем тома. Приклади: Для тома /dev/sda1 ви вказуєте розділ як "1". Аналогічно, розділ тома для /dev/sda - "0" (або ви можете залишити властивість пустою).
gcePersistentDisk.readOnly (boolean)
readOnly — тут встановлює параметр readOnly у VolumeMounts. Стандартне значення — false.
glusterfs (GlusterfsPersistentVolumeSource)
glusterfs представляє том Glusterfs, який приєднується до хосту і експонується для використання в Podʼі. Впроваджується адміністратором. Докладніше: https://examples.k8s.io/volumes/glusterfs/README.md
Представляє монтування Glusterfs, яке існує протягом життєвого циклу Podʼа. Томи Glusterfs не підтримують управління власниками або перепризначенн міток SELinux.
glusterfs.endpoints (string), обовʼязково
endpoints — імʼя точки доступу, яке вказує на топологію Glusterfs. Детальніше: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
glusterfs.path (string), обовʼязково
path — шлях до тому Glusterfs. Детальніше: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
glusterfs.endpointsNamespace (string)
endpointsNamespace — простір імен, який містить точку доступу Glusterfs. Якщо це поле порожнє, EndpointNamespace стандартно встановлюється в той же простір імен, що й звʼязаний PVC. Детальніше: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
glusterfs.readOnly (boolean)
readOnly — встановлює, чи має монтуватися том Glusterfs тільки для читання. Стандартне значення — false. Детальніше: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
iscsi (ISCSIPersistentVolumeSource)
iscsi представляє ресурс ISCSI Disk, який приєднується до хост-машини kubelet і потім експонується для використання в Podʼі. Надається адміністратором.
ISCSIPersistentVolumeSource представляє диск ISCSI. ISCSI томи можуть бути монтувані тільки один раз для читання/запису. ISCSI томи підтримують управління власниками та перепризначення міток SELinux.
iscsi.iqn (string), обовʼязково
iqn - кваліфіковане імʼя ISCSI цілі.
iscsi.lun (int32), обовʼязково
lun — номер LUN цілі ISCSI.
iscsi.targetPortal (string), обовʼязково
targetPortal — це цільовий портал ISCSI. Портал може бути IP або ip_addr:port, якщо порт відрізняється від типового (зазвичай TCP порти 860 та 3260).
iscsi.chapAuthDiscovery (boolean)
chapAuthDiscovery — визначає підтримку автентифікації CHAP для виявлення ISCSI.
iscsi.chapAuthSession (boolean)
chapAuthSession - визначає підтримку автентифікації CHAP сесії ISCSI.
iscsi.fsType (string)
fsType — тип файлової системи тому, який ви хочете монтувати. Переконайтеся, що тип файлової системи підтримується операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Передбачається "ext4", якщо не вказано інше. Детальніше: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
iscsi.initiatorName (string)
initiatorName — це спеціальне імʼя ініціатора ISCSI. Якщо initiatorName вказано одночасно з iscsiInterface, буде створено новий інтерфейс ISCSI <target portal>:<volume name> для зʼєднання.
iscsi.iscsiInterface (string)
iscsiInterface — це імʼя інтерфейсу, яке використовує транспорт ISCSI. Стандартне значення — 'default' (tcp).
iscsi.portals ([]string)
Atomic: буде замінено під час злиття
portals — список цільових порталів ISCSI. Портал може бути IP або ip_addr:port, якщо порт відрізняється від типового (зазвичай TCP порти 860 та 3260).
iscsi.readOnly (boolean)
readOnly — встановлює параметр readOnly у VolumeMounts. Стандартне значення — false.
iscsi.secretRef (SecretReference)
secretRef — це обʼєкт Secret для автентифікації цілі ISCSI та ініціатора.
SecretReference представляє посилання на Secret. Воно має достатньо інформації для отримання Secret в будь-якому просторі імен.
iscsi.secretRef.name (string)
name — унікальне імʼя в межах простору імен для посилання на ресурс Secret.
iscsi.secretRef.namespace (string)
namespace — визначає простір імен, в межах якого імʼя Secret має бути унікальним.
nfs (NFSVolumeSource)
nfs представляє монтування NFS на хості. Впроваджується адміністратором. Докладніше: https://kubernetes.io/docs/concepts/storage/volumes#nfs
Представляє монтування NFS, яке існує протягом життєвого циклу Podʼа. NFS томи не підтримують управління власниками або перевизначення міток SELinux.
nfs.path (string), обовʼязково
path — шлях, який експортується сервером NFS. Детальніше: https://kubernetes.io/docs/concepts/storage/volumes#nfs
nfs.server (string), обовʼязково
server — імʼя хоста або IP-адреса сервера NFS. Детальніше: https://kubernetes.io/docs/concepts/storage/volumes#nfs
nfs.readOnly (boolean)
readOnly — встановлює, чи має монтуватися NFS експорт тільки для читання. Стандартне значення — false. Детальніше: https://kubernetes.io/docs/concepts/storage/volumes#nfs
photonPersistentDisk (PhotonPersistentDiskVolumeSource)
photonPersistentDisk представляє постійний диск Photon Controller, приєднаний і змонтований на хост-машині kubelet
Представляє ресурс постійного диска Photon Controller.
photonPersistentDisk.pdID (string), обовʼязково
pdID — це ідентифікатор, який ідентифікує постійний диск Photon Controller.
photonPersistentDisk.fsType (string)
fsType — тип файлової системи для монтування. Повинен бути типом файлової системи, який підтримується операційною системою хоста. Наприклад: "ext4", "xfs", "ntfs". Передбачається "ext4", якщо не вказано інше.
portworxVolume (PortworxVolumeSource)
portworxVolume представляє ресурс тома Portworx, приєднаний і змонтований на хост-машині kubelet
Представляє ресурс тома Portworx.
portworxVolume.volumeID (string), обовʼязково
volumeID — унікально ідентифікує том Portworx.
portworxVolume.fsType (string)
fsType — тип файлової системи для монтування. Повинен бути типом файлової системи, який підтримується операційною системою хоста. Наприклад: "ext4", "xfs". Передбачається "ext4", якщо не вказано інше.
portworxVolume.readOnly (boolean)
readOnly — стандартне значення — false (читання/запис). Якщо встановлено в true, тоді монтування тома буде тільки для читання.
quobyte (QuobyteVolumeSource)
quobyte представляє монтування Quobyte на хості, яке триває протягом життєвого циклу Podʼа.
Представляє монтування Quobyte, яке триває протягом життєвого циклу Podʼа. Quobyte томи не підтримують управління власниками або перевизначення міток SELinux.
quobyte.registry (string), обовʼязково
registry — представляє один або кілька сервісів реєстрації Quobyte, вказаних як рядок у форматі host:port (кілька записів розділяються комами), які діють як центральний реєстр для томів.
quobyte.volume (string), обовʼязково
volume — рядок, який посилається на вже створений том Quobyte за імʼям.
quobyte.group (string)
group — група для відображення доступу до тома. Стандартно група не встановлюється.
quobyte.readOnly (boolean)
readOnly — встановлює, чи має монтуватися том Quobyte тільки для читання. Стандартне значення — false.
quobyte.tenant (string)
tenant — власник вказаного тома Quobyte в Backend. Використовується з динамічно створеними томами Quobyte, значення встановлюється втулком.
quobyte.user (string)
user — користувач для відображення доступу до тома. Стандартно використовується користувач serivceaccount.
rbd (RBDPersistentVolumeSource)
rbd представляє монтування Rados Block Device на хості, яке існує протягом життєвого циклу Podʼа. Детальніше: https://examples.k8s.io/volumes/rbd/README.md
Представляє монтування Rados Block Device, яке існує протягом життєвого циклу Podʼа. RBD томи підтримують управління власниками та перевизначення міток SELinux.
rbd.image (string), обовʼязково
image — імʼя образу rados. Детальніше: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.monitors ([]string), обовʼязково
Atomic: буде замінено під час злиття
monitors — колекція моніторів Ceph. Детальніше: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.fsType (string)
fsType — тип файлової системи тому, який ви хочете змонтувати. Переконайтеся, що тип файлової системи підтримується операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Передбачається "ext4", якщо не вказано інше. Детальніше: https://kubernetes.io/docs/concepts/storage/volumes#rbd
rbd.keyring (string)
keyring — шлях до ключів для RBDUser. Стандартне значення — /etc/ceph/keyring. Детальніше: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.pool (string)
pool — імʼя rados pool. Стандартне значення — rbd. Детальніше: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.readOnly (boolean)
readOnly — встановлює, що монтування RBD тому буде тільки для читання. Стандартне значення — false. Детальніше: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.secretRef (SecretReference)
secretRef - імʼя Secret автентифікації для RBDUser. Якщо вказано, перевизначає keyring. Стандартне значення — nil. Детальніше: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
SecretReference представляє посилання на Secret. Воно містить достатньо інформації для отримання Secret в будь-якому просторі імен
rbd.secretRef.name (string)
name — унікальне імʼя ресурсу Secret в просторі імен.
rbd.secretRef.namespace (string)
namespace — визначає простір імен, в якому імʼя Secret повинно бути унікальним.
rbd.user (string)
user — імʼя користувача rados. Стандартне значення — admin. Детальніше: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
scaleIO (ScaleIOPersistentVolumeSource)
scaleIO представляє постійний том ScaleIO, приєднаний і змонтований на вузлах Kubernetes.
ScaleIOPersistentVolumeSource представляє постійний том ScaleIO
scaleIO.gateway (string), обовʼязково
gateway — адреса хосту шлюза API ScaleIO.
scaleIO.secretRef (SecretReference), обовʼязково
secretRef — посилання на Secret для користувача ScaleIO та іншої чутливої інформації. Якщо це не надано, операція входу буде невдалою.
SecretReference представляє посилання на Secret. Воно містить достатньо інформації для отримання Secret в будь-якому просторі імен
scaleIO.secretRef.name (string)
name — унікальне імʼя ресурсу Secret в просторі імен.
scaleIO.secretRef.namespace (string)
namespace — визначає простір імен, в якому імʼя Secret повинно бути унікальним.
scaleIO.system (string), обовʼязково
system — назва системи зберігання, як налаштовано в ScaleIO.
scaleIO.fsType (string)
fsType — тип файлової системи для монтування. Повинен бути типом файлової системи, який підтримується операційною системою хоста. Наприклад: "ext4", "xfs", "ntfs". Стандартне значення — "xfs".
scaleIO.protectionDomain (string)
protectionDomain — назва домену захисту ScaleIO для налаштованого зберігання.
scaleIO.readOnly (boolean)
readOnly — стандартне значення — false (читання/запис). Якщо встановлено в true, тоді монтування тому буде тільки для читання.
scaleIO.sslEnabled (boolean)
sslEnabled — прапорець для увімкнення/вимкнення SSL-звʼязку з Gateway, стандартне значення — false.
scaleIO.storageMode (string)
storageMode — вказує, чи повинно бути зберігання для тому ThickProvisioned або ThinProvisioned. Стандартне значення — ThinProvisioned.
scaleIO.storagePool (string)
storagePool — Pool зберігання ScaleIO, повʼязаний з доменом захисту.
scaleIO.volumeName (string)
volumeName — імʼя вже створеного тому в системі ScaleIO, повʼязаного з цим джерелом тому.
storageos (StorageOSPersistentVolumeSource)
storageOS представляє том StorageOS, який приєднаний до вузла kubelet і змонтований у Pod. Детальніше: https://examples.k8s.io/volumes/storageos/README.md
Представляє постійний том ресурсу StorageOS.
storageos.fsType (string)
fsType — тип файлової системи для монтування. Повинен бути типом файлової системи, який підтримується операційною системою хоста. Наприклад: "ext4", "xfs", "ntfs". Передбачається "ext4", якщо не вказано інше.
storageos.readOnly (boolean)
readOnly — стандартне значення — false (читання/запис). Якщо встановлено в true, то монтування тому буде тільки для читання.
storageos.secretRef (ObjectReference)
secretRef - вказує на Secret, який використовується для отримання облікових даних API StorageOS. Якщо не вказано, спробує використати стандартне значення.
storageos.volumeName (string)
volumeName — імʼя тому StorageOS, зорозуміле людині. Імена томів унікальні лише в межах простору імен.
storageos.volumeNamespace (string)
volumeNamespace — визначає область тому в межах StorageOS. Якщо не вказано, використовується простір імен Podʼа. Це дозволяє відображати простори імен Kubernetes в межах StorageOS для більш тісної інтеграції. Встановіть VolumeName на будь-яке імʼя для заміни стандартної поведінки. Встановіть у "default", якщо ви не використовуєте простори імен в межах StorageOS. Простори імен, які не існують заздалегідь в межах StorageOS, будуть створені.
vsphereVolume (VsphereVirtualDiskVolumeSource)
vsphereVolume представляє том vSphere, який приєднаний і змонтований на вузлах kubelet.
Представляє ресурс тому vSphere.
vsphereVolume.volumePath (string), обовʼязково
volumePath — шлях, який ідентифікує том vSphere vmdk.
vsphereVolume.fsType (string)
fsType — тип файлової системи для монтування. Повинен бути типом файлової системи, який підтримується операційною системою хоста. Наприклад: "ext4", "xfs", "ntfs". Передбачається "ext4", якщо не вказано інше.
vsphereVolume.storagePolicyID (string)
storagePolicyID — ідентифікатор профілю управління політикою зберігання (SPBM), повʼязаний з іменем політики зберігання.
vsphereVolume.storagePolicyName (string)
storagePolicyName — імʼя профілю управління політикою зберігання (SPBM).
PersistentVolumeStatus
PersistentVolumeStatus — це поточний стан постійного тома.
lastPhaseTransitionTime (Time)
lastPhaseTransitionTime — це час, коли фаза переходила з однієї у іншу, і автоматично скидається до поточного часу кожного разу при переході фази тома.
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
message (string)
message — повідомлення, зрозуміле людині, яке вказує деталі щодо причини, чому том знаходиться у цьому стані.
phase (string)
phase — вказує, чи доступний том, звʼязаний із заявкою або звільнений від заявки. Докладніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
reason (string)
reason — короткий рядок у CamelCase, який описує будь-яку помилку і призначений для машинного аналізу і зручного відображення у CLI.
PersistentVolumeList
PersistentVolumeList — це список елементів PersistentVolume.
apiVersion: v1
kind: PersistentVolumeList
metadata (ListMeta)
Стандартні метадані списку. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
items ([]PersistentVolume), обовʼязково
items — це список постійних томів. Докладніше: https://kubernetes.io/docs/concepts/storage/persistent-volumes
Операції
get
отримати вказаний PersistentVolume
HTTP запит
GET /api/v1/persistentvolumes/{name}
Параметри
name (в шляху): string, обовʼязково
назва PersistentVolume
pretty (в запиті): string
Відповідь
200 (PersistentVolume): OK
401: Unauthorized
get
отримати статус вказаного PersistentVolume
HTTP запит
GET /api/v1/persistentvolumes/{name}/status
Параметри
name (в шляху): string, обовʼязково
назва PersistentVolume
pretty (в запиті): string
Відповідь
200 (PersistentVolume): OK
401: Unauthorized
list
перелік або перегляд обʼєктів PersistentVolume
HTTP запит
GET /api/v1/persistentvolumes
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (PersistentVolumeList): OK
401: Unauthorized
create
створення PersistentVolume
HTTP запит
POST /api/v1/persistentvolumes
Параметри
body: PersistentVolume, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (PersistentVolume): OK
201 (PersistentVolume): Created
202 (PersistentVolume): Accepted
401: Unauthorized
update
заміна вказаного PersistentVolume
HTTP запит
PUT /api/v1/persistentvolumes/{name}
Параметри
name (в шляху): string, обовʼязково
назва PersistentVolume
body: PersistentVolume, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (PersistentVolume): OK
201 (PersistentVolume): Created
401: Unauthorized
update
заміна статусу вказаного PersistentVolume
HTTP запит
PUT /api/v1/persistentvolumes/{name}/status
Параметри
name (в шляху): string, обовʼязково
назва PersistentVolume
body: PersistentVolume, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (PersistentVolume): OK
201 (PersistentVolume): Created
401: Unauthorized
patch
часткове оновлення вказаного PersistentVolume
HTTP запит
PATCH /api/v1/persistentvolumes/{name}
Параметри
name (в шляху): string, обовʼязково
назва PersistentVolume
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (PersistentVolume): OK
201 (PersistentVolume): Created
401: Unauthorized
patch
часткове оновлення статусу вказаного PersistentVolume
HTTP запит
PATCH /api/v1/persistentvolumes/{name}/status
Параметри
name (в шляху): string, обовʼязково
назва PersistentVolume
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (PersistentVolume): OK
201 (PersistentVolume): Created
401: Unauthorized
delete
видалення PersistentVolume
HTTP запит
DELETE /api/v1/persistentvolumes/{name}
Параметри
name (в шляху): string, обовʼязково
назва PersistentVolume
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (PersistentVolume): OK
202 (PersistentVolume): Accepted
401: Unauthorized
deletecollection
видалення колекції PersistentVolume
HTTP запит
DELETE /api/v1/persistentvolumes
Параметри
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
8 - StorageClass
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
StorageClass
StorageClass
описує параметри класу сховища, для якого PersistentVolumes
можна динамічно виділяти.
Класи сховищ не мають простору імен; імʼя класу сховища згідно з etcd знаходиться в ObjectMeta.Name.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata (ObjectMeta)
Стандартні метадані обʼєкта. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
provisioner (string), обовʼязково
provisioner вказує на тип провізора.
allowVolumeExpansion (boolean)
allowVolumeExpansion показує, чи дозволяє клас зберігання розширення тому.
allowedTopologies ([]TopologySelectorTerm)
Atomic: буде замінено під час обʼєднання
allowedTopologies обмежує топологію вузлів, де томи можуть динамічно виділятися. Кожен втулок тому визначає свої власні специфікації топології. Порожній список TopologySelectorTerm означає, що обмежень по топології немає. Це поле враховується лише серверами, які включають функцію VolumeScheduling.
Термін селектора топології представляє результат запитів до міток. Нульовий або порожній термін селектора топології не відповідає жодному обʼєкту. Вимоги до них обʼєднуються за принципом AND. Він надає підмножину функціональності як NodeSelectorTerm. Це альфа-версія функції та в майбутньому вона може змінитися.
allowedTopologies.matchLabelExpressions ([]TopologySelectorLabelRequirement)
Atomic: буде замінено під час злиття
Список вимог до вибору топології за мітками.
Вимога вибору топології — це селектор, що відповідає заданій мітці. Це альфа-функція і може змінитися в майбутньому.
allowedTopologies.matchLabelExpressions.key (string), обовʼязково
Ключ мітки, до якого застосовується селектор.
allowedTopologies.matchLabelExpressions.values ([]string), обовʼязково
Atomic: буде замінено під час злиття
Масив рядкових значень. Одне значення повинно відповідати мітці для вибору. Кожен запис у Values поєднується оператором OR.
mountOptions ([]string)
Atomic: буде замінено під час злиття
mountOptions контролює параметри монтування для динамічно виділених PersistentVolumes цього класу зберігання. Наприклад, ["ro", "soft"]. Не перевіряється — монтування PVs просто не вдасться, якщо один з них недійсний.
parameters (map[string]string)
parameters містить параметри для провайдера, який повинен створити томи цього класу зберігання.
reclaimPolicy (string)
reclaimPolicy контролює політику відновлення для динамічно виділених PersistentVolumes цього класу зберігання. Стандартне значення — Delete.
volumeBindingMode (string)
volumeBindingMode вказує, як PersistentVolumeClaims повинні виділятися та звʼязуватися. Якщо не встановлено, використовується VolumeBindingImmediate. Це поле враховується лише серверами, які включають функцію VolumeScheduling.
StorageClassList
StorageClassList — це колекція класів зберігання.
apiVersion: storage.k8s.io/v1
kind: StorageClassList
metadata (ListMeta)
Стандартні метадані списку. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]StorageClass), обовʼязкове
items — це список StorageClasses.
Операції
get
отримати вказаний StorageClass
HTTP запит
GET /apis/storage.k8s.io/v1/storageclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя StorageClass
pretty (в запиті): string
Відповідь
200 (StorageClass): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу StorageClass
HTTP запит
GET /apis/storage.k8s.io/v1/storageclasses
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (StorageClassList): OK
401: Unauthorized
create
створення StorageClass
HTTP запит
POST /apis/storage.k8s.io/v1/storageclasses
Параметри
body: StorageClass, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (StorageClass): OK
201 (StorageClass): Created
202 (StorageClass): Accepted
401: Unauthorized
update
заміна вказаного StorageClass
HTTP запит
PUT /apis/storage.k8s.io/v1/storageclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя StorageClass
body: StorageClass, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (StorageClass): OK
201 (StorageClass): Created
401: Unauthorized
patch
часткове оновлення вказаного StorageClass
HTTP запит
PATCH /apis/storage.k8s.io/v1/storageclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя StorageClass
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (StorageClass): OK
201 (StorageClass): Created
401: Unauthorized
delete
видалення StorageClass
HTTP запит
DELETE /apis/storage.k8s.io/v1/storageclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя StorageClass
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (StorageClass): OK
202 (StorageClass): Accepted
401: Unauthorized
deletecollection
видалення колекції StorageClass
HTTP запит
DELETE /apis/storage.k8s.io/v1/storageclasses
Параметри
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
9 - StorageVersionMigration v1alpha1
apiVersion: storagemigration.k8s.io/v1alpha1
import "k8s.io/api/storagemigration/v1alpha1"
StorageVersionMigration
StorageVersionMigration представляє міграцію збережених даних до останньої версії сховища.
apiVersion: storagemigration.k8s.io/v1alpha1
kind: StorageVersionMigration
metadata (ObjectMeta)
Стандартні метадані обʼєкта. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (StorageVersionMigrationSpec)
Специфікація міграції.
status (StorageVersionMigrationStatus)
Статус міграції.
StorageVersionMigrationSpec
Специфіка міграції версії сховища.
continueToken (string)
Токен, який використовується в опціях списку, щоб отримати наступну порцію обʼєктів для міграції. Коли .status.conditions вказує на те, що міграція виконується, користувачі можуть використовувати цей токен, щоб перевірити хід міграції.
resource (GroupVersionResource), обовʼязково
Ресурс, який мігрує. Мігратор надсилає запити до точки доступу, що обслуговує ресурс. Незмінний.
Імена групи, версії та ресурсу.
resource.group (string)
Імʼя групи.
resource.resource (string)
Імʼя ресурсу.
resource.version (string)
Імʼя версії.
StorageVersionMigrationStatus
Статус міграції версії сховища.
conditions ([]MigrationCondition)
Patch strategy: обʼєднання за ключем
name
Map: унікальні значення ключа name будуть збережені під час злиття
Останні доступні спостереження за поточним станом міграції.
Описує стан міграції на певний момент.
conditions.status (string), обовʼязково
Статус стану, одни з: True, False, Unknown.
conditions.type (string), обовʼязково
Тип стану.
conditions.lastUpdateTime (Time)
Час, коли булі остання зміна стану.
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
conditions.message (string)
message містить зрозуміле для людини повідомлення з деталями про стан зміни.
conditions.reason (string)
reason умови останньої зміни.
resourceVersion (string)
ResourceVersion для порівняння з кешем GC для виконання міграції. Це поточна версія ресурсу для даної групи, версії та ресурсу, коли kube-controller-manager вперше спостерігає цей ресурс StorageVersionMigration.
StorageVersionMigrationList
StorageVersionMigrationList — колекція міграцій версій сховища.
apiVersion: storagemigration.k8s.io/v1alpha1
kind: StorageVersionMigrationList
metadata (ListMeta)
Стандартний перелік метаданих. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]StorageVersionMigration), обовʼязково
Patch strategy: обʼєднання за ключем
name
Map: унікальні значення ключа name будуть збережені під час злиття
Items — список міграцій StorageVersionMigration
Операції
get
отримати вказаний StorageVersionMigration
HTTP запит
GET /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя StorageVersionMigration
pretty (в запиті): string
Відповідь
200 (StorageVersionMigration): OK
401: Unauthorized
get
отримати статус вказаного StorageVersionMigration
HTTP запит
GET /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя StorageVersionMigration
pretty (в запиті): string
Відповідь
200 (StorageVersionMigration): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу StorageVersionMigration
HTTP запит
GET /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (StorageVersionMigrationList): OK
401: Unauthorized
create
створення StorageVersionMigration
HTTP запит
POST /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations
Параметри
body: StorageVersionMigration, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (StorageVersionMigration): OK
201 (StorageVersionMigration): Created
202 (StorageVersionMigration): Accepted
401: Unauthorized
update
заміна вказаного StorageVersionMigration
HTTP запит
PUT /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя StorageVersionMigration
body: StorageVersionMigration, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (StorageVersionMigration): OK
201 (StorageVersionMigration): Created
401: Unauthorized
update
заміна статусу вказаного StorageVersionMigration
HTTP запит
PUT /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя StorageVersionMigration
body: StorageVersionMigration, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (StorageVersionMigration): OK
201 (StorageVersionMigration): Created
401: Unauthorized
patch
часткове оновлення вказаного StorageVersionMigration
HTTP запит
PATCH /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя StorageVersionMigration
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (StorageVersionMigration): OK
201 (StorageVersionMigration): Created
401: Unauthorized
patch
частковеоновлення статусу вказаного StorageVersionMigration
HTTP запит
PATCH /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя StorageVersionMigration
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (StorageVersionMigration): OK
201 (StorageVersionMigration): Created
401: Unauthorized
delete
видалення StorageVersionMigration
HTTP запит
DELETE /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя StorageVersionMigration
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
видалення колекції StorageVersionMigration
HTTP запит
DELETE /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations
Параметри
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
10 - Volume
import "k8s.io/api/core/v1"
Volume
Volume становить собою іменований том у Pod, до якого може мати доступ будь-який контейнер у Podʼі.
name (string), обовʼязково
Назва тома. Повинна бути DNS_LABEL і унікальна в межах Pod. Додаткова інформація: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Відкриті постійні томи
persistentVolumeClaim (PersistentVolumeClaimVolumeSource)
persistentVolumeClaimVolumeSource — це посилання на PersistentVolumeClaim у тому ж просторі імен. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
PersistentVolumeClaimVolumeSource посилається на PVC користувача в тому ж просторі імен. Цей том знаходить привʼязаний PV та монтує цей том для Podʼа. PersistentVolumeClaimVolumeSource, фактично, є обгорткою навколо іншого типу тому, який належить комусь іншому (системі).
persistentVolumeClaim.claimName (string), обовʼязково
claimName — це назва PersistentVolumeClaim у тому ж просторі імен, що й у Podʼа, який використовує цей том. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
persistentVolumeClaim.readOnly (boolean)
readOnly — Встановлює значення ReadOnly у VolumeMounts. Стандартне значення — false.
Проєкції
configMap (ConfigMapVolumeSource)
configMap — представляє configMap, який повинен заповнити цей том.
Вміст поля Data цільового ConfigMap буде представлений у томі у вигляді файлів, використовуючи ключі у полі Data як назви файлів, якщо елемент items заповнений конкретними зіставленнями ключів зі шляхами. Томи ConfigMap підтримують керування власністю та перепризначення міток SELinux.
configMap.name (string)
Name — назва обʼєкта ConfigMap, повʼязаного з томом. Це поле є обов\язковим для заповнення, але для забезпечення зворотної сумісності дозволяється залишати його порожнім. Екземпляри цього типу з порожнім значенням тут майже напевно є помилковими. Додаткова інформація: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
configMap.optional (boolean)
optional — вказує, чи ConfigMap або його ключі мають бути визначені.
configMap.defaultMode (int32)
defaultMode є необовʼязковим параметром: біти режимів, які використовуються для встановлення стандартних дозволів на створені файли. Має бути вісімковим значенням між 0000 та 0777 або десятковим значенням між 0 та 511. У форматі YAML можна використовувати як вісімкові, так і десяткові значення, у форматі JSON потрібно використовувати десяткові значення для режиму бітів. Стандартне значення — 0644. Теки всередині шляху не підпадають під це налаштування. Це може суперечити іншим параметрам, які впливають на режим файлу, наприклад, fsGroup, і результат може бути встановлення інших бітів режимів.
configMap.items ([]KeyToPath)
Atomic: буде замінено під час злиття
Якщо не вказано items, кожна пара ключ-значення у полі Data зазначеного ConfigMap буде перенесена в том як файл, імʼя якого — це ключ, а вміст — значення. Якщо вказано, перераховані ключі будуть перенесені у вказані шляхи, а невказані ключі відсутні. Якщо вказано ключ, якого немає у ConfigMap, налаштування тому завершиться помилкою, якщо він не позначений як необовʼязковий. Шляхи повинні бути відносними та не можуть містити шлях '..' або починатися з '..'.
secret (SecretVolumeSource)
secret — представляє secret, який повинен заповнити цей том. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#secret
Вміст поля Data цільового Secret буде представлений у томі у вигляді файлів, використовуючи ключі у полі Data як назви файлів. Томи Secret підтримують керування власністю та перепризначення міток SELinux.*
secret.secretName (string)
secretName — назва обʼєкта Secret в просторі імен Podʼа, що буде використовуватись. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#secret
secret.optional (boolean)
optional — вказує, чи Secret або його ключі мають бути визначені.
secret.defaultMode (int32)
defaultMode є необовʼязковим параметром: біти режимів, які використовуються для встановлення стандартних дозволів на створені файли. Має бути вісімковим значенням між 0000 та 0777 або десятковим значенням між 0 та 511. У форматі YAML можна використовувати як вісімкові, так і десяткові значення, у форматі JSON потрібно використовувати десяткові значення для режиму бітів. Стандартне значення — 0644. Теки всередині шляху не підпадають під це налаштування. Це може суперечити іншим параметрам, які впливають на режим файлу, наприклад, fsGroup, і результат може бути встановлення інших бітів режимів.
secret.items ([]KeyToPath)
Atomic: буде замінено під час злиття
Якщо не вказано items, кожна пара ключ-значення у полі Data зазначеного Secret буде перенесена в том як файл, імʼя якого — це ключ, а вміст — значення. Якщо вказано, перераховані ключі будуть перенесені у вказані шляхи, а невказані ключі відсутні. Якщо вказано ключ, якого немає у Secret, налаштування тому завершиться помилкою, якщо він не позначений як необовʼязковий. Шляхи повинні бути відносними та не можуть містити шлях '..' або починатися з '..'.
downwardAPI (DownwardAPIVolumeSource)
downwardAPI — представляє downward API Podʼа, який повинен заповнити цей том.
DownwardAPIVolumeSource представляє том з вмістом з downward API. Томи downward API підтримують керування власністю та перепризначення міток SELinux.
downwardAPI.defaultMode (int32)
Опційно: біти режимів, які використовуються для встановлення стандартних дозволів на створені файли. Має бути вісімковим значенням між 0000 та 0777 або десятковим значенням між 0 та 511. У форматі YAML можна використовувати як вісімкові, так і десяткові значення, у форматі JSON потрібно використовувати десяткові значення для режиму бітів. Стандартне значення — 0644. Теки всередині шляху не підпадають під це налаштування. Це може суперечити іншим параметрам, які впливають на режим файлу, наприклад, fsGroup, і результат може бути встановлення інших бітів режимів.
downwardAPI.items ([]DownwardAPIVolumeFile)
Atomic: буде замінено під час злиття
Items – список файлів тому downward API
projected (ProjectedVolumeSource)
projected — елементи для ресурсів all-in-one Secret, ConfigMap, downward API
Представляє джерело projected тому
projected.defaultMode (int32)
defaultMode є бітами режимів, які використовуються для встановлення стандартних дозволів на створені файли. Має бути вісімковим значенням між 0000 та 0777 або десятковим значенням між 0 та 511. У форматі YAML можна використовувати як вісімкові, так і десяткові значення, у форматі JSON потрібно використовувати десяткові значення для режиму бітів. Стандартне значення — 0644. Теки всередині шляху не підпадають під це налаштування. Це може суперечити іншим параметрам, які впливають на режим файлу, наприклад, fsGroup, і результат може бути встановлення інших бітів режимів.
projected.sources ([]VolumeProjection)
Atomic: буде замінено під час злиття
sources — список джерел, які мають бути спроєцьовані. Кожен запис у цьому списку працює з одним джерелом.
Проєкція, яка може бути спроєцьована разом з іншими підтримуваними типами томів. Тільки одне з цих полів повинно бути встановлене.
projected.sources.clusterTrustBundle (ClusterTrustBundleProjection)
ClusterTrustBundle
дозволяє podʼу отримати доступ до поля.spec.trustBundle
обʼєктів ClusterTrustBundle через файл з автоматичним оновленням.Альфа-функція, контрольована через функціональну можливість ClusterTrustBundleProjection.
Обʼєкти ClusterTrustBundle можуть бути вибрані за іменем або за комбінацією імені підписувача і селектора міток.
Kubelet виконує агресивну нормалізацію вмісту PEM, записаного у файлову систему podʼа. Езотеричні функції PEM, такі як міжблочні коментарі та заголовки блоків, видаляються. Сертифікати дедуплікуються. Порядок сертифікатів у файлі довільний, і Kubelet може змінювати його з часом.
ClusterTrustBundleProjection описує, як вибрати набір обʼєктів ClusterTrustBundle і спроєктувати їх вміст у файлову систему подів.
projected.sources.clusterTrustBundle.path (string), обовʼязково
Відносний шлях від кореня тому для запису пакунка.
projected.sources.clusterTrustBundle.labelSelector (LabelSelector)
Вибирає всі ClusterTrustBundles, які відповідають цьому селектору міток. Має ефект, тільки якщо задано signerName. Взаємовиключне з name. Якщо не задано, інтерпретується як «не збігається ні з чим». Якщо задано, але пусте, інтерпретується як «збігається з усім».
projected.sources.clusterTrustBundle.name (string)
Вибирає один ClusterTrustBundle за назвою об'єкта. Взаємовиключне з signerName та labelSelector.
projected.sources.clusterTrustBundle.optional (boolean)
Якщо
true
, не блокувати запуск podʼа, якщо посилання на ClusterTrustBundle(и) недоступні. Якщо використовується імʼя, тоді дозволено відсутність вказаного ClusterTrustBundle. Якщо використовуєтьсяsignerName
, тоді комбінаціяsignerName
іlabelSelector
може не відповідати жодному ClusterTrustBundle.projected.sources.clusterTrustBundle.signerName (string)
Виберає усі ClusterTrustBundles, які відповідають цьому імені підписувача. Взаємовиключні з name. Вміст усіх вибраних ClusterTrustBundles буде уніфіковано та дедупліковано.
projected.sources.configMap (ConfigMapProjection)
configMap — інформація про дані ConfigMap, які мають бути спроєцьовані
*Адаптує ConfigMap для projected тому
Вміст поля Data цільового ConfigMap буде представлений у projected томі у вигляді файлів, використовуючи ключі у полі даних як назви файлів, якщо елемент items заповнений конкретними зіставленнями ключів зі шляхами. Зверніть увагу, що це ідентично джерелу тому ConfigMap без стандартного режиму.*
projected.sources.configMap.name (string)
Name — назва обʼєкта на який посилаються. Це поле є обов'язковим для заповнення, але для забезпечення зворотної сумісності дозволяється залишати його порожнім. Екземпляри цього типу з порожнім значенням тут майже напевно є помилковими. Додаткова інформація: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
projected.sources.configMap.optional (boolean)
optional — вказує, чи ConfigMap або його ключі мають бути визначені.
projected.sources.configMap.items ([]KeyToPath)
Atomic: буде замінено під час злиття
Якщо не вказано items, кожна пара ключ-значення у полі Data зазначеного ConfigMap буде перенесена в том як файл, імʼя якого — це ключ, а вміст — значення. Якщо вказано, перераховані ключі будуть перенесені у вказані шляхи, а невказані ключі відсутні. Якщо вказано ключ, якого немає у ConfigMap, налаштування тому завершиться помилкою, якщо він не позначений як необовʼязковий. Шляхи повинні бути відносними та не можуть містити шлях '..' або починатися з '..'.
projected.sources.downwardAPI (DownwardAPIProjection)
downwardAPI — інформація про дані downward API, які мають бути спроєцьовані
Представляє інформацію downward API для проєцювання у projected том. Зверніть увагу, що це ідентично джерелу тому downward API без стандартного режиму.
projected.sources.downwardAPI.items ([]DownwardAPIVolumeFile)
Atomic: буде замінено під час злиття
Items — список файлів DownwardAPIVolume
projected.sources.secret (SecretProjection)
secret – інформація про дані Secret, які мають бути спроєцьовані
*Адаптує Secret для projected тому.
Вміст поля Data цільового Secret буде представлений у projected томі у вигляді файлів, використовуючи ключі у полі Data як назви файлів. Зверніть увагу, що це ідентично джерелу тому Secret без стандартного режиму.*
projected.sources.secret.name (string)
Name — назва обʼєкта на який посилаються. Це поле є обов'язковим для заповнення, але для забезпечення зворотної сумісності дозволяється залишати його порожнім. Екземпляри цього типу з порожнім значенням тут майже напевно є помилковими. Додаткова інформація: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
projected.sources.secret.optional (boolean)
optional — вказує, чи Secret або його ключі мають бути визначені.
projected.sources.secret.items ([]KeyToPath)
Atomic: буде замінено під час злиття
Якщо не вказано items, кожна пара ключ-значення у полі Data зазначеного Secret буде перенесена в том як файл, імʼя якого — це ключ, а вміст — значення. Якщо вказано, перераховані ключі будуть перенесені у вказані шляхи, а невказані ключі відсутні. Якщо вказано ключ, якого немає у Secret, налаштування тому завершиться помилкою, якщо він не позначений як необовʼязковий. Шляхи повинні бути відносними та не можуть містити шлях '..' або починатися з '..'.
projected.sources.serviceAccountToken (ServiceAccountTokenProjection)
serviceAccountToken — інформація про дані serviceAccountToken, які мають бути спроєцьовані
ServiceAccountTokenProjection представляє projected том токена службового облікового запису. Ця проєкція може бути використана для вставки токена службового облікового запису в файлову систему Podʼа для використання з API (сервера API Kubernetes або іншого).
projected.sources.serviceAccountToken.path (string), обовʼязково
path — це шлях відносно точки монтування файлу для проєцювання токена.
projected.sources.serviceAccountToken.audience (string)
audience — це призначений отримувач токена. Отримувач токена повинен ідентифікувати себе із вказаним ідентифікатором в аудиторії токена або, в іншому випадку, повинен відхилити токен. Стандартно audience — це ідентифікатор apiserver.
projected.sources.serviceAccountToken.expirationSeconds (int64)
expirationSeconds — це запитаний термін дійсності токена службового облікового запису. В міру наближення до закінчення терміну дії токена, втулок томів kubelet буде працювати у режимі проактивної ротації токена службового облікового запису. Kubelet буде спробувати почати ротацію токена, якщо токен старше 80 відсотків його часу життя або якщо токен старше 24 годин. Стандартне значення — 1 година і повинно бути принаймні 10 хвилин.
Локальні / Тимчасові теки
emptyDir (EmptyDirVolumeSource)
emptyDir представляє тимчасову теку, яка існує впродовж часу існування Podʼа. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
Представляє порожню теку для Podʼа. Томи порожніх тек підтримують управління власністю та перепризначення міток SELinux.
emptyDir.medium (string)
medium представляє тип носія для зберігання, який повинен підтримувати цю теку. Стандартне значення — "" (порожній рядок), що означає використання стандартного носія вузла. Повинно бути порожнім рядком (стандартно) або "Memory". Додаткова інформація: Посилання на документацію Kubernetes про EmptyDir
emptyDir.sizeLimit (Quantity)
sizeLimit — це загальна кількість локальної памʼяті, необхідна для цього тому EmptyDir. Обмеження розміру також застосовується для носія типу "Memory". Максимальне використання на носії типу "Memory" для EmptyDir буде мінімальним значенням між зазначеним тут SizeLimit та сумою обмежень памʼяті всіх контейнерів у Podʼі. Стандартне значення — nil, що означає, що обмеження не визначено. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
hostPath (HostPathVolumeSource)
hostPath представляє попередньо наявний файл або теку на хост-машині, який безпосередньо доступний контейнеру. Це зазвичай використовується для системних агентів або інших привілейованих речей, яким дозволено бачити хост-машину. Більшість контейнерів НЕ потребуватимуть цього. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
Представляє шлях хосту зіставлений з Pod. Томи hostPath не підтримують управління власністю або перевизначення міток SELinux.
hostPath.path (string), обовʼязково
path — це шлях до теки на хості. Якщо шлях є символічним посиланням, воно буде слідувати за посиланням до реального шляху. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
hostPath.type (string)
type для тому HostPath. Стандартне значення — "". Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
Постійні томи
awsElasticBlockStore (AWSElasticBlockStoreVolumeSource)
awsElasticBlockStore представляє ресурс AWS Disk, який підключений до хост-машини kubelet і потім доступний Podʼу. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
*Представляє ресурс Persistent Disk в AWS.
Диск AWS EBS повинен існувати перед підключенням до контейнера. Диск також повинен знаходитися в тій же зоні AWS, що і kubelet. Диск AWS EBS може бути змонтований з приавами читання/запис тільки один раз. Томи AWS EBS підтримують управління власністю та перепризначення міток SELinux.*
awsElasticBlockStore.volumeID (string), обовʼязково
volumeID — це унікальний ідентифікатор постійного дискового ресурсу в AWS (том Amazon EBS). Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
awsElasticBlockStore.fsType (string)
fsType — це тип файлової системи тому, який ви хочете змонтувати. Порада: Переконайтеся, що тип файлової системи підтримується операційною системою хосту. Приклади: "ext4", "xfs", "ntfs". Якщо не вказано, неявно припускається, що це "ext4". Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
awsElasticBlockStore.partition (int32)
partition — це розділ у томі, який ви хочете змонтувати. Якщо він не вказаний, то стандартно монтується за назвою тому. Приклади: Для тому
/dev/sda1
ви вказуєте розділ "1". Аналогічно, розділ тому для/dev/sda
є "0" (або ви можете залишити властивість порожньою).awsElasticBlockStore.readOnly (boolean)
readOnly — значення true примусово встановлює налаштування readOnly у VolumeMounts. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
azureDisk (AzureDiskVolumeSource)
azureDisk представляє монтування Azure Data Disk на хості та привʼязує монтування до Podʼа.
AzureDisk представляє монтування Azure Data Disk на хості та привʼязане монтування до Podʼа.
azureDisk.diskName (string), обовʼязкове
diskName — це імʼя диска даних у blob-сховищі
azureDisk.diskURI (string), обовʼязкове
diskURI — це URI диска даних у blob-сховищі
azureDisk.cachingMode (string)
cachingMode — це режим кешування хосту: None, Read Only, Read Write.
azureDisk.fsType (string)
fsType — це тип файлової системи для монтування. Повинен бути типом файлової системи, підтримуваним операційною системою хосту. Наприклад, "ext4", "xfs", "ntfs". Неявно припускається, що це "ext4", якщо не вказано інше.
azureDisk.kind (string)
Очікувані значення kind: Shared (кілька blob-дисків на один обліковий запис зберігання), Dedicated (один blob-диск на обліковий запис зберігання), Managed (azure managed data disk, тільки в керованому наборі доступності). Стандартне значення — Shared.
azureDisk.readOnly (boolean)
readOnly стандартне значення — false (читання/запис). Значення readOnly тут примусово встановлює налаштування ReadOnly у VolumeMounts.
azureFile (AzureFileVolumeSource)
azureFile представляє монтування служби файлів Azure на хості та привʼязане монтування до Podʼа.
AzureFile представляє монтування служби файлів Azure на хості та привʼязане монтування до Podʼа.
azureFile.secretName (string), обовʼязкове
secretName — це імʼя секрету, що містить імʼя та ключ облікового запису Azure Storage.
azureFile.shareName (string), обовʼязкове
shareName — це імʼя розділу Azure.
azureFile.readOnly (boolean)
readOnly стандартне значення — false (читання/запис). Значення readOnly тут примусово встановлює налаштування ReadOnly у VolumeMounts.
cephfs (CephFSVolumeSource)
cephFS представляє монтування Ceph FS на хості, яке діє впродовж життєвого циклу Podʼа.
Представляє монтування файлової системи Ceph, яке діє впродовж життєвого циклу Podʼа. Томи cephfs не підтримують управління власністю або перепризначення міток SELinux.
cephfs.monitors ([]string), обовʼязкове
Atomic: буде замінено під час злиття
monitors є обовʼязковим: Monitors — це колекція моніторів Ceph. Додаткова інформація: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.path (string)
path є необовʼязковим: Використовується як корінь монтування, а не як повне дерево Ceph. Стандартне значення — /
cephfs.readOnly (boolean)
readOnly є необовʼязковим: Стандартне значення — false (читання/запис). Значення readOnly тут примусово встановлює налаштування ReadOnly у VolumeMounts. Додаткова інформація: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.secretFile (string)
secretFile є необовʼязковим: SecretFile — це шлях до вʼязки ключів користувача. Стандартне значення — /etc/ceph/user.secret. Додаткова інформація: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.secretRef (LocalObjectReference)
secretRef є необовʼязковим: SecretRef — це посилання на секрет автентифікації для користувача. Стандартне значення — порожнє. Додаткова інформація: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.user (string)
user є необовʼязковим: User — це імʼя користувача rados. Стандартне значення — admin. Додаткова інформація: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cinder (CinderVolumeSource)
cinder представляє том Cinder, підключений і змонтований на хост-машині kubelet. Додаткова інформація: https://examples.k8s.io/mysql-cinder-pd/README.md
Представляє ресурс тому Cinder в Openstack. Том Cinder повинен існувати перед монтуванням до контейнера. Том також повинен знаходитися в тому ж регіоні, що і kubelet. Томи Cinder підтримують управління власністю та перепризначення міток SELinux.
cinder.volumeID (string), обовʼязкове
volumeID використовується для ідентифікації тому в Cinder. Додаткова інформація: https://examples.k8s.io/mysql-cinder-pd/README.md
cinder.fsType (string)
fsType — це тип файлової системи для монтування. Повинен бути типом файлової системи, підтримуваним операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Неявно припускається, що це "ext4", якщо не вказано інше. Додаткова інформація: https://examples.k8s.io/mysql-cinder-pd/README.md
cinder.readOnly (boolean)
readOnly стандартне значення — false (читання/запис). Значення readOnly тут примусово встановлює налаштування ReadOnly у VolumeMounts. Додаткова інформація: https://examples.k8s.io/mysql-cinder-pd/README.md
cinder.secretRef (LocalObjectReference)
secretRef є необовʼязковим: вказує на обʼєкт секрету, що містить параметри, які використовуються для підключення до OpenStack.
csi (CSIVolumeSource)
csi (Container Storage Interface) представляє ефемерне сховище, яке обробляється певними зовнішніми драйверами CSI (бета-функція).
Представляє джерело розташування тому для монтування, керованого зовнішнім драйвером CSI
csi.driver (string), обовʼязкове
driver — це імʼя драйвера CSI, який обробляє цей том. Проконсультуйтеся з адміністратором для отримання правильного імені, зареєстрованого в кластері.
csi.fsType (string)
fsType для монтування. Наприклад, "ext4", "xfs", "ntfs". Якщо не вказано, порожнє значення передається відповідному драйверу CSI, який визначить стандартну файлову систему.
csi.nodePublishSecretRef (LocalObjectReference)
nodePublishSecretRef є посиланням на обʼєкт секрету, що містить конфіденційну інформацію, яку потрібно передати драйверу CSI для завершення викликів CSI NodePublishVolume і NodeUnpublishVolume. Це поле є необовʼязковим і може бути порожнім, якщо секрет не потрібен. Якщо обʼєкт секрету містить більше одного секрету, всі посилання на секрети передаються.
csi.readOnly (boolean)
readOnly вказує на конфігурацію тільки для читання для тому. Стандартне значення — false (читання/запис).
csi.volumeAttributes (map[string]string)
volumeAttributes зберігає властивості, специфічні для драйвера, які передаються драйверу CSI. Проконсультуйтеся з документацією вашого драйвера для підтримуваних значень.
ephemeral (EphemeralVolumeSource)
ephemeral представляє том, який обробляється кластерним драйвером зберігання. Життєвий цикл тому привʼязаний до Podʼа, який його визначає — том буде створено перед запуском Podʼа і видалено після видалення Podʼа.
Використовуйте це, якщо: a) том потрібен лише під час роботи Podʼа, b) потрібні функції звичайних томів, такі як відновлення зі знімка або відстеження ємності, c) драйвер зберігання вказується через клас зберігання, і d) драйвер зберігання підтримує динамічне надання томів через PersistentVolumeClaim (див. EphemeralVolumeSource для отримання додаткової інформації про звʼязок між цим типом тому та PersistentVolumeClaim).
Використовуйте PersistentVolumeClaim або один з API, специфічних для постачальника, для томів, які зберігаються довше, ніж життєвий цикл окремого Podʼа.
Використовуйте CSI для легких локальних ефемерних томів, якщо драйвер CSI призначений для такого використання — див. документацію драйвера для отримання додаткової інформації.
Pod може одночасно використовувати як ефемерні томи, так і постійні томи.
Представляє ефемерний том, який обробляється звичайним драйвером зберігання.
ephemeral.volumeClaimTemplate (PersistentVolumeClaimTemplate)
Буде використовуватись для створення окремого PVC для надання тому. Pod, в якому вбудовано цей EphemeralVolumeSource, буде власником PVC, тобто PVC буде видалено разом з Podʼом. Назва PVC буде
<pod name>-<volume name>
, де<volume name>
— це назва з масивуPodSpec.Volumes
. Валідація Podʼа відхилить Pod, якщо обʼєднана назва не є дійсною для PVC (наприклад, занадто довга).Існуючий PVC з такою назвою, який не належить Podʼу, не буде використаний для Podʼа, щоб уникнути випадкового використання неповʼязаного тому. Запуск Podʼа буде заблокований до видалення неповʼязаного PVC. Якщо такий попередньо створений PVC призначений для використання Podʼом, PVC має бути оновлено з посиланням на власника Podʼа після створення Podʼа. Зазвичай це не повинно бути необхідним, але може бути корисним при ручному відновленні зламаного кластера.
Це поле є лише для читання, і Kubernetes не вноситиме змін до PVC після його створення.
Обовʼязкове, не може бути nil.
PersistentVolumeClaimTemplate використовується для створення обʼєктів PersistentVolumeClaim як частини EphemeralVolumeSource.
ephemeral.volumeClaimTemplate.spec (PersistentVolumeClaimSpec), обовʼязкове
Специфікація для PersistentVolumeClaim. Весь вміст копіюється без змін у PVC, який створюється з цього шаблону. Ті ж самі поля, що й у PersistentVolumeClaim, також дійсні тут.
ephemeral.volumeClaimTemplate.metadata (ObjectMeta)
Може містити мітки та анотації, які будуть скопійовані у PVC під час його створення. Інші поля не дозволені і будуть відхилені під час валідації.
fc (FCVolumeSource)
fc представляє ресурс Fibre Channel, що підключений до хост-машини kubelet і потім експонується для доступу у Podʼі.
Представляє том Fibre Channel. Томи Fibre Channel можуть монтуватися для запису/читання лише один раз. Томи Fibre Channel підтримують керування власністю та перепризначення міток SELinux.
fc.fsType (string)
fsType — це тип файлової системи для монтування. Має бути типом файлової системи, який підтримується операційною системою хоста. Наприклад, "ext4", "xfs", "ntfs". Неявно вважається "ext4", якщо не вказано інше.
fc.lun (int32)
lun є необовʼязковим: Номер LUN (логічної одиниці) цілі FC
fc.readOnly (boolean)
readOnly є необовʼязковим: Стандартне значення — false (читання/запис). Значення ReadOnly тут примусово встановить параметр ReadOnly у VolumeMounts.
fc.targetWWNs ([]string)
Atomic: буде замінено під час злиття
targetWWNs є необовʼязковими: FC звертається до всесвітніх імен (WWNs)
fc.wwids ([]string)
Atomic: буде замінено під час злиття
wwids є необовʼязковими: Всесвітні ідентифікатори томів FC (wwids). Або wwids, або комбінація targetWWNs і lun повинні бути встановлені, але не обидва одночасно.
flexVolume (FlexVolumeSource)
flexVolume представляє загальний ресурс тома, що створюється/підключається за допомогою втулка на основі exec.
FlexVolume представляє загальний ресурс тома, що створюється/підключається за допомогою втулка на основі exec.
flexVolume.driver (string), обовʼязково
driver — це назва драйвера, який використовується для цього тома.
flexVolume.fsType (string)
fsType — це тип файлової системи для монтування. Має бути тип файлової системи, який підтримується операційною системою хоста. Наприклад, "ext4", "xfs", "ntfs". Стандартний тип файлової системи залежить від скрипта FlexVolume.
flexVolume.options (map[string]string)
options є необовʼязковим: це поле містить додаткові командні параметри, якщо такі є.
flexVolume.readOnly (boolean)
readOnly є необовʼязковим: Стандартне значення — false (читання/запис). Значення ReadOnly тут примусово встановить параметр ReadOnly у VolumeMounts.
flexVolume.secretRef (LocalObjectReference)
secretRef є необовʼязковим: secretRef — це посилання на обʼєкт секрету, що містить конфіденційну інформацію для передачі у скрипти втулка. Воно може бути порожнім, якщо обʼєкт секрету не вказаний. Якщо обʼєкт секрету містить більше одного секрету, всі секрети передаються у скрипти втулка.
flocker (FlockerVolumeSource)
flocker представляє том Flocker, приєднаний до хост-машини kubelet. Залежить від роботи служби управління Flocker.
Представляє том Flocker, змонтований агентом Flocker. Повинно бути встановлено тільки щось одне з datasetName і datasetUUID. Томи Flocker не підтримують керування власністю або перепризначення міток SELinux.
flocker.datasetName (string)
datasetName — це назва набору даних, збереженого як метадані -> name на наборі даних для Flocker слід вважати застарілим
flocker.datasetUUID (string)
datasetUUID — це UUID набору даних. Це унікальний ідентифікатор набору даних Flocker.
gcePersistentDisk (GCEPersistentDiskVolumeSource)
gcePersistentDisk представляє ресурс диска GCE, який приєднаний до хост-машини kubelet і потім відкривається для доступу у Podʼі. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
*Представляє ресурс постійного диска в Google Compute Engine.
Для монтування до контейнера повинен існувати диск GCE PD. Диск також повинен знаходитися в тому ж проєкті GCE та зоні, що й kubelet. Диск GCE PD може бути змонтований лише один раз для читання/запису або багато разів для читання. Диски GCE PD підтримують керування власністю та перепризначення міток SELinux.*
gcePersistentDisk.pdName (string), обовʼязково
pdName — унікальна назва ресурсу PD в GCE. Використовується для ідентифікації диска в GCE. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
gcePersistentDisk.fsType (string)
fsType — тип файлової системи тома, який ви хочете змонтувати. Порада: Переконайтеся, що тип файлової системи підтримується операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Неявно вважається "ext4", якщо не вказано інше. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
gcePersistentDisk.partition (int32)
partition — це розділ у томі, який ви хочете змонтувати. Якщо пропущено, стандартно монтується за імʼям тома. Приклади: Для тому
/dev/sda1
ви вказуєте розділ як "1". Так само, розділ тому для/dev/sda
— "0" (або ви можете залишити властивість порожньою). Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdiskgcePersistentDisk.readOnly (boolean)
readOnly тут примусово встановить параметр ReadOnly у VolumeMounts. Стандартне значення — false. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
glusterfs (GlusterfsVolumeSource)
glusterfs представляє монтування Glusterfs на хості, яке діє впрожовж життєвого циклу Podʼа. Додаткова інформація: https://examples.k8s.io/volumes/glusterfs/README.md
Представляє монтування Glusterfs, яке діє впрожовж життєвого циклу Podʼа. Томи Glusterfs не підтримують керування власністю або перепризначення міток SELinux.
glusterfs.endpoints (string), обовʼязково
endpoints — це назва точки доступу, яка визначає топологію Glusterfs. Додаткова інформація: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
glusterfs.path (string), обовʼязково
path — це шлях тома Glusterfs. Додаткова інформація: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
glusterfs.readOnly (boolean)
readOnly тут примусово змусить монтувати том Glusterfs з правами тільки на читання. Стандартне значення — false. Додаткова інформація: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
iscsi (ISCSIVolumeSource)
iscsi представляє ресурс диска ISCSI, який приєднаний до хост-машини kubelet і потім експонується для доступу у Podʼі. Додаткова інформація: https://examples.k8s.io/volumes/iscsi/README.md
Представляє диск ISCSI. Томи ISCSI можуть бути змонтовані лише один раз для читання/запису. Томи ISCSI підтримують керування власністю та перепризначення міток SELinux.
iscsi.iqn (string), обовʼязково
iqn — це цільове Імʼя ISCSI Qualified Name.
iscsi.lun (int32), обовʼязково
lun представляє номер цільового LUN (логічної одиниці) ISCSI.
iscsi.targetPortal (string), обовʼязково
targetPortal — це цільовий портал ISCSI. Портал — це IP або ip_addr:порт, якщо порт відмінний від типового (зазвичай TCP-порти 860 і 3260).
iscsi.chapAuthDiscovery (boolean)
chapAuthDiscovery визначає, чи підтримується автентифікація CHAP для виявлення ISCSI
iscsi.chapAuthSession (boolean)
chapAuthSession визначає, чи підтримується сесійна автентифікація CHAP для ISCSI
iscsi.fsType (string)
fsType — це тип файлової системи тома, який ви хочете змонтувати. Порада: Переконайтеся, що тип файлової системи підтримується операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Неявно вважається "ext4", якщо не вказано інше. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
iscsi.initiatorName (string)
initiatorName — це власне Імʼя Ініціатора ISCSI. Якщо initiatorName вказаний одночасно з iscsiInterface, буде створено новий інтерфейс ISCSI <цільовий портал>:<імʼя тома> для підключення.
iscsi.iscsiInterface (string)
iscsiInterface — це імʼя інтерфейсу, який використовує транспорт ISCSI. Стандартне значення — 'default' (tcp).
iscsi.portals ([]string)
Atomic: буде замінено під час злиття
portals — це список цільових порталів ISCSI. Портал — це IP або ip_addr:порт, якщо порт відмінний від типового (зазвичай TCP-порти 860 і 3260).
iscsi.readOnly (boolean)
readOnly тут примусово встановить параметр ReadOnly у VolumeMounts. Стандартне значення — false.
iscsi.secretRef (LocalObjectReference)
secretRef — це Секрет CHAP для автентифікації цілі та ініціатора ISCSI.
image (ImageVolumeSource)
image
представляє обʼєкт OCI (образ контейнерна або артефакт), який завантажується та монтується на хост-машині kubelet. Том призначається під час запуску Podʼа в залежності від значенняPullPolicy
:- Always: kubelet завжди намагається завантажити посилання. Створення контейнера завершиться невдачею, якщо завантаження не вдасться.
- Never: kubelet ніколи не завантажує посилання і використовує лише локальний образ або артефакт. Створення контейнера завершиться невдачею, якщо посилання немає.
- IfNotPresent: kubelet завантажує посилання, якщо воно вже не присутнє на диску. Створення контейнера завершиться невдачею, якщо посилання немає, а завантаження не вдасться.
Том буде перепризначатись, якщо pod буде видалено перестворено, що означає, що новий віддалений контент стане доступним при перестворенні Podʼа. Невдача при визначенні або завантаженні образу під час запуску Podʼа блокуватиме запуск контейнерів і може додати значну затримку. У разі невдачі будуть виконані повторні спроби за допомогою стандартного часу зворотнього відліку для томів і про них буде повідомлено у полі
reason
іmessage
Podʼа.Типи обʼєктів, які можуть бути змонтовані цим томом, визначаються реалізацією серодовища виконання контейнерів на хост-машині і, як мінімум, повинні включати всі дійсні типи, підтримувані полем image контейнера. Обʼєкт OCI монтується в одну теку (
spec.containers[*].volumeMounts.mountPath
), обʼєднуючи шари маніфесту так само, як і для образів контейнерів. Том буде змонтований тільки для читання (ro) та міститиме файли, які не можна виконувати (noexec). Монтування субшляхів для контейнерів не підтримуються (spec.containers[*].volumeMounts.subpath
). Полеspec.securityContext.fsGroupChangePolicy
не впливає на цей тип тому.ImageVolumeSource представляє ресурс тома image.
image.pullPolicy (string)
Політика завантаження OCI об\єктів. Можливі значення:
- Always: kubelet завжди намагається завантажити посилання. Створення контейнера завершиться невдачею, якщо завантаження не вдасться.
- Never: kubelet ніколи не завантажує посилання і використовує лише локальний образ або артефакт. Створення контейнера завершиться невдачею, якщо посилання немає.
- IfNotPresent: kubelet завантажує посилання, якщо воно вже не присутнє на диску. Створення контейнера завершиться невдачею, якщо посилання немає, а завантаження не вдасться.
Стандартно використовується значення Always, якщо вказано тег
:latest
, або IfNotPresent в інших випадках.image.reference (string)
Обовʼязково: Посилання на образ або артефакт, що буде використовуватися. Працює так само, як і поле
pod.spec.containers[*].image
. Секрети для завантаження (pull secrets) будуть зібрані так само, як і для образу контейнера, за допомогою пошуку облікових даних вузла, секретів для завантаження образів у Service Account та секретів для завантаження образів у специфікації podʼа. Більше інформації: https://kubernetes.io/docs/concepts/containers/images.Це поле є необовʼязковим, щоб дозволити вищим рівням керування конфігурацією використовувати стандартне значення або перевизначати образи контейнерів у контролерах робочих навантажень, таких як Deployments та StatefulSets.
nfs (NFSVolumeSource)
nfs представляє монтування NFS на хості, яке діє впрожовж життєвого циклу Podʼа. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#nfs
Представляє монтування NFS, яке діє впрожовж життєвого циклу Podʼа. Томи NFS не підтримують керування власністю або перепризначення міток SELinux.
nfs.path (string), обовʼязково
path — це шлях, який експортується NFS-сервером. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#nfs
nfs.server (string), обовʼязково
server — це імʼя хоста або IP-адреса сервера NFS. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#nfs
nfs.readOnly (boolean)
readOnly тут примусово змусить експорт NFS монтувати з правами тільки на читання. Стандартне значення — false. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#nfs
photonPersistentDisk (PhotonPersistentDiskVolumeSource)
photonPersistentDisk представляє постійний диск PhotonController, приєднаний та змонтований на хост-машині kubelets.
Представляє ресурс постійного диска Photon Controller.
photonPersistentDisk.pdID (string), обовʼязково
pdID — це ідентифікатор, який ідентифікує постійний диск Photon Controller.
photonPersistentDisk.fsType (string)
fsType — це тип файлової системи для монтування. Має бути тип файлової системи, який підтримується операційною системою хоста. Наприклад, "ext4", "xfs", "ntfs". Неявно вважається "ext4", якщо не вказано інше.
portworxVolume (PortworxVolumeSource)
portworxVolume представляє том Portworx, приєднаний та змонтований на хост-машині kubelets.
PortworxVolumeSource представляє ресурс тома Portworx.
portworxVolume.volumeID (string), обовʼязково
volumeID унікально ідентифікує том Portworx.
portworxVolume.fsType (string)
fsType представляє тип файлової системи для монтування. Має бути тип файлової системи, який підтримується операційною системою хоста. Наприклад, "ext4", "xfs". Неявно вважається "ext4", якщо не вказано інше.
portworxVolume.readOnly (boolean)
readOnly стандартне значення — false (читання/запис). Встановлення readOnly тут примусить встановити параметр ReadOnly у VolumeMounts.
quobyte (QuobyteVolumeSource)
quobyte представляє монтування Quobyte на хості, яке діє впродовж життєвого циклу Podʼа.
Представляє монтування Quobyte, яке діє впродовж життєвого циклу Podʼа. Томи Quobyte не підтримують керування власністю або перепризначення міток SELinux.
quobyte.registry (string), обовʼязково
registry представляє один або кілька служб реєстру Quobyte, вказаних як рядок у вигляді пари host:port (декілька записів розділяються комами), який діє як центральний реєстр для томів.
quobyte.volume (string), обовʼязково
volume — це рядок, який посилається на вже створений том Quobyte за імʼям.
quobyte.group (string)
group — група для відображення доступу до тома. Стандартне знечення — без групи.
quobyte.readOnly (boolean)
readOnly тут примусово змусить монтування тома Quobyte з правами тільки на читання. Стандартне значення — false.
quobyte.tenant (string)
tenant, який володіє вказаним томом Quobyte в Backend. Використовується з динамічно створюваними томами Quobyte, значення встановлюється втулком.
quobyte.user (string)
user — користувач для зіставлення (map) доступу до тома. Стандартне знечення — користувач serivceaccount.
rbd (RBDVolumeSource)
rbd представляє монтування блочного пристрою Rados на хості, яке діє впродовж життєвого циклу Podʼа. Додаткова інформація: https://examples.k8s.io/volumes/rbd/README.md
Представляє монтування блочного пристрою Rados, яке діє впродовж життєвого циклу Podʼа. Томи RBD підтримують керування власністю та перепризначення міток SELinux.
rbd.image (string), обовʼязково
image — це імʼя образу Rados. Додаткова інформація: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.monitors ([]string), обовʼязково
Atomic: буде замінено під час злиття
monitors — це колекція моніторів Ceph. Додаткова інформація: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.fsType (string)
fsType — це тип файлової системи тома, який ви хочете змонтувати. Порада: Переконайтеся, що тип файлової системи підтримується операційною системою хоста. Приклади: "ext4", "xfs", "ntfs". Неявно вважається "ext4", якщо не вказано інше. Додаткова інформація: https://kubernetes.io/docs/concepts/storage/volumes#rbd
rbd.keyring (string)
keyring — це шлях до вʼязки ключів користувача RBDUser. Стандартне значення — /etc/ceph/keyring. Додаткова інформація: htts://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.pool (string)
pool — це імʼя пулу Rados. Стандартне значення — rbd. Додаткова інформація: https://exampes.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.readOnly (boolean)
readOnly тут примусово встановить параметр ReadOnly у VolumeMounts. Стандартне значення — false. Додаткова інформація: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.secretRef (LocalObjectReference)
secretRef — це імʼя автентифікаційного секрету для користувача RBDUser. Якщо вказано, перевизначає keyring. Стандартне значення — nil. Додаткова інформація: https://exampes.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.user (string)
user — це імʼя користувача Rados. Стандартне значення — admin. Додаткова інформація: https://exampes.k8s.io/volumes/rbd/README.md#how-to-use-it
scaleIO (ScaleIOVolumeSource)
scaleIO представляє постійний том ScaleIO, приєднаний та змонтований на вузлах Kubernetes.
ScaleIOVolumeSource представляє постійний том ScaleIO
scaleIO.gateway (string), обовʼязково
gateway — це адреса хоста шлюзу API ScaleIO.
scaleIO.secretRef (LocalObjectReference), обовʼязково
secretRef посилається на секрет для користувача ScaleIO та іншої конфіденційної інформації. Якщо це не надано, операція входу не вдасться.
scaleIO.system (string), обовʼязково
system — це імʼя системи зберігання, налаштоване в ScaleIO.
scaleIO.fsType (string)
fsType — це тип файлової системи для монтування. Має бути тип файлової системи, який підтримується операційною системою хоста. Наприклад, "ext4", "xfs", "ntfs". Стандартне значення — "xfs".
scaleIO.protectionDomain (string)
protectionDomain — це імʼя ScaleIO Protection Domain для налаштованого зберігання.
scaleIO.readOnly (boolean)
readOnly стандартне значення — false (читання/запис). Встановлення readOnly тут примусить встановити параметр ReadOnly у VolumeMounts.
scaleIO.sslEnabled (boolean)
sslEnabled — прапорець, що ввімкнує/вимикає SSL-звʼязок з шлюзом, станддартне значення — false
scaleIO.storageMode (string)
storageMode вказує, чи повинно бути зберігання для тому ThickProvisioned чи ThinProvisioned. Стандартне значення — ThinProvisioned.
scaleIO.storagePool (string)
storagePool — це пул зберігання ScaleIO, повʼязаний з доменом захисту.
scaleIO.volumeName (string)
volumeName — це імʼя тому, вже створеного в системі ScaleIO, який повʼязаний з цим джерелом тому.
storageos (StorageOSVolumeSource)
storageos представляє том StorageOS, приєднаний та змонтований на вузлах Kubernetes.
Представляє постійний ресурс тому StorageOS.
storageos.fsType (string)
fsType — це тип файлової системи для монтування. Має бути тип файлової системи, який підтримується операційною системою хоста. Наприклад, "ext4", "xfs", "ntfs". Неявно вважається "ext4", якщо не вказано інше.
storageos.readOnly (boolean)
readOnly стандартне значення — false (читання/запис). Встановлення readOnly тут примусить встановити параметр ReadOnly у VolumeMounts.
storageos.secretRef (LocalObjectReference)
secretRef вказує секрет для отримання облікових даних API StorageOS. Якщо не вказано, будуть спробовані стандартні значення.
storageos.volumeName (string)
volumeName — це людино-читане імʼя тому StorageOS. Імена томів є унікальними лише в межах простору імен.
storageos.volumeNamespace (string)
volumeNamespace вказує том простору імен в межах StorageOS. Якщо простір імен не вказано, тоді буде використано простір імен Pod. Це дозволяє дублювати простори імен Kubernetes у StorageOS для більш тісної інтеграції. Встановіть VolumeName на будь-яке імʼя для заміни стандартної поведінки. Встановіть на "default", якщо ви не використовуєте простори імен у StorageOS. Простори імен, які не існують заздалегідь у StorageOS, будуть створені.
vsphereVolume (VsphereVirtualDiskVolumeSource)
vsphereVolume представляє том vSphere, приєднаний та змонтований на вузлах kubelet.
Представляє ресурс тому vSphere.
vsphereVolume.volumePath (string), обовʼязково
volumePath — це шлях, який ідентифікує том vmdk vSphere.
vsphereVolume.fsType (string)
fsType — це тип файлової системи для монтування. Має бути тип файлової системи, який підтримується операційною системою хоста. Наприклад, "ext4", "xfs", "ntfs". Неявно вважається "ext4", якщо не вказано інше.
vsphereVolume.storagePolicyID (string)
storagePolicyID — це ідентифікатор профілю управління політикою зберігання (SPBM), повʼязаний з іменем StoragePolicyName.
vsphereVolume.storagePolicyName (string)
storagePolicyName — це імʼя профілю управління політикою зберігання (SPBM).
Застаріле
gitRepo (GitRepoVolumeSource)
gitRepo представляє репозиторій git на певному рівні ревізії. Застаріло: GitRepo застаріло. Для створення контейнера з репозиторієм git підключіть EmptyDir до InitContainer, який клонує репо за допомогою git, а потім підключіть EmptyDir до контейнера Pod.
*Представляє том, який заповнений вмістом репозиторію git. Томи репозиторію git не підтримують управління власниками. Томи репозиторію git підтримують перепризначення міток SELinux.
Застаріло: GitRepo застаріло. Для створення контейнера з репозиторієм git підключіть EmptyDir до InitContainer, який клонує репо за допомогою git, а потім підключіть EmptyDir до контейнера Pod.*
gitRepo.repository (string), обовʼязково
repository — це URL
gitRepo.directory (string)
directory — це назва цільової теки. Не повинен містити або починатися з '..'. Якщо '.' надано, тека тому буде репозиторієм git. В іншому випадку, якщо вказано, том буде містити репозиторій git у підтеці з вказаною назвою.
gitRepo.revision (string)
revision — це хеш коміту для вказаної ревізії.
DownwardAPIVolumeFile
DownwardAPIVolumeFile представляє інформацію для створення файлу, що містить поле pod.
path (string), обовʼязково
Обовʼязково: path — це відносний шлях до файлу, який буде створено. Не повинен бути абсолютним або містити шлях "..". Має бути закодований у кодуванні utf-8. Перший елемент відносного шляху не повинен починатися з "..".
fieldRef (ObjectFieldSelector)
Обовʼязково: Вибирає поле pod: підтримуються лише анотації, мітки, імʼя, uid та простір імен.
mode (int32)
Опціонально: біти режиму, які використовуються для встановлення дозволів на цей файл, повинні бути вісімковим значенням від 0000 до 0777 або десятковим значенням від 0 до 511. У YAML приймаються як вісімкові, так і десяткові значення, у JSON потрібні десяткові значення для бітів режиму. Якщо не вказано, буде використано стандартне значення для тому. Це може конфліктувати з іншими параметрами, що впливають на режим файлу, наприклад, fsGroup, і результат може бути іншим набором бітів режиму.
resourceFieldRef (ResourceFieldSelector)
Вибирає ресурс контейнера: наразі підтримуються лише обмеження та запити ресурсів (limits.cpu, limits.memory, requests.cpu та requests.memory).
KeyToPath
Зіставляє ключ зі шляхом в томі.
key (string), обовʼязково
key — це ключ, який потрібно проєцювати.
path (string), обовʼязково
path — це відносний шлях файлу, який слід прикріпити до ключа. Не може бути абсолютним шляхом. Не може містити елемента шляху '..'. Не може починатися з рядка '..'.
mode (int32)
mode — опціонально: біти режиму, які використовуються для встановлення дозволів на цей файл. Має бути вісімковим значенням між 0000 та 0777 або десятковим значенням між 0 та 511. У YAML приймаються як вісімкові, так і десяткові значення, у JSON для бітів режиму потрібні десяткові значення. Якщо не вказано, буде використано стнадартне значення для тому. Це може конфліктувати з іншими параметрами, що впливають на режим файлу, такими як fsGroup, і результат може бути іншим набором бітів режиму.
11 - VolumeAttachment
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
VolumeAttachment
VolumeAttachment фіксує намір приєднати або відʼєднати вказаний том до/від вказаного вузла.
Обʼєкти VolumeAttachment не належать до просторів імен.
apiVersion: storage.k8s.io/v1
kind: VolumeAttachment
metadata (ObjectMeta)
Стандартні метадані обʼєкта. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (VolumeAttachmentSpec), обовʼязково
spec представляє специфікацію бажаної поведінки при приєднанні/відʼєднанні тому. Заповнюється системою Kubernetes.
status (VolumeAttachmentStatus)
status представляє статус запиту VolumeAttachment. Заповнюється сутністю, що завершує операцію приєднання або відʼєднання, тобто external-attacher.
VolumeAttachmentSpec
VolumeAttachmentSpec — це специфікація запиту на приєднання тому.
attacher (string), обовʼязково
attacher вказує назву драйвера тому, який МАЄ обробити цей запит. Це назва, яку повертає GetPluginName().
nodeName (string), обовʼязково
nodeName представляє вузол, до якого повинен бути приєднаний том.
source (VolumeAttachmentSource), обовʼязково
source представляє том, який повинен бути приєднаний.
VolumeAttachmentSource представляє том, який повинен бути приєднаний. Зараз лише PersistenVolumes можуть бути приєднані за допомогою зовнішнього attacherʼa, у майбутньому ми можемо дозволити також inline томи в Podʼах. Може бути встановлений лише один елемент.
source.inlineVolumeSpec (PersistentVolumeSpec)
inlineVolumeSpec містить всю необхідну інформацію для приєднання persistent volume, визначеного VolumeSource Podʼа. Це поле заповнюється лише для функції CSIMigration. Воно містить перетворені поля з VolumeSource Podʼа до PersistentVolumeSpec. Це поле є на рівні beta і враховується лише серверами, які включили функцію CSIMigration.
source.persistentVolumeName (string)
persistentVolumeName представляє імʼя persistent volume для приєднання.
VolumeAttachmentStatus
VolumeAttachmentStatus — це статус запиту на приєднання тому.
attached (boolean), обовʼязково
attached вказує, що том успішно приєднаний. Це поле має бути встановлено лише сутністю, яка завершує операцію приєднання, тобто external-attacher.
attachError (VolumeError)
attachError представляє останню помилку, яка виникла під час операції приєднання, якщо така була. Це поле має бути встановлено лише сутністю, яка завершує операцію приєднання, тобто external-attacher.
VolumeError фіксує помилку, яка виникла під час операції з томом.
attachError.message (string)
message представляє помилку, яка виникла під час операції приєднання або відʼєднання. Цей рядок може бути доданий в лог, тож він не повинен містити конфіденційної інформації.
attachError.time (Time)
time представляє час, коли сталася помилка.
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
attachmentMetadata (map[string]string)
attachmentMetadata заповнюється будь-якою інформацією, яка повертається під час успішної операції приєднання і яка повинна бути передана в наступні виклики WaitForAttach або Mount. Це поле має бути встановлено лише сутністю, яка завершує операцію приєднання, тобто external-attacher.
detachError (VolumeError)
detachError представляє останню помилку, яка виникла під час операції відʼєднання, якщо така була. Це поле має бути встановлено лише сутністю, яка завершує операцію відʼєднання, тобто external-attacher.
VolumeError фіксує помилку, яка виникла під час операції з томом.
detachError.message (string)
message представляє помилку, яка виникла під час операції приєднання або відʼєднання. Цей рядок може бути доданий в лог, тож він не повинен містити конфіденційної інформації.
detachError.time (Time)
time представляє час, коли сталася помилка.
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
VolumeAttachmentList
VolumeAttachmentList — це колекція обʼєктів VolumeAttachment.
apiVersion: storage.k8s.io/v1
kind: VolumeAttachmentList
metadata (ListMeta)
Стандартні метадані списку. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]VolumeAttachment), обовʼязково
items — це список VolumeAttachments.
Операції
get
отримати вказаний VolumeAttachment
HTTP запит
GET /apis/storage.k8s.io/v1/volumeattachments/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя VolumeAttachment
pretty (в запиті): string
Відповідь
200 (VolumeAttachment): OK
401: Unauthorized
get
отримати статус вказаного VolumeAttachment
HTTP запит
GET /apis/storage.k8s.io/v1/volumeattachments/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя VolumeAttachment
pretty (в запиті): string
Відповідь
200 (VolumeAttachment): OK
401: Unauthorized
list
перелік абоперегляд обʼєктів типу VolumeAttachment
HTTP запит
GET /apis/storage.k8s.io/v1/volumeattachments
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (VolumeAttachmentList): OK
401: Unauthorized
create
створення VolumeAttachment
HTTP запит
POST /apis/storage.k8s.io/v1/volumeattachments
Параметри
body: VolumeAttachment, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (VolumeAttachment): OK
201 (VolumeAttachment): Created
202 (VolumeAttachment): Accepted
401: Unauthorized
update
заміна вказаного VolumeAttachment
HTTP запит
PUT /apis/storage.k8s.io/v1/volumeattachments/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя VolumeAttachment
body: VolumeAttachment, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (VolumeAttachment): OK
201 (VolumeAttachment): Created
401: Unauthorized
update
заміна вказаного VolumeAttachment
HTTP запит
PUT /apis/storage.k8s.io/v1/volumeattachments/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя VolumeAttachment
body: VolumeAttachment, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (VolumeAttachment): OK
201 (VolumeAttachment): Created
401: Unauthorized
patch
часткове оновлення вказаного VolumeAttachment
HTTP запит
PATCH /apis/storage.k8s.io/v1/volumeattachments/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя VolumeAttachment
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (VolumeAttachment): OK
201 (VolumeAttachment): Created
401: Unauthorized
patch
часткове оновлення статусу вказаного VolumeAttachment
HTTP запит
PATCH /apis/storage.k8s.io/v1/volumeattachments/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя VolumeAttachment
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (VolumeAttachment): OK
201 (VolumeAttachment): Created
401: Unauthorized
delete
видалення VolumeAttachment
HTTP запит
DELETE /apis/storage.k8s.io/v1/volumeattachments/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя VolumeAttachment
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (VolumeAttachment): OK
202 (VolumeAttachment): Accepted
401: Unauthorized
deletecollection
видалення колекції VolumeAttachment
HTTP запит
DELETE /apis/storage.k8s.io/v1/volumeattachments
Параметри
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
12 - VolumeAttributesClass v1beta1
apiVersion: storage.k8s.io/v1beta1
import "k8s.io/api/storage/v1beta1"
VolumeAttributesClass
VolumeAttributesClass представляє специфікацію змінних атрибутів тома, визначених драйвером CSI. Клас можна вказати під час динамічного резервування PersistentVolumeClaims і змінити у специфікації PersistentVolumeClaim після резервування.
apiVersion: storage.k8s.io/v1beta1
kind: VolumeAttributesClass
metadata (ObjectMeta)
Стандартні метадані обʼєкта. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
driverName (string), обовʼязково
Імʼя драйвера CSI Це поле є незмінним.
VolumeAttributesClassList
VolumeAttributesClassList — це колекція обʼєктів VolumeAttributesClass.
apiVersion: storage.k8s.io/v1beta1
kind: VolumeAttributesClassList
metadata (ListMeta)
Стандартні метадані списку. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]VolumeAttributesClass), обовʼязково
items — це список обʼєктів VolumeAttributesClass.
Операції
get
отримати вказаний VolumeAttributesClass
HTTP запит
GET /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя VolumeAttributesClass
pretty (в запиті): string
Відповідь
200 (VolumeAttributesClass): OK
401: Unauthorized
list
перелік або перегляд обʼєктів типу VolumeAttributesClass
HTTP запит
GET /apis/storage.k8s.io/v1beta1/volumeattributesclasses
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (VolumeAttributesClassList): OK
401: Unauthorized
create
створення VolumeAttributesClass
HTTP запит
POST /apis/storage.k8s.io/v1beta1/volumeattributesclasses
Параметри
body: VolumeAttributesClass, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (VolumeAttributesClass): OK
201 (VolumeAttributesClass): Created
202 (VolumeAttributesClass): Accepted
401: Unauthorized
update
заміна вказаного VolumeAttributesClass
HTTP запит
PUT /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя VolumeAttributesClass
body: VolumeAttributesClass, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (VolumeAttributesClass): OK
201 (VolumeAttributesClass): Created
401: Unauthorized
patch
часткове оновлення вказаного VolumeAttributesClass
HTTP запит
PATCH /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя VolumeAttributesClass
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (VolumeAttributesClass): OK
201 (VolumeAttributesClass): Created
401: Unauthorized
delete
видалення VolumeAttributesClass
HTTP запит
DELETE /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя VolumeAttributesClass
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (VolumeAttributesClass): OK
202 (VolumeAttributesClass): Accepted
401: Unauthorized
deletecollection
видалення колекції VolumeAttributesClass
HTTP запит
DELETE /apis/storage.k8s.io/v1beta1/volumeattributesclasses
Параметри
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