PersistentVolumeClaim

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

apiVersion: v1

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

PersistentVolumeClaim

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


PersistentVolumeClaimSpec

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


  • 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), required

        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(如果明确指定),否则默认为实现定义的值。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), required

      Kind 是所引用资源的类型

    • dataSourceRef.name (string), required

      Name 是所引用资源的名称

    • dataSourceRef.apiGroup (string)

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

    • dataSourceRef.namespace (string)

      Namespace 是所引用资源的命名空间。请注意,当指定命名空间时,referent 命名空间中需要一个 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 是 PersistentVolumeClaim 项目的列表。


操作


get 读取指定的 PersistentVolumeClaim

HTTP 请求

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

参数

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

    PersistentVolumeClaim 的名称

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

    命名空间

  • pretty (在查询中): string

    漂亮

响应

200 (PersistentVolumeClaim): OK

401: 未经授权

get 读取指定 PersistentVolumeClaim 的状态

HTTP 请求

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

参数

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

    PersistentVolumeClaim 的名称

  • 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 创建 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, required

    PersistentVolumeClaim 的名称

  • 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 部分更新指定 PersistentVolumeClaim 的状态

HTTP 请求

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

参数

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

    PersistentVolumeClaim 的名称

  • 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 删除 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 项目中的其他地方进行。

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