4.3. Azure File を使用した永続ストレージ

OpenShift Container Platform では、Microsoft Azure File ボリュームがサポートされます。Azure を使用して、OpenShift Container Platform クラスターに永続ストレージをプロビジョニングできます。これには、Kubernetes と Azure についてのある程度の理解があることが前提となります。

Kubernetes 永続ボリュームフレームワークは、管理者がクラスターのプロビジョニングを永続ストレージを使用して実行できるようにし、ユーザーが基礎となるインフラストラクチャーの知識がなくてもこれらのリソースを要求できるようにします。Azure File ボリュームを動的にプロビジョニングできます。

永続ボリュームは、単一のプロジェクトまたは namespace にバインドされず、OpenShift Container Platform クラスター全体で共有できます。永続ボリューム要求 (PVC) はプロジェクトまたは namespace に固有のもので、アプリケーションで使用できるようにユーザーによって要求されます。

重要

インフラストラクチャーにおけるストレージの高可用性は、基礎となるストレージのプロバイダーに委ねられています。

重要

Azure File ボリュームは Server Message Block を使用します。

関連情報

4.3.1. Azure File 共有永続ボリューム要求 (PVC) の作成

永続ボリューム要求 (PVC) を作成するには、最初に Azure アカウントおよびキーを含む Secret オブジェクトを定義する必要があります。このシークレットは PersistentVolume 定義に使用され、アプリケーションで使用できるように永続ボリューム要求 (PVC) によって参照されます。

前提条件

  • Azure File 共有があること。
  • この共有にアクセスするための認証情報 (とくにストレージアカウントおよびキー) が利用可能であること。

手順

  1. Azure File の認証情報が含まれる Secret オブジェクトを作成します。

    $ oc create secret generic <secret-name> --from-literal=azurestorageaccountname=<storage-account> \ 1
      --from-literal=azurestorageaccountkey=<storage-account-key> 2
    1
    Azure File ストレージアカウントの名前。
    2
    Azure File ストレージアカウントキー。
  2. 作成した Secret オブジェクトを参照する PersistentVolume を作成します。

    apiVersion: "v1"
    kind: "PersistentVolume"
    metadata:
      name: "pv0001" 1
    spec:
      capacity:
        storage: "5Gi" 2
      accessModes:
        - "ReadWriteOnce"
      storageClassName: azure-file-sc
      azureFile:
        secretName: <secret-name> 3
        shareName: share-1 4
        readOnly: false
    1
    永続ボリュームの名前。
    2
    この永続ボリュームのサイズ。
    3
    Azure File 共有の認証情報を含むシークレットの名前。
    4
    Azure File 共有の名前。
  3. 作成した永続ボリュームにマップする PersistentVolumeClaim オブジェクトを作成します。

    apiVersion: "v1"
    kind: "PersistentVolumeClaim"
    metadata:
      name: "claim1" 1
    spec:
      accessModes:
        - "ReadWriteOnce"
      resources:
        requests:
          storage: "5Gi" 2
      storageClassName: azure-file-sc 3
      volumeName: "pv0001" 4
    1
    永続ボリューム要求 (PVC) の名前。
    2
    この永続ボリューム要求 (PVC) のサイズ。
    3
    永続ボリュームのプロビジョニングに使用されるストレージクラスの名前。PersistentVolume 定義で使用されるストレージクラスを指定します。
    4
    Azure File 共有を参照する既存の PersistentVolume オブジェクトの名前。

4.3.2. Azure File 共有の Pod へのマウント

永続ボリューム要求 (PVC) の作成後に、これをアプリケーション内で使用できます。以下の例は、この共有を Pod 内にマウントする方法を示しています。

前提条件

  • 基礎となる Azure File 共有にマップされる永続ボリューム要求 (PVC) があること。

手順

  • 既存の永続ボリューム要求 (PVC) をマウントする Pod を作成します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-name 1
    spec:
      containers:
        ...
        volumeMounts:
        - mountPath: "/data" 2
          name: azure-file-share
      volumes:
        - name: azure-file-share
          persistentVolumeClaim:
            claimName: claim1 3
    1
    Pod の名前。
    2
    Pod 内に Azure File 共有をマウントするパス。コンテナーのルート (/) や、ホストとコンテナーで同じパスにはマウントしないでください。これは、コンテナーに十分な特権が付与されている場合、ホストシステムを破壊する可能性があります (例: ホストの /dev/pts ファイル)。ホストをマウントするには、/host を使用するのが安全です。
    3
    以前に作成された PersistentVolumeClaim オブジェクトの名前。