28.9.3. 手动置备 GlusterFS PersistentVolumeClaim
-
要启用静态置备,首先请创建一个 GlusterFS 卷。请参阅 Red Hat Gluster Storage Administration Guide 了解如何使用
gluster
命令行的信息;请参阅 heketi 项目网站来了解如何使用heketi-cli
的信息。在本例中,卷将命名为myVol1
。 在
gluster-endpoints.yaml
中定义以下服务和端点:--- apiVersion: v1 kind: Service metadata: name: glusterfs-cluster 1 spec: ports: - port: 1 --- apiVersion: v1 kind: Endpoints metadata: name: glusterfs-cluster 2 subsets: - addresses: - ip: 192.168.122.221 3 ports: - port: 1 4 - addresses: - ip: 192.168.122.222 5 ports: - port: 1 6 - addresses: - ip: 192.168.122.223 7 ports: - port: 1 8
在 OpenShift Container Platform master 主机上创建服务和端点:
$ oc create -f gluster-endpoints.yaml service "glusterfs-cluster" created endpoints "glusterfs-cluster" created
验证服务和端点是否已创建:
$ oc get services NAME CLUSTER_IP EXTERNAL_IP PORT(S) SELECTOR AGE glusterfs-cluster 172.30.205.34 <none> 1/TCP <none> 44s $ oc get endpoints NAME ENDPOINTS AGE docker-registry 10.1.0.3:5000 4h glusterfs-cluster 192.168.122.221:1,192.168.122.222:1,192.168.122.223:1 11s kubernetes 172.16.35.3:8443 4d
注意端点每个项目都是唯一的。访问 GlusterFS 卷的每个项目都需要自己的端点。
若要访问卷,容器必须使用用户 ID(UID)或组 ID(GID)运行,该容器有权访问卷上的文件系统。这些信息可以通过以下方法发现:
$ mkdir -p /mnt/glusterfs/myVol1 $ mount -t glusterfs 192.168.122.221:/myVol1 /mnt/glusterfs/myVol1 $ ls -lnZ /mnt/glusterfs/ drwxrwx---. 592 590 system_u:object_r:fusefs_t:s0 myVol1 1 2
在
gluster-pv.yaml
中定义以下 PersistentVolume(PV):apiVersion: v1 kind: PersistentVolume metadata: name: gluster-default-volume 1 annotations: pv.beta.kubernetes.io/gid: "590" 2 spec: capacity: storage: 2Gi 3 accessModes: 4 - ReadWriteMany glusterfs: endpoints: glusterfs-cluster 5 path: myVol1 6 readOnly: false persistentVolumeReclaimPolicy: Retain
在 OpenShift Container Platform master 主机上创建 PV:
$ oc create -f gluster-pv.yaml
确定创建了 PV:
$ oc get pv NAME LABELS CAPACITY ACCESSMODES STATUS CLAIM REASON AGE gluster-default-volume <none> 2147483648 RWX Available 2s
创建一个 PersistentVolumeClaim(PVC),它将绑定到
gluster-claim.yaml
中的新 PV:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gluster-claim 1 spec: accessModes: - ReadWriteMany 2 resources: requests: storage: 1Gi 3
在 OpenShift Container Platform master 主机上创建 PVC:
$ oc create -f gluster-claim.yaml
验证 PV 和 PVC 是否已绑定:
$ oc get pv NAME LABELS CAPACITY ACCESSMODES STATUS CLAIM REASON AGE gluster-pv <none> 1Gi RWX Available gluster-claim 37s $ oc get pvc NAME LABELS STATUS VOLUME CAPACITY ACCESSMODES AGE gluster-claim <none> Bound gluster-pv 1Gi RWX 24s
PVC 每个项目都是唯一的。访问 GlusterFS 卷的每个项目都需要自己的 PVC。PV 不绑定到单个项目,因此多个项目的 PVC 可能会引用同一 PV。