永続パフォーマンス・ブロック・ボリューム・ストレージの作成

このプロシージャは、高パフォーマンスのブロック・ボリュームを永続ストレージとして作成します。 高パフォーマンスのブロック・ボリュームが不要な場合は、「永続ブロック・ボリューム・ストレージの作成」の手順を使用します。

  1. oci-bv-highストレージ・クラス定義(provisioner: blockvolume.csi.oraclecloud.com)で指定されたCSIプラグインを使用して、高パフォーマンスのブロック・ボリュームを作成します。

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

    次に、csi-bvs-high.yamlファイルの内容を示します:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: oci-bv-high
    provisioner: blockvolume.csi.oraclecloud.com
    parameters:
      vpusPerGB: "20"
      attachment-type: "paravirtualized"
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: true
    reclaimPolicy: Delete
  2. 永続ボリューム要求を作成し、ストレージ・クラス名oci-bv-highを指定します。

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

    次に、csi-bvs-high-pvc.yamlファイルの内容を示します:

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

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

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

    storageプロパティの値は、50ギガバイト以上である必要があります。

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

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

    oci-bv-highストレージ・クラス定義には次が含まれているため、PVCのステータスは「保留中」になります:

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

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

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx-high
    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-high

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

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

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

    $ kubectl describe pod nginx-high