OpenShift Data Foundation에 앱 배치

Red Hat® OpenShift® on IBM Cloud® 클러스터용 OpenShift Data Foundation 추가 기능을 설치한 후 ODF 스토리지 클래스를 사용하여 지속적 볼륨 청구(PVC)를 작성할 수 있습니다. 그런 다음 앱이 기본 ODF 스토리지 디바이스의 데이터를 저장하고 사용할 수 있도록 배치에서 PVC를 참조하십시오.

최소 필수 권한
에디터 플랫폼 액세스 역할과 IBM Cloud Kubernetes Service 에서 클러스터에 대한 Writer 서비스 액세스 역할을 설정합니다.

Red Hat OpenShift 클러스터에 액세스하십시오.

  1. ODF 스토리지 클래스를 나열하십시오. ODF 스토리지 클래스에 대한 자세한 정보는 스토리지 클래스 참조를 참조하십시오.

    oc get sc | grep openshift
    

    출력 예

    NAME                   PROVISIONER            RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    Immediate              true                   9m19s
    ocs-storagecluster-ceph-rbd                   openshift-storage.rbd.csi.ceph.com      Delete          Immediate              false                  9m19s
    ocs-storagecluster-ceph-rgw                   openshift-storage.ceph.rook.io/bucket   Delete          Immediate              false                  18m
    ocs-storagecluster-cephfs                     openshift-storage.cephfs.csi.ceph.com   Delete          Immediate              true                   10m
    openshift-storage.noobaa.io                   openshift-storage.noobaa.io/obc         Delete          Immediate              false                  6m32s
    
  2. 사용할 스토리지 클래스를 참조하는 PVC를 작성하십시오. 다음 PVC 구성 파일을 저장하고 편집하여 사용할 스토리지 클래스를 참조하십시오. Hyper Protect Crypto Services 로 암호화를 활성화한 경우 암호화를 지원하는 스토리지 클래스 ocs-storagecluster-ceph-rbd-encrypted 를 사용할 수 있습니다. ocs-storagecluster-cephfs 스토리지 클래스 사용을 위한 PVC 예.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: odf-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: ocs-storagecluster-cephfs
    
  3. 클러스터에 PVC를 작성하십시오.

    oc create -f <my-pvc.yaml>
    
  4. 작성한 PVC를 마운트하는 팟(Pod)에 대한 YAML 구성 파일을 작성하십시오. 다음 예제에서는 nginx 파일에 현재 날짜 및 시간을 쓰는 test.txt 팟(Pod)을 작성합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: app
    spec:
      containers:
      - name: app
        image: nginx
        command: ["/bin/sh"]
        args: ["-c", "while true; do echo $(date -u) >> /test/test.txt; sleep 600; done"]
        volumeMounts:
        - name: persistent-storage
          mountPath: /test
      volumes:
      - name: persistent-storage
        persistentVolumeClaim:
          claimName: odf-pvc
    
  5. 클러스터에서 팟(Pod)을 작성하십시오.

    oc apply -f pod.yaml
    
  6. 팟(Pod)이 배치되었는지 확인하려면 앱이 Running 상태가 될 때까지 대기하십시오.

    oc get pods
    

    출력 예

    NAME                                READY   STATUS    RESTARTS   AGE
    app                                 1/1     Running   0          2m58s
    
  7. 앱이 데이터를 쓸 수 있는지 확인하십시오.

    1. 팟(Pod)에 로그인하십시오.
      oc exec <app-pod-name> -it -- bash
      
    2. test.txt 파일의 컨텐츠를 표시하여 앱이 지속적 스토리지에 데이터를 쓸 수 있는지 확인하십시오.
      cat /test/test.txt
      
      출력 예
      Tue Mar 2 20:09:19 UTC 2021
      Tue Mar 2 20:09:25 UTC 2021
      Tue Mar 2 20:09:31 UTC 2021
      Tue Mar 2 20:09:36 UTC 2021
      Tue Mar 2 20:09:42 UTC 2021
      Tue Mar 2 20:09:47 UTC 2021
      
    3. 팟(Pod)을 종료하십시오.
      exit