在 OpenShift Data Foundation 上部署应用程序

为 Red Hat® OpenShift® on IBM Cloud® 集群安装 OpenShift Data Foundation 附加组件后,就可以使用 ODF 存储类创建持久卷声明 (PVC)。 然后,请参阅部署中的 PVC,以便应用程序可以保存和使用底层 ODF 存储设备中的数据。

最低必需许可权
IBM Cloud Kubernetes Service中集群的 编辑者 平台访问角色和 写入者 服务访问角色。

访问 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 配置文件。 以下示例创建将当前日期和时间写入 test.txt 文件的 nginx 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