Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

27.2.2. 置备

当存储可以被挂载为 OpenShift Container Platform 中的卷之前,它必须已存在于底层的存储系统中。要置备 NFS 卷,则需要一个 NFS 服务器和导出路径列表。

您必须首先为 PV 创建对象定义:

例 27.1. 使用 NFS 的 PV 对象定义

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0001 1
spec:
  capacity:
    storage: 5Gi 2
  accessModes:
  - ReadWriteOnce 3
  nfs: 4
    path: /tmp 5
    server: 172.17.0.2 6
  persistentVolumeReclaimPolicy: Retain 7
1
卷的名称。这是各个 oc <command> pod 命令中的 PV 标识。
2
为这个卷分配的存储量。
3
虽然这看上去象是设置对卷的访问控制,但它实际上被用作标签并用来将 PVC 与 PV 匹配。目前,没有根据 accessModes 强制执行访问规则。
4
使用的卷类型,在这个示例里是 nfs 插件。
5
NFS 服务器导出的路径。
6
NFS 服务器的主机名或 IP 地址。
7
PV 的 reclaim 策略。它决定了从声明中释放卷时会发生什么。请参阅回收资源
注意

每个 NFS 卷都必须由集群中的所有可调度节点挂载。

将定义保存到文件中,如 nfs-pv.yaml 并创建 PV:

$ oc create -f nfs-pv.yaml
persistentvolume "pv0001" created

确定创建了 PV:

# oc get pv
NAME                     LABELS    CAPACITY     ACCESSMODES   STATUS      CLAIM     REASON    AGE
pv0001                   <none>    5368709120   RWO           Available                       31s

下一步是创建一个 PVC,它绑定到新 PV:

例 27.2. PVC 对象定义

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-claim1
spec:
  accessModes:
    - ReadWriteOnce 1
  resources:
    requests:
      storage: 1Gi 2
1
如前面对 PV 提供的一样, accessModes 不会强制实现安全控制,而是作为标签来把一个 PV 和一个 PVC 进行匹配。
2
这个声明会寻找带有 1Gi 或更高容量的 PV。

将定义保存到文件中,如 nfs-claim.yaml 并创建 PVC:

# oc create -f nfs-claim.yaml