Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

27.6.2. 置备

当存储可以被挂载为 OpenShift Container Platform 中的卷之前,它必须已存在于底层的存储系统中。确保为 AWS Elastic Block Store 配置 OpenShift 后,OpenShift 和 AWS 所需的所有内容都是 AWS EBS 卷 ID 和 PersistentVolume API。

27.6.2.1. 创建持久性卷

您必须在对象定义中定义持久性卷,然后才能在 OpenShift Container Platform 中创建它:

例 27.5. 使用 AWS 的持久性卷对象定义

apiVersion: "v1"
kind: "PersistentVolume"
metadata:
  name: "pv0001" 1
spec:
  capacity:
    storage: "5Gi" 2
  accessModes:
    - "ReadWriteOnce"
  awsElasticBlockStore: 3
    fsType: "ext4" 4
    volumeID: "vol-f37a03aa" 5
1
卷的名称。这将通过 持久性卷声明或 从 pod 识别它。
2
为这个卷分配的存储量。
3
这将定义要使用的卷类型,本例中为 awsElasticBlockStore 插件。
4
要挂载的文件系统类型。
5
这是要使用的 AWS 卷。
重要

在卷被格式化并置备后,修改 fstype 参数的值会导致数据丢失和 pod 失败。

将定义保存到文件中,如 aws-pv.yaml 并创建持久性卷:

# oc create -f aws-pv.yaml
persistentvolume "pv0001" created

验证持久性卷是否已创建:

# oc get pv
NAME      LABELS    CAPACITY   ACCESSMODES   STATUS      CLAIM     REASON    AGE
pv0001    <none>    5Gi        RWO           Available                       2s

然后,用户可以使用持久性卷声明请求存储,该声明现在可以使用您的新持久性卷。

重要

持久性卷声明只在用户的命名空间中存在,且只能被同一命名空间中的 pod 引用。任何尝试从其他命名空间中访问持久性卷都会导致 pod 失败。