ページの先頭行へ戻る
Enterprise Service Development Platform V1.2.0 運用ガイド
FUJITSU Software

4.5.2 PersistentVolumeの作成

始める前に

  • PersistentVolumeを一つ作成するために、NFSサーバーで公開される共有ディレクトリが一つ必要です。

目的・背景

ここでは、PersistentVolumeの作成方法を説明します。 コンテナ用永続ストレージを利用するためには、PersistentVolumeClaimの要求を満たすPersistentVolumeを事前に作成しておく必要があります。

手順

以降の手順は、Kubernetes masterサーバーにログインして実行します。
  1. PersistentVolumeの使用状況を確認します。
    $ kubectl get pv
    NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM     STORAGECLASS   REASON    AGE
    pv01      1Gi        RWO            Recycle          Available             slow                     5s

    STATUSフィールドの値で、使用状況を確認することができます。

    • Availableであれば、使用可能です。
    • Boundであれば、既にPersistentVolumeClaimにバインドされています。
  2. PersistentVolumeの定義ファイルを作成します。

    例:pv.yml

    apiVersion: v1
    kind: PersistentVolume
    metadata:
        name: pv02
    spec:
        capacity:
            storage: 1Gi
        volumeMode: Filesystem
        accessModes:
            - ReadWriteOnce
        persistentVolumeReclaimPolicy: Recycle
        mountOptions:
            - hard
            - nfsvers=4
        nfs:
            path: /var/FJSGHD/volumes/kubernetes_container_data_00
            server: <NFSサーバーのIPアドレス>
    設定項目 説明
    metadata.name

    PersistentVolumeの名前を指定します。 他のPersistentVolumeと重複しないようにしてください。

    spec.capacity.storage

    PersistentVolumeとして確保したストレージ容量を指定します。

    注意

    NFSサーバー上で使用されるストレージ容量が制限されたり、 予約されるわけではありません。 ストレージ容量の管理は、利用者側で行ってください。
    spec.volumeMode

    Filesystemを指定してください。

    spec.accessModes

    アクセスモードを指定します。アクセスモードは、PersistentVolumeに対してどのようなアクセスが可能であるかを表します。 指定可能なアクセスモードを以下に示します。

    • ReadOnlyMany: 複数のKubernetes nodeから読み取り専用でマウントできることを示します。
    • ReadWriteMany: 複数のKubernetes nodeから読み書き可能でマウントできることを示します。

    注意

    実際のアクセス制限は、NFSサーバー側で行う必要があります。

    spec.persistentVolumeReclaimPolicy

    PersistentVolumeの再利用に関するポリシーです。 Podが永続ストレージの利用を終えて、 PersistentVolumeにバインドされたPersistentVolumeClaimが削除されたときに、 何が起こるかが決まります。指定可能な値を以下に示します。

    Retain
    PersistentVolumeClaimを削除しても、NFSサーバーの共有ディレクトリにあるデータは保持され、 そのままではPersistentVolumeを再利用できない状態になります。 再利用するためには、以下の作業を手動で実行してください。
    1. PersistVolumeを削除します。削除方法については、4.5.3 PersistentVolumeの削除を参照してください。
    2. 共有ディレクトリのあるデータを削除します。
    3. 再利用可能になった共有ディレクトリを指定して、PersistentVolumeを再作成します。
    Recycle
    PersistentVolumeClaimを削除すると、NFSサーバーの共有ディレクトリにあるデータが 自動的に削除され、PersistentVolumeは再利用可能な状態になります。
    spec.mountOptions

    NFSサーバーのストレージをマウントする際のオプションです。

    spec.nfs.path

    共有ディレクトリの絶対パスを指定します。

    spec.nfs.server

    NFSサーバーのIPアドレスを指定してください。

    参照

    設定項目の詳細については、Kubernetesの公式ドキュメントを参照してください。

  3. PersistentVolumeを作成します。
    $ kubectl apply -f pv.yml
    persistentvolume "pv02" created
  4. PersistentVolumeが作成されたことを確認します。
    $ kubectl get pv
    NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM     STORAGECLASS   REASON    AGE
    pv01      1Gi        RWO            Recycle          Available             slow                     5s
    pv02      1Gi        RWO            Recycle          Available             slow                     5s
    STATUSフィールドの値が、Availableになっていることを確認します。