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

5.5.2 PersistentVolumeの作成

始める前に

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

参照

本製品のNFSサーバには、インストール時にAutomation Managerが共有ディレクトリを作成します。 詳細は、「インストールガイド」および「設計ガイド」の 「Automation Managerに関する設定」を参照してください。

目的・背景

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

手順

以降の手順は、Ansibleサーバにログインして実行します。
  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/kubernetes_container_data_00
            server: 192.168.2.30
    設定項目 説明
    metadata.name

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

    spec.capacity.storage

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

    注意

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

    Filesystemを指定してください。

    spec.accessModes

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

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

    注意

    実際のアクセス制限は、NFSサーバ側で行う必要があります。 Automation Managerの設定項目nfs_exports[n].optionによって、 共有ディレクトリを読み取り専用または読み書き可能のどちらにするかを決めることができます。 以下は、各アクセスモードに対応するnfs_exports[n].optionの設定例です。

    ReadOnlyManyの場合:

    /var/FJSGHD/kubernetes_container_data_01 192.168.0.0/20(ro,insecure,no_subtree_check,no_root_squash)

    ReadWriteManyの場合:

    /var/FJSGHD/kubernetes_container_data_01 192.168.0.0/20(rw,insecure,no_subtree_check,no_root_squash)
    spec.persistentVolumeReclaimPolicy

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

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

    NFSサーバのストレージをマウントする際のオプションです。本製品により構築されるNFSサーバを使用する場合は以下のオプションを指定してください。

    - hard
    - nfsvers=4
    spec.nfs.path

    共有ディレクトリの絶対パスを指定します。 本製品により構築されるNFSサーバを使用する場合は、インストール時に設定したAutomation Managerの設定項目nfs_exports[n].pathのいずれかと一致する必要があります。

    spec.nfs.server

    NFSサーバのIPアドレスを指定してください。本製品により構築されるNFSサーバを使用する場合は192.168.2.30を指定します。

    参照

    設定項目の詳細については、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になっていることを確認します。