PersistentVolumeClaim

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

apiVersion: v1

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

PersistentVolumeClaim

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


PersistentVolumeClaimSpec

PersistentVolumeClaimSpec 描述存储设备的通用属性,并允许为提供程序特定的属性提供 Source


Beta 级别

  • dataSource (TypedLocalObjectReference)

    dataSource 字段可用于指定以下任意一项:* 现有的 VolumeSnapshot 对象 (snapshot.storage.k8s.io/VolumeSnapshot) * 现有的 PVC (PersistentVolumeClaim) 如果配置器或外部控制器可以支持指定的数据源,它将基于指定数据源的内容创建一个新卷。 启用 AnyVolumeDataSource 特性门控后,dataSource 内容将复制到 dataSourceRef,并且当未指定 dataSourceRef.namespace 时,dataSourceRef 内容将复制到 dataSource。 如果指定了命名空间,则 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 是被引用的资源的命名空间 请注意,当指定命名空间时,referent 命名空间中需要一个 gateway.networking.k8s.io/ReferenceGrant 对象,以允许该命名空间的拥有者接受引用。 有关详细信息,请参见 ReferenceGrant 文档。 (Alpha)此字段需要启用 CrossNamespaceVolumeDataSource 特性门控。

  • volumeAttributesClassName (string)

    volumeAttributesClassName 可用于设置此声明使用的 VolumeAttributesClass。 如果指定,则 CSI 驱动程序将使用相应 VolumeAttributesClass 中定义的属性创建或更新卷。 这与 storageClassName 的目的不同,它可以在创建声明后更改。 空字符串值表示不会将任何 VolumeAttributesClass 应用于声明,但一旦设置该字段,就不允许将其重置为空字符串。 如果未指定且 PersistentVolumeClaim 未绑定,则如果存在,持久卷控制器将设置默认的 VolumeAttributesClass。 如果 volumeAttributesClass 引用的资源不存在,则此 PersistentVolumeClaim 将设置为 Pending 状态,如 modifyVolumeStatus 字段所反映的那样,直到该资源存在。 更多信息: https://kubernetes.top/docs/concepts/storage/volume-attributes-classes/(Beta)使用此字段需要启用 VolumeAttributesClass 特性门控(默认情况下禁用)。

PersistentVolumeClaimStatus

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


  • accessModes ([]string)

    原子操作:将在合并期间被替换

    accessModes 包含 PVC 所支持的实际访问模式。更多信息请参考:https://kubernetes.top/zh-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)

    Patch 策略:在键 type 上合并

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

    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 是 PVC 当前正在使用的 VolumeAttributesClass 的当前名称。如果未设置,则此 PersistentVolumeClaim 没有应用 VolumeAttributeClass。这是一个 beta 字段,需要启用 VolumeAttributesClass 功能(默认关闭)。

  • modifyVolumeStatus (ModifyVolumeStatus)

    ModifyVolumeStatus 表示 ControllerModifyVolume 操作的状态对象。如果未设置,则没有尝试 ModifyVolume 操作。这是一个 beta 字段,需要启用 VolumeAttributesClass 功能(默认关闭)。

    ModifyVolumeStatus 表示 ControllerModifyVolume 操作的状态对象

    • modifyVolumeStatus.status (string),必需

      status 是 ControllerModifyVolume 操作的状态。它可以处于以下任何状态

      • Pending Pending 表示由于未满足的要求,例如指定的 VolumeAttributesClass 不存在,无法修改 PersistentVolumeClaim。
      • InProgress InProgress 表示正在修改卷。
      • Infeasible Infeasible 表示请求已被 CSI 驱动程序拒绝为无效。要解决该错误,需要指定一个有效的 VolumeAttributesClass。注意:将来可能会添加新状态。消费者应检查未知状态并适当地失败。
    • modifyVolumeStatus.targetVolumeAttributesClassName (string)

      targetVolumeAttributesClassName 是 PVC 当前正在协调的 VolumeAttributesClass 的名称

  • phase (string)

    phase 表示 PersistentVolumeClaim 的当前阶段。

PersistentVolumeClaimList

PersistentVolumeClaimList 是 PersistentVolumeClaim 项的列表。


操作


get 读取指定的 PersistentVolumeClaim

HTTP 请求

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

参数

  • name (在路径中): string,必需

    PersistentVolumeClaim 的名称

  • namespace (在路径中): string,必需

    命名空间

  • pretty (在查询中): string

    pretty

响应

200 (PersistentVolumeClaim): OK

401: 未授权

get 读取指定的 PersistentVolumeClaim 的状态

HTTP 请求

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

参数

  • name (在路径中): string,必需

    PersistentVolumeClaim 的名称

  • namespace (在路径中): string,必需

    命名空间

  • pretty (在查询中): string

    pretty

响应

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 创建一个 PersistentVolumeClaim

HTTP 请求

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

参数

响应

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): 已创建

202 (PersistentVolumeClaim): 已接受

401: 未授权

update 替换指定的 PersistentVolumeClaim

HTTP 请求

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

参数

响应

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): 已创建

401: 未授权

update 替换指定的 PersistentVolumeClaim 的状态

HTTP 请求

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

参数

响应

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): 已创建

401: 未授权

patch 部分更新指定的 PersistentVolumeClaim

HTTP 请求

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

参数

  • name (在路径中): string,必需

    PersistentVolumeClaim 的名称

  • namespace (在路径中): string,必需

    命名空间

  • body: Patch, 必需

  • dryRun (在查询中): string

    dryRun

  • fieldManager (在查询中): string

    fieldManager

  • fieldValidation (在查询中): string

    fieldValidation

  • force (在查询中): boolean

    force

  • pretty (在查询中): string

    pretty

响应

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): 已创建

401: 未授权

patch 部分更新指定的 PersistentVolumeClaim 的状态

HTTP 请求

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

参数

  • name (在路径中): string,必需

    PersistentVolumeClaim 的名称

  • namespace (在路径中): string,必需

    命名空间

  • body: Patch, 必需

  • dryRun (在查询中): string

    dryRun

  • fieldManager (在查询中): string

    fieldManager

  • fieldValidation (在查询中): string

    fieldValidation

  • force (在查询中): boolean

    force

  • pretty (在查询中): string

    pretty

响应

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): 已创建

401: 未授权

delete 删除一个 PersistentVolumeClaim

HTTP 请求

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

参数

响应

200 (PersistentVolumeClaim): OK

202 (PersistentVolumeClaim): 已接受

401: 未授权

deletecollection 删除 PersistentVolumeClaim 的集合

HTTP 请求

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

参数

响应

200 (Status): OK

401: 未授权

此页面是自动生成的。

如果您计划报告此页面的问题,请在您的问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他位置进行。

上次修改时间:2024 年 8 月 28 日下午 6:01 PST:更新 v1.31 的生成 API 参考 (8ba98c79c1)