6.12.4.2. PV と PVC を作成して、Azure File のサブスクリプション間で静的にプロビジョニングする場合:


前提条件

  • 1 つのサブスクリプション (サブスクリプション A とします) で、サービスプリンシパルまたはマネージドアイデンティティーを Azure アイデンティティーとして使用して、Azure に OpenShift Container Platform クラスターをインストールした。
  • クラスターと同じテナント内にあるストレージを持つ別のサブスクリプション (Subscription B とする) へのアクセス
  • Azure CLI にログイン済み

手順

  1. Azure File 共有のリソースグループ、ストレージアカウント、ストレージアカウントキー、Azure File 名を記録します。これらの値は次のステップで使用されます。
  2. 次のコマンドを実行して、永続ボリュームパラメーター spec.csi.nodeStageSecretRef.name のシークレットを作成します。

    $ oc create secret generic azure-storage-account-<storageaccount-name>-secret --from-literal=azurestorageaccountname="<azure-storage-account-name>" --from-literal azurestorageaccountkey="<azure-storage-account-key>" --type=Opaque

    この場合の <azure-storage-account-name><azure-storage-account-key> は、ステップ 1 でそれぞれ記録した Azure ストレージアカウントの名前とキーです。

  3. 次のサンプルファイルと同様の設定を使用して、永続ボリューム (PV) を作成します。

    PV YAML ファイルの例

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      annotations:
        pv.kubernetes.io/provisioned-by: file.csi.azure.com
      name: <pv-name> 
    1
    
    spec:
      capacity:
        storage: 10Gi 
    2
    
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      storageClassName: <sc-name> 
    3
    
      mountOptions:
        - cache=strict
        - nosharesock
        - actimeo=30
        - nobrl
      csi:
        driver: file.csi.azure.com
        volumeHandle: "{resource-group-name}#{storage-account-name}#{file-share-name}" 
    4
    
        volumeAttributes:
          shareName: <existing-file-share-name> 
    5
    
        nodeStageSecretRef:
          name: <secret-name>  
    6
    
          namespace: <secret-namespace>  
    7

    1
    PV の名前。
    2
    PV のサイズ。
    3
    ストレージクラスの名前。
    4
    クラスター内の同一の共有で、それぞれの volumeHandle が一意であることを確認します。
    5
    `<existing-file-share-name> には、完全なパスではなく、ファイル共有名のみを使用します。
    6
    前のステップで作成されたシークレットの名前。
    7
    シークレットが存在する namespace。
  4. 次のような設定を使用して、ステップ 1 で参照された既存の Azure File 共有を指定する永続値要求 (PVC) を作成します。

    PVC YAML ファイルの例

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: <pvc-name> 
    1
    
    spec:
      storageClassName: <sc-name> 
    2
    
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi

    1
    PVC の名前。
    2
    前のステップで PV に指定したストレージクラスの名前。

ストレージクラスの使用を推奨

前述のサブスクリプション間の静的プロビジョニング例では、静的プロビジョニングを達成するためにストレージクラスは必要ないため、PV および PVC で参照されるストレージクラスは厳密には必要ありません。しかし、手動で作成された PVC が手動で作成された PV と意図せず一致しないために、新しい PV の動的プロビジョニングがトリガーされる可能性を回避するために、ストレージクラスを使用することが推奨されます。この問題の別の回避方法としては、provisioner: kubernetes.io/no-provisioner を使用してストレージクラスを作成するか、存在しないストレージクラスを参照できます。どちらの場合も、動的プロビジョニングは確実に実行されません。これらのストラテジーのいずれかを使用する場合、PV と PVC の不一致が発生すると PVC は保留状態のままになるため、エラーを修正できます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る