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 クラスターにアクセスします。
-
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
-
使用するストレージ・クラスを参照する 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
-
クラスター内に PVC を作成します。
oc create -f <my-pvc.yaml>
-
作成した 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
-
クラスター内にポッドを作成します。
oc apply -f pod.yaml
-
ポッドがデプロイされたことを確認するために、アプリが
Running
状況になるまで待ちます。oc get pods
出力例
NAME READY STATUS RESTARTS AGE app 1/1 Running 0 2m58s
-
アプリがデータを書き込めることを確認します。
- ポッドにログインします。
oc exec <app-pod-name> -it -- bash
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
- ポッドを終了します。
exit
- ポッドにログインします。