28.5.3. 정적 프로비저닝
-
정적 프로비저닝을 활성화하려면 먼저 GlusterFS 볼륨을 만듭니다.
heketi
를 사용하여 이 작업을 수행하는 방법에 대한 자세한 내용은 Red Hat Gluster Storage 관리 가이드를 참조하십시오. 이 예에서는 볼륨의 이름은-
climyVol1
로 지정됩니다. 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 마스터 호스트에서 서비스 및 엔드포인트를 생성합니다.
$ 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 볼륨에 액세스하는 각 프로젝트에는 고유한 엔드포인트가 필요합니다.
볼륨에 액세스하려면 볼륨의 파일 시스템에 액세스할 수 있는 UID(사용자 ID) 또는 그룹 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에서 다음 PV(PersistentVolume)를 정의합니다.
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 마스터 호스트에서 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
gluster-claim.yaml에서 새 PV에 바인딩할 PVC(PersistentVolumeClaim)를 생성합니다.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gluster-claim 1 spec: accessModes: - ReadWriteMany 2 resources: requests: storage: 1Gi 3
OpenShift Container Platform 마스터 호스트에서 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를 참조할 수 있습니다.