Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

28.11.2. 情况 1:使用两种 StorageClass 类型的基本动态置备

StorageClasses 可用于区分和划分存储级别和使用。在本例中,cluster-adminstorage-admin 在 GCE 中设置了两个不同的存储类别。

  • 速度较慢 :为后续数据操作低廉、高效和优化(读和写越)
  • fast:优化的随机 IOPS 和持续吞吐量(读取和编写的速度)

通过创建这些 StorageClassescluster-adminstorage-admin 允许用户创建请求特定级别的或 StorageClass 服务的声明。

例 28.16. 在对象定义下 StorageClass

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: slow 1
provisioner: kubernetes.io/gce-pd 2
parameters:
  type: pd-standard 3
  zone: us-east1-d  4
1
StorageClass 的名称。
2
要使用的 provisioner 插件。这是 StorageClasses 的必需字段。
3
PD 类型。本示例使用 pd-standard,其成本略有线、IOPS 的速度和吞吐量,与带 pdssd 的吞吐量相比,传输可持续的 IOPS 和吞吐量。
4
zone 是必需的。

例 28.17. StorageClass 快速对象定义

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: fast
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-ssd
  zone: us-east1-d

cluster-adminstorage-admin 身份,将这两个定义保存为 YAML 文件。例如: slow-gce.yamlfast-gce.yaml。然后,创建 StorageClasses

# oc create -f slow-gce.yaml
storageclass "slow" created

# oc create -f fast-gce.yaml
storageclass "fast" created

# oc get storageclass
NAME       TYPE
fast       kubernetes.io/gce-pd
slow       kubernetes.io/gce-pd
重要

cluster-adminstorage-admin 用户负责将正确的 StorageClass 名称中继到正确的用户、组和项目。

作为常规用户,创建一个新项目:

# oc new-project rh-eng

创建声明 YAML 定义,将其保存到文件中(pvc-fast.yaml):

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
 name: pvc-engineering
spec:
 accessModes:
  - ReadWriteMany
 resources:
   requests:
     storage: 10Gi
 storageClassName: fast

使用 oc create 命令添加声明:

# oc create -f pvc-fast.yaml
persistentvolumeclaim "pvc-engineering" created

检查您的声明是否已绑定:

# oc get pvc
NAME              STATUS    VOLUME                                     CAPACITY   ACCESSMODES   AGE
pvc-engineering   Bound     pvc-e9b4fef7-8bf7-11e6-9962-42010af00004   10Gi       RWX           2m
重要

由于此声明在 rh-eng 项目中创建并绑定,它可以由同一项目中的任何用户共享。

cluster-adminstorage-admin 用户身份,查看最新动态置备的持久性卷(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

Pod 现在可以引用持久性卷声明并开始使用卷。