次の方法で共有


Azure Kubernetes Service (AKS) の Container Storage Interface (CSI) ドライバー

Container Storage Interface (CSI) は、Kubernetes のコンテナー化されたワークロードに任意のブロックおよびファイル ストレージ システムを公開する標準です。 CSI を採用および使用すると、Kubernetes のコア コードを触ったり、そのリリース サイクルを待つことなく、Azure Kubernetes Service (AKS) が Kubernetes で新しい、あるいは既存のストレージ システムを公開するプラグインを記述、デプロイ、反復処理できるようになります。

AKS での CSI ストレージ ドライバーのサポートにより、次をネイティブに使用できるようになります。

  • Azure Disks は、Kubernetes DataDisk リソースを作成するために使用できます。 ディスクには、高パフォーマンス SSD を使用する Azure Premium Storage、または標準 HDD または Standard SSD を使用する Azure Standard Storage を使用できます。 ほとんどの運用ワークロードと開発ワークロードでは Premium Storage を使用します。 Azure Disk は ReadWriteOnce としてマウントされるため、AKS の 1 つのノードでのみ使用できます。 複数のノードで同時にアクセスするストレージ ボリュームの場合は、 Azure Files を使用してください。
  • Azure Files は、Azure Storage アカウントによって支えられる SMB 3.0/3.1 共有をポッドにマウントするために使用できます。 Azure Files を使用すると、複数のノードとポッド間でデータを共有できます。 Azure Files には、標準 HDD を使用する Azure Standard Storage または高パフォーマンス SSD を使用する Azure Premium Storage を使用できます。
  • Azure Blob Storage を使用して、Blob Storage (またはオブジェクト ストレージ) をファイル システムとしてコンテナーまたはポッドにマウントできます。 Blob Storage を使用すると、ログ ファイル データ、イメージまたはドキュメント、HPC などの大規模な非構造化データセットで動作するアプリケーションをクラスターでサポートできます。 さらに、 Azure Data Lake Storage にデータを取り込む場合は、別の中間ファイル システムを構成せずに、AKS でデータを直接マウントして使用できます。

ヒント

データへのブロック レベルのアクセスのためにフル マネージド ソリューションが必要な場合は、CSI ドライバーの代わりに Azure コンテナー ストレージの使用を検討してください。 Azure コンテナー ストレージは Kubernetes と統合されており、永続ボリュームの動的および自動プロビジョニングが可能になります。 Azure コンテナー ストレージでは、バッキング ストレージとして Azure Disks、エフェメラル ディスク、Azure Elastic SAN (プレビュー) がサポートされており、Kubernetes クラスター上で実行されているステートフル アプリケーションに柔軟性とスケーラビリティが提供されます。

前提条件

  • Azure CLI バージョン 2.42 以降がインストールされて構成されている必要があります。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
  • オープンソースの CSI ストレージ ドライバーがクラスターにインストールされている場合は、Azure ストレージ CSI ドライバーを有効にする前にアンインストールします。
  • "Kubernetes クラスターでは、Container Storage Interface (CSI) ドライバー StorageClass を使用する必要があります" という AKS のポリシー定義に Azure Policy を適用するには、新規と既存のクラスターで Azure Policy アドオンを有効にする必要があります。 既存のクラスターについては、Kubernetes 用の Azure Policy の概要を確認して、それを有効にします。

ディスク暗号化のサポートされるシナリオ

CSI ストレージ ドライバーは、次のシナリオをサポートします。

既存のクラスターで CSI ストレージ ドライバーを有効にする

新しいクラスターで CSI ストレージ ドライバーを有効にするには、ストレージ システムに応じて、次のいずれかのパラメーターを含めます。

az aks update --name myAKSCluster --resource-group myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller

この操作が完了するまでに数分かかることがあります。 完了すると、クラスターでドライバーを有効にした状態が出力に表示されます。 次の例は、BLOB ストレージの CSI ドライバーを有効にしたときの結果を示すセクションに似ています。

"storageProfile": {
    "blobCsiDriver": {
      "enabled": true
    },

新規または既存のクラスターで CSI ストレージ ドライバーを無効にする

新しいクラスターで CSI ストレージ ドライバーを無効にするには、ストレージ システムに応じて、次のいずれかのパラメーターを含めます。

az aks create \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --disable-disk-driver \
    --disable-file-driver \
    --disable-blob-driver \
    --disable-snapshot-controller \
    --generate-ssh-keys

既存のクラスターで CSI ストレージ ドライバーを無効にするには、ストレージ システムに応じて、前述のパラメーターのいずれかを使用します。

az aks update \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --disable-disk-driver \
    --disable-file-driver \
    --disable-blob-driver \
    --disable-snapshot-controller 

Note

CSI ボリュームを削除するときは、PersistentVolume オブジェクトではなく、対応する PersistentVolumeClaim オブジェクトを削除することをお勧めします。 CSI ドライバーの外部プロビジョナーは PersistentVolumeClaim の削除に反応し、その再利用ポリシーに基づいて、CSI ボリューム ドライバー コマンドに対して DeleteVolume 呼び出しを発行してボリュームを削除します。 PersistentVolume オブジェクトはその後に削除されます。

ツリー内のカスタム ストレージ クラスを CSI に移行する

Kubernetes バージョン 1.26 以降、ツリー内永続ボリュームの種類 kubernetes.io/azure-disk および kubernetes.io/azure-file は非推奨となり、サポートされなくなります。 ツリー内ドライバー とは、プラグインの CSI ドライバーに対し、コア Kubernetes コードの一部であるストレージ ドライバーを指します。

非推奨になった後に、これらのドライバーの削除は予定されていませんが、対応する CSI ドライバー disk.csi.azure.com および file.csi.azure.com への移行を行う必要があります。 ストレージ クラスの移行オプションを確認し、クラスターをアップグレードして Azure Disks と Azure Files CSI ドライバーを使うには、ツリー内から CSI ドライバーへの移行に関する記事を参照してください。

ツリー内ドライバーのストレージ クラスを作成している場合、クラスターを 1.21.x にアップグレードした後に CSI 移行が有効になるため、それらのストレージ クラスは引き続き機能します。 CSI 機能を使う場合は、移行を実行する必要があります。

次のステップ