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)
spec определяет желаемые характеристики тома, запрошенного автором под. Дополнительная информация: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
-
status (PersistentVolumeClaimStatus)
status представляет текущую информацию/состояние запроса на постоянный объем. Только для чтения. Дополнительная информация: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
PersistentVolumeClaimSpec
PersistentVolumeClaimSpec описывает общие атрибуты хранилищ устройств и позволяет использовать Источник для атрибутов, специфичных для поставщика
-
accessModes ([]string)
accessModes содержит желаемые режимы доступа, которые должен иметь том. Дополнительная информация: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
-
selector (LabelSelector)
selector — это запрос меток по томам для рассмотрения при связывании.
-
resources (ResourceRequirements)
resources представляет минимальные ресурсы, которые должен иметь том. Если включена функция RecoverVolumeExpansionFailure, пользователям разрешено указывать требования к ресурсам, которые ниже предыдущего значения, но должны быть всё ещё выше, чем ёмкость, записанная в поле состояния запроса. Дополнительная информация: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
ResourceRequirements описывает требования к вычислительным ресурсам.
-
resources.claims ([]ResourceClaim)
Отображение: уникальные значения в ключе name будут сохранены во время слияния
Claims перечисляет имена ресурсов, определенных в spec.resourceClaims, которые используются этим контейнером.
Это поле alpha и требует включения функции DynamicResourceAllocation.
Это поле неизменяемо. Его можно установить только для контейнеров.
ResourceClaim ссылается на одну запись в PodSpec.ResourceClaims.
-
resources.claims.name (string), required
Имя должно совпадать с именем одной записи в pod.spec.resourceClaims Pod, где используется это поле. Это делает ресурс доступным внутри контейнера.
-
-
resources.limits (map[string]Quantity)
Limits описывает максимальное количество разрешенных вычислительных ресурсов. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
resources.requests (map[string]Quantity)
Requests описывает минимальное количество требуемых вычислительных ресурсов. Если Requests опущен для контейнера, он по умолчанию равен Limits, если это явно указано, в противном случае — определённое реализацией значение. Requests не может превышать Limits. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
-
volumeName (string)
volumeName — это ссылка на привязку к PersistentVolume, поддерживающему этот запрос.
-
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 не указан. Если namespace указан, то dataSourceRef не будет скопирован в dataSource.
-
dataSourceRef (TypedObjectReference)
dataSourceRef указывает объект, из которого необходимо заполнить том данными, если требуется непустой том. Это может быть любой объект из непустой группы API (объект не из ядра) или объект PersistentVolumeClaim. При указании этого поля привязка тома будет успешной только если тип указанного объекта соответствует некоторому установленному популятору томов или динамическому провайдеру. Это поле заменит функциональность поля dataSource, и поэтому, если оба поля непустые, они должны иметь одинаковое значение. Для обратной совместимости, когда namespace не указан в dataSourceRef, оба поля (dataSource и dataSourceRef) будут автоматически установлены в одинаковое значение, если одно из них пустое, а другое — непустое. Когда namespace указан в dataSourceRef, dataSource не устанавливается в то же значение и должен быть пустым. Существует три важных отличия между dataSource и dataSourceRef: * В то время как dataSource допускает только два конкретных типа объектов, dataSourceRef допускает любые объекты не из ядра, а также объекты PersistentVolumeClaim.
- В то время как dataSource игнорирует запрещенные значения (удаляя их), dataSourceRef сохраняет все значения и генерирует ошибку, если указано запрещенное значение.
- В то время как dataSource допускает только локальные объекты, dataSourceRef допускает объекты в любых пространствах имен. (Бета) Использование этого поля требует включения параметра AnyVolumeDataSource. (Альфа) Использование поля namespace в dataSourceRef требует включения параметра CrossNamespaceVolumeDataSource.
**
-
dataSourceRef.kind (string), required
Kind — это тип ресурса, на который ссылаются.
-
dataSourceRef.name (string), required
Name — это имя ресурса, на который ссылаются.
-
dataSourceRef.apiGroup (string)
APIGroup — это группа для ресурса, на который ссылаются. Если APIGroup не указан, указанный Kind должен находиться в группе API ядра. Для любых других типов сторонних производителей APIGroup требуется.
-
dataSourceRef.namespace (string)
Namespace — это пространство имен ресурса, на который ссылаются. Обратите внимание, что при указании пространства имен, в пространстве имен референта требуется объект gateway.networking.k8s.io/ReferenceGrant, позволяющий владельцу этого пространства имен принять ссылку. См. документацию ReferenceGrant для получения подробностей. (Альфа) Это поле требует включения параметра CrossNamespaceVolumeDataSource.
PersistentVolumeClaimStatus
PersistentVolumeClaimStatus — текущее состояние запроса на постоянный объем.
-
accessModes ([]string)
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)
Стратегия исправления: слияние по ключу
typeconditions — текущее состояние Persistent Volume Claim. Если основной том изменяется по размеру, состояние устанавливается в 'ResizeStarted'.
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 — уникальная, это должна быть короткая, понятная для машины строка, которая указывает причину последнего перехода состояния. Если она сообщает "ResizeStarted", это означает, что основной том изменяется по размеру.
-
-
phase (string)
phase представляет текущую фазу PersistentVolumeClaim.
СписокPersistentVolumeClaim
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
© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-28.docs.kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/