28.11.2. 情况 1:使用两种 StorageClass 类型的基本动态置备
StorageClasses 可用于区分和划分存储级别和使用。在本例中,cluster-admin
或 storage-admin
在 GCE 中设置了两个不同的存储类别。
-
速度较慢
:为后续数据操作低廉、高效和优化(读和写越) -
fast
:优化的随机 IOPS 和持续吞吐量(读取和编写的速度)
通过创建这些 StorageClasses,cluster-admin
或 storage-admin
允许用户创建请求特定级别的或 StorageClass 服务的声明。
例 28.16. 在对象定义下 StorageClass
例 28.17. StorageClass 快速对象定义
以 cluster-admin
或 storage-admin
身份,将这两个定义保存为 YAML 文件。例如: slow-gce.yaml
和 fast-gce.yaml
。然后,创建 StorageClasses。
cluster-admin
或 storage-admin
用户负责将正确的 StorageClass 名称中继到正确的用户、组和项目。
作为常规用户,创建一个新项目:
oc new-project rh-eng
# oc new-project rh-eng
创建声明 YAML 定义,将其保存到文件中(pvc-fast.yaml
):
使用 oc create
命令添加声明:
oc create -f pvc-fast.yaml
# oc create -f pvc-fast.yaml
persistentvolumeclaim "pvc-engineering" created
检查您的声明是否已绑定:
oc get pvc
# oc get pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
pvc-engineering Bound pvc-e9b4fef7-8bf7-11e6-9962-42010af00004 10Gi RWX 2m
由于此声明在 rh-eng 项目中创建并绑定,它可以由同一项目中的任何用户共享。
以 cluster-admin
或 storage-admin
用户身份,查看最新动态置备的持久性卷(PV)。
oc get pv
# oc get pv
NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM REASON AGE
pvc-e9b4fef7-8bf7-11e6-9962-42010af00004 10Gi RWX Delete Bound rh-eng/pvc-engineering 5m
请注意,所有动态置备的卷 默认为 RECLAIMPOLICY 被删除。这意味着,当系统中存在声明时,卷才会持续。如果您删除声明,该卷也会被删除,且该卷上的所有数据都会丢失。
最后,检查 GCE 控制台。新磁盘已创建,并可供使用。
kubernetes-dynamic-pvc-e9b4fef7-8bf7-11e6-9962-42010af00004 SSD persistent disk 10 GB us-east1-d
kubernetes-dynamic-pvc-e9b4fef7-8bf7-11e6-9962-42010af00004 SSD persistent disk 10 GB us-east1-d
Pod 现在可以引用持久性卷声明并开始使用卷。