This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.11. 使用 NFS 的持久性存储
OpenShift Container Platform 集群可以使用 NFS 来置备持久性存储。持久性卷 (PV) 和持久性卷声明 (PVC) 提供了在项目间共享卷的方法。虽然 PV 定义中包含的与 NFS 相关的信息也可以直接在 Pod
中定义,但是这样做不会使创建的卷作为一个特定的集群资源,从而可能会导致卷冲突。
4.11.1. 置备
当存储可以被挂载为 OpenShift Container Platform 中的卷之前,它必须已存在于底层的存储系统中。要置备 NFS 卷,则需要一个 NFS 服务器和导出路径列表。
流程
为 PV 创建对象定义:
apiVersion: v1 kind: PersistentVolume metadata: name: pv0001 spec: capacity: storage: 5Gi accessModes: - ReadWriteOnce nfs: path: /tmp server: 172.17.0.2 persistentVolumeReclaimPolicy: Retain
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 Copy to Clipboard Copied! 注意每个 NFS 卷都必须由集群中的所有可调度节点挂载。
确定创建了 PV:
oc get pv
$ oc get pv
Copy to Clipboard Copied! 输出示例
NAME LABELS CAPACITY ACCESSMODES STATUS CLAIM REASON AGE pv0001 <none> 5Gi RWO Available 31s
NAME LABELS CAPACITY ACCESSMODES STATUS CLAIM REASON AGE pv0001 <none> 5Gi RWO Available 31s
Copy to Clipboard Copied! 创建绑定至新 PV 的持久性卷声明:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs-claim1 spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi volumeName: pv0001 storageClassName: ""
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs-claim1 spec: accessModes: - ReadWriteOnce
1 resources: requests: storage: 5Gi
2 volumeName: pv0001 storageClassName: ""
Copy to Clipboard Copied! 确认创建了持久卷声明:
oc get pvc
$ oc get pvc
Copy to Clipboard Copied! 输出示例
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE nfs-claim1 Bound pv0001 5Gi RWO 2m
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE nfs-claim1 Bound pv0001 5Gi RWO 2m
Copy to Clipboard Copied!