在 OpenShift Data Foundation 上部署應用程式
為 Red Hat® OpenShift® on IBM Cloud® 群集安裝 OpenShift Data Foundation 附加元件後,您可以使用 ODF 儲存類別來建立持久卷索賠 (PVC)。 然後,請參閱部署中的 PVC,讓您的應用程式可以儲存並使用基礎 ODF 儲存裝置中的資料。
- 最低必要許可權
- 編輯者 平台存取角色及 IBM Cloud Kubernetes Service中叢集的 撰寫者 服務存取角色。
-
列出 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> -
建立 Pod 的 YAML 配置檔,以裝載您所建立的 PVC。 下列範例會建立
nginxPod,將現行日期和時間寫入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 -
在群集中建立 pod。
oc apply -f pod.yaml -
若要驗證 Pod 是否已部署,請等待您的應用程式進入
Running狀態。oc get pods輸出範例
NAME READY STATUS RESTARTS AGE app 1/1 Running 0 2m58s -
驗證應用程式可以寫入資料。
- 登入 Pod。
oc exec <app-pod-name> -it -- bash - 顯示
test.txt檔案的內容,以確認您的應用程式可以將資料寫入持續性儲存空間。輸出範例cat /test/test.txtTue 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 - 結束 Pod。
exit
- 登入 Pod。