IBM Cloud Docs
OpenShift Data Foundation へのアプリのデプロイ

OpenShift Data Foundation へのアプリのデプロイ

Red Hat® OpenShift® on IBM Cloud® クラスターに OpenShift Data Foundation アドオンをインストールしたら、ODF ストレージ・クラスを使用して、永続ボリューム請求 (PVC) を作成できます。 その後、デプロイメントでその PVC を参照すれば、アプリで基盤の ODF ストレージ・デバイスにデータを保存して使用することができます。

最小限必要な許可
IBM Cloud Kubernetes Serviceにあるクラスタの Editor プラットフォームアクセスロールと 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 をマウントするポッドの YAML 構成ファイルを作成します。 以下の例では、nginx ファイルに現在の日時を書き込む test.txt ポッドを作成します。

    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. クラスター内にポッドを作成します。

    oc apply -f pod.yaml
    
  6. ポッドがデプロイされたことを確認するために、アプリが Running 状況になるまで待ちます。

    oc get pods
    

    出力例

    NAME                                READY   STATUS    RESTARTS   AGE
    app                                 1/1     Running   0          2m58s
    
  7. アプリがデータを書き込めることを確認します。

    1. ポッドにログインします。
      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. ポッドを終了します。
      exit