PersistentVolumeClaim

PersistentVolumeClaim 是用户对持久卷的请求和声明。

apiVersion: v1

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

PersistentVolumeClaim

PersistentVolumeClaim 是用户对持久卷的请求和声明


PersistentVolumeClaimSpec

PersistentVolumeClaimSpec 描述了存储设备的通用属性,并允许 Source 用于提供商特定的属性


  • accessModes ([]string)

    accessModes 包含卷应具有的所需访问模式。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#access-modes-1

  • selector (LabelSelector)

    selector 是一个针对卷的标签查询,以考虑绑定。

  • resources (ResourceRequirements)

    resources 代表卷应具有的最小资源。如果启用 RecoverVolumeExpansionFailure 特性开关,则允许用户指定低于先前值的资源需求,但仍必须高于状态字段中记录的容量声明。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#resources

    ResourceRequirements 描述计算资源需求。

    • resources.claims ([]ResourceClaim)

      Map: 在合并期间将保留键名上的唯一值

      Claims 列出了此容器使用的资源名称,这些资源定义在 spec.resourceClaims 中。

      这是一个 alpha 字段,需要启用 DynamicResourceAllocation 特性开关。

      此字段是不可变的。它只能为容器设置。

      ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。

      • resources.claims.name (string), 必填

        Name 必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目的名称匹配。它使该资源在容器内部可用。

    • resources.limits (map[string]Quantity)

      Limits 描述允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

    • resources.requests (map[string]Quantity)

      Requests 描述所需的最小计算资源量。如果为容器省略了 Requests,则默认情况下它将使用 Limits(如果明确指定了 Limits),否则将使用实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

  • volumeName (string)

    volumeName 是对支持此声明的 PersistentVolume 的绑定引用。

  • storageClassName (string)

    storageClassName 是声明所需的 StorageClass 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#class-1

  • volumeMode (string)

    volumeMode 定义声明所需的卷类型。如果未包含在声明规范中,则隐含 Filesystem 值。

Beta 级别

  • 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 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 特性开关。(Alpha)使用 dataSourceRef 的命名空间字段需要启用 CrossNamespaceVolumeDataSource 特性开关。

    **

    • dataSourceRef.kind (string), 必填

      Kind 是所引用资源的类型

    • dataSourceRef.name (string), 必填

      Name 是所引用资源的名称

    • dataSourceRef.apiGroup (string)

      APIGroup 是所引用资源的组。如果未指定 APIGroup,则指定的 Kind 必须位于核心 API 组中。对于任何其他第三方类型,都需要 APIGroup。

    • dataSourceRef.namespace (string)

      Namespace 是所引用资源的命名空间。请注意,当指定命名空间时,在引用命名空间中需要一个 gateway.networking.k8s.io/ReferenceGrant 对象,以允许该命名空间的所有者接受引用。有关详细信息,请参阅 ReferenceGrant 文档。(Alpha)此字段需要启用 CrossNamespaceVolumeDataSource 特性开关。

PersistentVolumeClaimStatus

PersistentVolumeClaimStatus 是持久卷声明的当前状态。


  • accessModes ([]string)

    accessModes 包含支持 PVC 的卷的实际访问模式。更多信息:https://kubernetes.ac.cn/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 没有调整大小操作正在进行。

    接收具有先前未知 resourceName 或 ClaimResourceStatus 的 PVC 更新的控制器应忽略该更新,以实现其设计目的。例如 - 仅负责调整卷容量的控制器应忽略更改与 PVC 关联的其他有效资源的 PVC 更新。

    这是一个 alpha 字段,需要启用 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。

    收到带有先前未知 resourceName 的 PVC 更新的控制器应忽略该更新,因为它被设计用于此目的。例如,仅负责调整卷容量的控制器应忽略更改与 PVC 关联的其他有效资源的 PVC 更新。

    这是一个 alpha 字段,需要启用 RecoverVolumeExpansionFailure 特性开关。

  • capacity (map[string]Quantity)

    capacity 表示基础卷的实际资源。

  • conditions ([]PersistentVolumeClaimCondition)

    修补策略:按键 type 合并

    conditions 是持久卷声明的当前状态。如果基础持久卷正在调整大小,则状态将设置为 'ResizeStarted'。

    PersistentVolumeClaimCondition 包含有关 pvc 状态的详细信息

    • conditions.status (string), required

    • conditions.type (string), required

    • 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 表示持久卷声明的当前阶段。

PersistentVolumeClaimList

PersistentVolumeClaimList 是持久卷声明项目的列表。


操作


get 读取指定的持久卷声明

HTTP 请求

GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}

参数

  • name (在路径中): string, required

    持久卷声明的名称

  • namespace (在路径中): string, required

    命名空间

  • pretty (在查询中): string

    漂亮

响应

200 (PersistentVolumeClaim): OK

401: 未经授权

get 读取指定持久卷声明的状态

HTTP 请求

GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status

参数

  • name (在路径中): string, required

    持久卷声明的名称

  • namespace (在路径中): string, required

    命名空间

  • pretty (在查询中): string

    漂亮

响应

200 (PersistentVolumeClaim): OK

401: 未经授权

list 列出或观察 PersistentVolumeClaim 类型的对象

HTTP 请求

GET /api/v1/namespaces/{namespace}/persistentvolumeclaims

参数

响应

200 (PersistentVolumeClaimList): OK

401: 未经授权

list 列出或观察 PersistentVolumeClaim 类型的对象

HTTP 请求

GET /api/v1/persistentvolumeclaims

参数

响应

200 (PersistentVolumeClaimList): OK

401: 未经授权

create 创建一个持久卷声明

HTTP 请求

POST /api/v1/namespaces/{namespace}/persistentvolumeclaims

参数

响应

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): 已创建

202 (PersistentVolumeClaim): 已接受

401: 未经授权

update 替换指定的持久卷声明

HTTP 请求

PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}

参数

响应

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): 已创建

401: 未经授权

update 替换指定持久卷声明的状态

HTTP 请求

PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status

参数

响应

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): 已创建

401: 未经授权

patch 部分更新指定的持久卷声明

HTTP 请求

PATCH /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}

参数

  • name (在路径中): string, required

    持久卷声明的名称

  • namespace (在路径中): string, required

    命名空间

  • body: Patch, required

  • dryRun (在查询中): string

    dryRun

  • fieldManager (在查询中): string

    fieldManager

  • fieldValidation (在查询中): string

    fieldValidation

  • force (在查询中): boolean

    强制

  • pretty (在查询中): string

    漂亮

响应

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): 已创建

401: 未经授权

patch 部分更新指定持久卷声明的状态

HTTP 请求

PATCH /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status

参数

  • name (在路径中): string, required

    持久卷声明的名称

  • namespace (在路径中): string, required

    命名空间

  • body: Patch, required

  • dryRun (在查询中): string

    dryRun

  • fieldManager (在查询中): string

    fieldManager

  • fieldValidation (在查询中): string

    fieldValidation

  • force (在查询中): boolean

    强制

  • pretty (在查询中): string

    漂亮

响应

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): 已创建

401: 未经授权

delete 删除一个持久卷声明

HTTP 请求

DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}

参数

响应

200 (PersistentVolumeClaim): OK

202 (PersistentVolumeClaim): 已接受

401: 未经授权

deletecollection 删除持久卷声明的集合

HTTP 请求

DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims

参数

响应

200 (Status): OK

401: 未经授权

此页面是自动生成的。

如果你打算报告此页面的问题,请在你的问题描述中提到页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

上次修改时间:2023 年 7 月 26 日 下午 1:45 PST: 生成的內容 (1e2ed88743)