第 6 章 PersistentVolumeClaim [v1]
- 描述
- PersistentVolumeClaim 是用户对持久性卷的请求并声明
- 类型
-
对象
6.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| PersistentVolumeClaimSpec 描述了存储设备的通用属性,并允许 Source 用于特定于供应商的属性 |
|
| PersistentVolumeClaimStatus 是持久性卷声明的当前状态。 |
6.1.1. .spec
- 描述
- PersistentVolumeClaimSpec 描述了存储设备的通用属性,并允许 Source 用于特定于供应商的属性
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| accessModes 包含卷应具有所需的访问模式。更多信息: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 |
|
| TypedLocalObjectReference 包含足够信息,以便您在同一命名空间中找到类型引用的对象。 |
|
| 如果需要非空卷,则 dataSourceRef 指定要使用数据填充卷的对象。这可以是来自非空 API 组(非核心对象)或 PersistentVolumeClaim 对象的任何对象。当指定对象的类型与某些安装的卷填充或动态置备程序匹配时,卷绑定才会成功。此字段将替换 dataSource 字段的功能,如果两个字段都不是空的,则它们必须具有相同的值。为了向后兼容,当命名空间没有在 dataSourceRef 中指定时,如果其中一个为空,则两个字段(dataSource 和 dataSourceRef)都会自动设置为相同的值,另一个是非空的。当在 dataSourceRef 中指定 namespace 时,dataSource 不设置为相同的值,必须为空。dataSource 和 dataSourceRef 之间有三个重要区别:* While dataSource 只允许两种特定类型的对象,dataSourceRef 允许任何非核心对象,以及 PersistentVolumeClaim 对象。* 虽然 dataSource 忽略了禁止的值(丢弃它们),dataSourceRef 保留所有值,并在指定禁止的值时生成错误。* 虽然 dataSource 只允许本地对象,dataSourceRef 允许任何命名空间中的对象。(beta)使用此字段需要启用 AnyVolumeDataSource 功能门。(alpha)使用 dataSourceRef 的 namespace 字段需要启用 CrossNamespaceVolumeDataSource 功能门。 |
|
| ResourceRequirements 描述了计算资源要求。 |
| selector 是要考虑绑定的卷的标签查询。 | |
|
| storageClassName 是声明所需的 StorageClass 的名称。更多信息: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 |
|
| volumeMode 定义声明需要哪些卷类型。当未包含在 claim spec 中时,文件系统的值会被表示。
可能枚举值: - |
|
| volumeName 是对此声明支持的 PersistentVolume 的绑定引用。 |
6.1.2. .spec.dataSource
- 描述
- TypedLocalObjectReference 包含足够信息,以便您在同一命名空间中找到类型引用的对象。
- 类型
-
object
- 必填
-
kind
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| APIGroup 是所引用资源的组。如果没有指定 APIGroup,则指定的 Kind 必须位于 core API 组中。对于任何其他第三方类型,需要 APIGroup。 |
|
| kind 是被引用的资源类型 |
|
| name 是被引用的资源的名称 |
6.1.3. .spec.dataSourceRef
- 描述
- 如果需要非空卷,则 dataSourceRef 指定要使用数据填充卷的对象。这可以是来自非空 API 组(非核心对象)或 PersistentVolumeClaim 对象的任何对象。当指定对象的类型与某些安装的卷填充或动态置备程序匹配时,卷绑定才会成功。此字段将替换 dataSource 字段的功能,如果两个字段都不是空的,则它们必须具有相同的值。为了向后兼容,当命名空间没有在 dataSourceRef 中指定时,如果其中一个为空,则两个字段(dataSource 和 dataSourceRef)都会自动设置为相同的值,另一个是非空的。当在 dataSourceRef 中指定 namespace 时,dataSource 不设置为相同的值,必须为空。dataSource 和 dataSourceRef 之间有三个重要区别:* While dataSource 只允许两种特定类型的对象,dataSourceRef 允许任何非核心对象,以及 PersistentVolumeClaim 对象。* 虽然 dataSource 忽略了禁止的值(丢弃它们),dataSourceRef 保留所有值,并在指定禁止的值时生成错误。* 虽然 dataSource 只允许本地对象,dataSourceRef 允许任何命名空间中的对象。(beta)使用此字段需要启用 AnyVolumeDataSource 功能门。(alpha)使用 dataSourceRef 的 namespace 字段需要启用 CrossNamespaceVolumeDataSource 功能门。
- 类型
-
object
- 必填
-
kind
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| APIGroup 是所引用资源的组。如果没有指定 APIGroup,则指定的 Kind 必须位于 core API 组中。对于任何其他第三方类型,需要 APIGroup。 |
|
| kind 是被引用的资源类型 |
|
| name 是被引用的资源的名称 |
|
| 命名空间是被引用的资源的命名空间,请注意,当指定命名空间时,引用命名空间中需要一个 gateway.networking.k8s.io/ReferenceGrant 对象来允许该命名空间的所有者接受引用。详情请查看 ReferenceGrant 文档。(alpha)此字段需要启用 CrossNamespaceVolumeDataSource 功能门。 |
6.1.4. .spec.resources
- 描述
- ResourceRequirements 描述了计算资源要求。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| claim 列出此容器使用的 spec.resourceClaims 中定义的资源名称。 这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能门。 此字段不可变。它只能为容器设置。 |
|
| ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。 |
| 限制描述了允许的最大计算资源量。更多信息: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ | |
| Requests 描述了所需的最少计算资源。如果容器省略了 Requests,则默认为 Limits (如果明确指定),否则默认为实现定义的值。请求不能超过限值。更多信息: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ |
6.1.5. .spec.resources.claims
- 描述
claim 列出此容器使用的 spec.resourceClaims 中定义的资源名称。
这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能门。
此字段不可变。它只能为容器设置。
- 类型
-
数组
6.1.6. .spec.resources.claims[]
- 描述
- ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目的名称匹配。它允许容器内部使用该资源。 |
6.1.7. .status
- 描述
- PersistentVolumeClaimStatus 是持久性卷声明的当前状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| accessModes 包含 PVC 支持的卷的实际访问模式。更多信息: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 |
| allocatedResources 是 AllocatedResources 中的存储资源跟踪分配给 PVC 的容量。当请求卷扩展操作时,它可能大于实际容量。对于存储配额,使用来自 allocatedResources 和 PVC.spec.resources 的值。如果没有设置 allocatedResources,则单独使用 PVC.spec.resources 进行配额计算。如果卷扩展容量请求较低,则只有当实际卷容量相等或低于请求的容量时,才会降低 allocatedResources。这是一个 alpha 字段,需要启用 RecoverVolumeExpansionFailure 功能。 | |
| capacity 代表底层卷的实际资源。 | |
|
| 条件是持久性卷声明的当前条件。如果底层持久性卷被调整大小,则条件将设置为 'ResizeStarted'。 |
|
| PersistentVolumeClaimCondition 包含有关 pvc 状态的详细信息 |
|
| phase 代表 PersistentVolumeClaim 的当前阶段。
可能枚举值: - 用于绑定的 PersistentVolumeClaim 的 |
|
| resizeStatus 存储调整大小操作的状态。默认不会设置 ResizeStatus,但当扩展完成 resizeStatus 时,通过调整 controller 或 kubelet 设置为空字符串。这是一个 alpha 字段,需要启用 RecoverVolumeExpansionFailure 功能。
可能枚举值:- |
6.1.8. .status.conditions
- 描述
- 条件是持久性卷声明的当前条件。如果底层持久性卷被调整大小,则条件将设置为 'ResizeStarted'。
- 类型
-
array
6.1.9. .status.conditions[]
- 描述
- PersistentVolumeClaimCondition 包含有关 pvc 状态的详细信息
- 类型
-
object
- 必填
-
type
-
status
-
属性 | 类型 | 描述 |
---|---|---|
| lastProbeTime 是我们探测到条件的时间。 | |
| lastTransitionTime 是条件从一个状态转换到另一个状态的时间。 | |
|
| Message 是人类可读的消息,指示最后一次转换的详细信息。 |
|
| 原因是唯一的,这应该是一个简短的机器理解字符串,给出了条件最后一次转换的原因。如果报告"ResizeStarted",则表示已调整底层持久性卷的大小。 |
|
| |
|
|