5.11. Azure File CSI Driver Operator

5.11.1. 概要

OpenShift Container Platform は、Microsoft Azure File Storage の Container Storage Interface (CSI) ドライバーを使用して、永続ボリューム (PV) をプロビジョニングできます。

CSI Operator およびドライバーを使用する場合は、永続ストレージ および CSI ボリュームの設定 について理解しておくことが推奨されます。

Azure File ストレージアセットにマウントする CSI でプロビジョニングされた永続ボリューム (PV) を作成するには、OpenShift Container Platform は、デフォルトで Azure File CSI Driver Operator および Azure File CSI ドライバーを openshift-cluster-csi-drivers namespace にインストールします。

  • Azure File CSI Driver Operator: 永続ボリューム要求 (PVC) の作成に使用できる azurefile-csi というストレージクラスを提供します。
  • Azure File CSI ドライバー を使用すると、Azure File PV を作成し、マウントできます。Azure File CSI ドライバーは、ストレージボリュームをオンデマンドで作成できるようにし、クラスター管理者がストレージを事前にプロビジョニングする必要がなくすことで、動的ボリュームのプロビジョニングをサポートします。

Azure File CSI Driver Operator は以下を サポートしません

  • 仮想ハードディスク (VHD)
  • ネットワークファイルシステム (NFS): OpenShift Container Platform は NFS がサポートするストレージクラスをデプロイしません。
  • FIPS モードが有効なノードでの実行

サポートされる機能の詳細は、サポートされる CSI ドライバーおよび機能 を参照してください。

5.11.2. NFS のサポート

OpenShift Container Platform は、Network File System (NFS) を備えた Azure File Container Storage Interface (CSI) Driver Operator がサポートされていますが、次の制限があります。

  • コントロールプレーンノードにスケジュールされている Azure File NFS ボリュームを含む Pod を作成すると、マウントが拒否されます。

    この問題を回避するには、コントロールプレーンノードがスケジュール可能で、Pod がワーカーノードで実行できる場合は、nodeSelector または Affinity を使用してワーカーノードで Pod をスケジュールします。

  • FS グループポリシーの動作:

    重要

    NFS を使用した Azure File CSI は、Pod によって要求された fsGroupChangePolicy を受け入れません。NFS を使用した Azure File CSI は、Pod によって要求されたポリシーに関係なく、デフォルトの OnRootMismatch FS グループポリシーを適用します。

  • Azure File CSI Operator は、NFS のストレージクラスを自動的に作成しません。手動で作成する必要があります。次のようなファイルを使用します。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: <storage-class-name> 1
    provisioner: file.csi.azure.com 2
    parameters:
      protocol: nfs 3
      skuName: Premium_LRS  # available values: Premium_LRS, Premium_ZRS
    mountOptions:
      - nconnect=4
    1
    ストレージクラス名。
    2
    Azure File CSI プロバイダーを指定します。
    3
    ストレージバックエンドプロトコルとして NFS を指定します。

5.11.3. CSI について

ストレージベンダーはこれまで Kubernetes の一部としてストレージドライバーを提供してきました。Container Storage Interface (CSI) の実装では、サードパーティーのプロバイダーは、コア Kubernetes コードを変更せずに標準のインターフェイスを使用してストレージプラグインを提供できます。

CSI Operator は、in-tree (インツリー) ボリュームプラグインでは不可能なボリュームスナップショットなどのストレージオプションを OpenShift Container Platform ユーザーに付与します。