3.4. 持久性卷声明 (PVC)
每个 PersistentVolumeClaim
对象都会包括一个 spec
和 status
,它们分别代表了声明的规格和状态。例如:
PersistentVolumeClaim
对象定义示例
3.4.1. 存储类 复制链接链接已复制到粘贴板!
另外,通过在 storageClassName
属性中指定存储类的名称,声明可以请求一个特定的存储类。只有具有请求的类的 PV( storageClassName
的值与 PVC 中的值相同)才会与 PVC 绑定。集群管理员可配置动态置备程序为一个或多个存储类提供服务。集群管理员可根据需要创建与 PVC 的规格匹配的 PV。
根据使用的平台,Cluster Storage Operator 可能会安装一个默认的存储类。此存储类由 Operator 拥有和控制。不能在定义注解和标签之外将其删除或修改。如果需要实现不同的行为,则必须定义自定义存储类。
集群管理员也可以为所有 PVC 设置默认存储类。当配置了默认存储类时, PVC 必须明确要求将存储类 StorageClass
或 storageClassName
设为 ""
, 以便绑定到没有存储类的 PV。
如果一个以上的存储类被标记为默认,则只能在 storageClassName
被显式指定时才能创建 PVC。因此,应只有一个存储类被设置为默认值。
3.4.2. 访问模式 复制链接链接已复制到粘贴板!
声明在请求带有特定访问权限的存储时,使用与卷相同的格式。
3.4.3. Resources 复制链接链接已复制到粘贴板!
象 pod 一样,声明可以请求具体数量的资源。在这种情况下,请求用于存储。同样的资源模型适用于卷和声明。
3.4.4. 声明作为卷 复制链接链接已复制到粘贴板!
pod 通过将声明作为卷来访问存储。在使用声明时,声明需要和 pod 位于同一个命名空间。集群在 pod 的命名空间中找到声明,并使用它来使用这个声明后台的PersistentVolume
。卷被挂载到主机和 pod 中,例如:
挂载卷到主机和 pod 示例
3.4.5. 查看 PVC 用量统计 复制链接链接已复制到粘贴板!
您可以查看持久性卷声明 (PVC) 的用量统计。
PVC usage statistics 命令只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
3.4.5.1. 查看 PVC 用量统计所需的用户权限 复制链接链接已复制到粘贴板!
要查看 PVC 用量统计,您必须具有所需的权限。
使用所需权限登录:
- 如果您有 admin 特权,请以 admin 身份登录。
如果您没有 admin 权限:
运行以下命令,创建并向用户添加集群角色:
oc create clusterrole routes-view --verb=get,list --resource=routes oc adm policy add-cluster-role-to-user routes-view <user-name> oc adm policy add-cluster-role-to-user cluster-monitoring-view <user-name>
$ oc create clusterrole routes-view --verb=get,list --resource=routes $ oc adm policy add-cluster-role-to-user routes-view <user-name>
1 $ oc adm policy add-cluster-role-to-user cluster-monitoring-view <user-name>
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.5.2. 查看 PVC 用量统计 复制链接链接已复制到粘贴板!
要查看集群中的统计信息,请运行以下命令:
oc adm top pvc -A
$ oc adm top pvc -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 命令输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看指定命名空间的 PVC 用量统计,请运行以下命令:
oc adm top pvc -n <namespace-name>
$ oc adm top pvc -n <namespace-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 其中
<namespace-name>
是指定命名空间的名称。
命令输出示例
NAMESPACE NAME USAGE(%) namespace-1 data-etcd-2 3.81% namespace-1 data-etcd-0 3.81% namespace-1 data-etcd-1 3.82%
NAMESPACE NAME USAGE(%) namespace-1 data-etcd-2 3.81%
1 namespace-1 data-etcd-0 3.81% namespace-1 data-etcd-1 3.82%
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 在本例中,指定的命名空间是
namespace-1
。
要查看指定 PVC 和指定命名空间的用量统计,请运行以下命令:
oc adm top pvc <pvc-name> -n <namespace-name>
$ oc adm top pvc <pvc-name> -n <namespace-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 其中
<pvc-name>
是指定的 PVC 的名称,<namespace-name>
是指定命名空间的名称。
命令输出示例
NAMESPACE NAME USAGE(%) namespace-1 data-etcd-0 3.81%
NAMESPACE NAME USAGE(%) namespace-1 data-etcd-0 3.81%
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 在本例中,指定的命名空间是
namespace-1
,指定的 PVC 是data-etcd-0
。