6.12.5. Azure File の静的プロビジョニング
静的プロビジョニングの場合、クラスター管理者は、実際のストレージの詳細を定義する永続ボリューム (PV) を作成します。その後、クラスターユーザーは、これらの PV を消費する永続ボリューム要求 (PVC) を作成できます。
前提条件
- 管理者権限を持つ OpenShift Container Platform クラスターへのアクセス
手順
Azure File の静的プロビジョニングを使用する場合:
Azure ストレージアカウントのシークレットをまだ作成していない場合は、ここで作成します。
このシークレットには、次の 2 つのキーと値のペアを含む非常に特殊な形式の Azure ストレージアカウント名とキーが含まれている必要があります。
-
azurestorageaccountname: <storage_account_name> azurestorageaccountkey: <account_key>azure-secret という名前のシークレットを作成するには、次のコマンドを実行します。
oc create secret generic azure-secret -n <namespace_name> --type=Opaque --from-literal=azurestorageaccountname="<storage_account_name>" --from-literal=azurestorageaccountkey="<account_key>"1 2
-
次の YAML サンプルファイルを使用して PV を作成します。
PV YAML ファイルの例
apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: file.csi.azure.com name: pv-azurefile spec: capacity: storage: 5Gi1 accessModes: - ReadWriteMany2 persistentVolumeReclaimPolicy: Retain3 storageClassName: <sc-name>4 mountOptions: - dir_mode=07775 - file_mode=0777 - uid=0 - gid=0 - cache=strict6 - nosharesock7 - actimeo=308 - nobrl9 csi: driver: file.csi.azure.com volumeHandle: "{resource-group-name}#{account-name}#{file-share-name}"10 volumeAttributes: shareName: EXISTING_FILE_SHARE_NAME11 nodeStageSecretRef: name: azure-secret12 namespace: <my-namespace>13 - 1
- ボリュームサイズ:
- 2
- アクセスモード: 読み取り/書き込みおよびマウントパーミッションを定義します。詳細は、関連情報 の アクセスモード を参照してください。
- 3
- 回収ポリシー: ボリュームが解放された後にボリュームをどのように処理するかをクラスターに指示します。受け入れられる値は、
Retain、Recycle、またはDeleteです。 - 4
- ストレージクラス名: この名前は、この特定の PV にバインドするために PVC によって使用されます。静的プロビジョニングの場合、
StorageClassオブジェクトが存在する必要はありませんが、PV と PVC 内の名前は一致する必要があります。 - 5
- セキュリティーを強化したい場合は、このパーミッションを変更してください。
- 6
- キャッシュモード: 受け入れられる値は
none、strict、looseです。デフォルトはstrictです。 - 7
- 再接続時の競合が発生する確率を低減させるために使用します。
- 8
- CIFS クライアントがサーバーから属性情報を要求する前に、ファイルまたはディレクトリーの属性をキャッシュする時間 (秒単位)。
- 9
- サーバーへのバイト範囲ロック要求の送信を無効化し、POSIX ロックの扱いに課題を持つアプリケーションに対応します。
- 10
volumeHandleがクラスター全体で一意であることを確認します。resource-group-nameは、ストレージアカウントが存在する Azure リソースグループです。- 11
- ファイル共有名: ファイル共有名のみを使用し、フルパスは使用しないでください。
- 12
- この手順のステップ 1 で作成したシークレットの名前を指定します。この例では、azure-secret です。
- 13
- シークレットが作成された namespace: これは、PV が消費される namespace である必要があります。
次のサンプルファイルを使用して、PV を参照する PVC を作成します。
PVC YAML ファイルの例
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc-name>1 namespace: <my-namespace>2 spec: volumeName: pv-azurefile3 storageClassName: <sc-name>4 accessModes: - ReadWriteMany5 resources: requests: storage: 5Gi6 - 1
- PVC の名前。
- 2
- PVC の namespace。
- 3
- 前のステップで作成した PV の名前。
- 4
- ストレージクラス名: この名前は、この特定の PV にバインドするために PVC によって使用されます。静的プロビジョニングの場合、
StorageClassオブジェクトが存在する必要はありませんが、PV と PVC 内の名前は一致する必要があります。 - 5
- アクセスモード: PVC に対して要求された読み取り/書き込みアクセスを定義します。要求は、特定のアクセスモードのストレージを要求する際にボリュームと同じ規則を使用します。詳細は、関連情報 の アクセスモード を参照してください。
- 6
- PVC サイズ。
次のコマンドを実行して、PVC が作成され、しばらくしてから
Boundステータスになっていることを確認します。$ oc get pvc <pvc-name>1 - 1
- PVC の名前。
出力例
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-name Bound pv-azurefile 5Gi ReadWriteMany my-sc 7m2s