永続ブロック・ボリューム・ストレージの作成

Compute Cloud@Customer Block Volumeサービスは、永続的で耐久性のある高パフォーマンスのブロック・ストレージを提供し、コンテナの外部にデータを格納するために使用できます。

このプロシージャは、リクエストされたoci-bvストレージ・クラスを自動的に作成します。このクラスを作成する必要はありません。この手順は、kubectlコマンドを使用して永続ボリューム要求を作成することから始まります。

  1. ストレージ・クラス名oci-bvを指定して、永続ボリューム要求を作成します。

    $ kubectl create -f csi-bvs-pvc.yaml

    csi-bvs-pvc.yamlファイルの内容は次のとおりです。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: mynginxclaim
    spec:
      storageClassName: "oci-bv"
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 50Gi

    metadataセクションの永続ボリューム要求名はユーザー指定です。1つの永続ボリュームに複数の永続ボリューム要求を設定できます。

    accessModesの値には、ReadWriteOnceを指定します。ReadWriteManyは使用しないでください。

    storageプロパティの値は、50GB以上である必要があります。

  2. 次のコマンドを実行して、PVCが作成されたことを確認します。

    $ kubectl get pvc
    NAME           STATUS   VOLUME   CAPACITY   ACCESSMODES   STORAGECLASS   AGE
    mynginxclaim   Pending                                    oci-bv         4m

    oci-bvストレージ・クラス定義には次のものが含まれているため、PVCのステータスはPendingです。

    volumeBindingMode: WaitForFirstConsumer
  3. ポッドなどの他のオブジェクトを作成するときに、PVCを使用します。

    たとえば、この定義から新しいポッドを作成できます。この定義は、/dataでポッドによってマウントされるmynginxclaim PVCをnginxボリュームとして使用するようにシステムに指示します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:latest
          ports:
            - name: http
              containerPort: 80
          volumeMounts:
            - name: data
              mountPath: /usr/share/nginx/html
      volumes:
        - name: data
          persistentVolumeClaim:
            claimName: mynginxclaim

    次のコマンドを実行して、PVCが新しいPVにバインドされていることを確認します。

    $ kubectl get pvc
    NAME           STATUS   VOLUME          CAPACITY   ACCESSMODES   STORAGECLASS   AGE
    mynginxclaim   Bound    csi-unique_ID   50Gi       RWO           oci-bv

    次のコマンドを実行して、ポッドが新しいPVCを使用していることを確認します:

    $ kubectl describe pod nginx