Azure Kubernetes Service 用 Azure NetApp Files を構成する
永続ボリュームとは、Kubernetes ポッドで使用するためにプロビジョニングされているストレージの一部です。 永続ボリュームは 1 つまたは複数のポッドで使用でき、静的または動的にプロビジョニングできます。 この記事では、Azure Kubernetes Service (AKS) クラスター上のポッドで使用される Azure NetApp Files を構成する方法について説明します。
Azure NetApp Files は、Azure で実行されているエンタープライズ クラスの高性能従量制課金ファイル ストレージ サービスであり、NFS (NFSv3 または NFSv4.1)、SMB、デュアル プロトコル (NFSv3 と SMB、または NFSv4.1 と SMB) を使用するボリュームをサポートします。 Kubernetes ユーザーには、Azure NetApp Files ボリュームを Kubernetes のワークロードに使用するために以下の 2 つのオプションがあります。
- Azure NetApp Files ボリュームを静的に作成します。 このシナリオでは、ボリュームの作成は AKS の外部で行われます。 ボリュームは、Azure CLI を使用するか Azure portal から作成され、その後
PersistentVolume
の作成によって Kubernetes に公開されます。 静的に作成された Azure NetApp Files ボリュームには多くの制限 (たとえば、拡張できない、過剰なプロビジョニングが必要など) があります。 静的に作成されたボリュームは、ほとんどのユース ケースには推奨されません。 - Azure NetApp Files ボリュームを動的に作成し、Kubernetes でオーケストレーションを行います。 この方法は、Kubernetes で複数のボリュームを直接作成する場合にお勧めの方法であり、Astra Trident を使用して実施します。 Astra Trident は、CSI に準拠した動的ストレージ オーケストレーターであり、Kubernetes を通じてボリュームをネイティブにプロビジョニングするのに役立ちます。
注意
デュアル プロトコル ボリュームは静的にのみ作成できます。 Azure Kubernetes Service でデュアル プロトコル ボリュームを使用する方法の詳細については、「Azure Kubernetes Service 用 Azure NetApp Files のデュアル プロトコル ボリュームをプロビジョニングする」を参照してください。
CSI ドライバーを使用して AKS ワークロードから Azure NetApp Files ボリュームを直接使用することは、ほとんどのユース ケースでお勧めの構成です。 この要件は、Kubernetes 用のオープンソースの動的ストレージ オーケストレーターである Astra Trident を使用することで満たします。 Astra Trident は、Kubernetes 専用のエンタープライズ レベルのストレージ オーケストレーターであり、NetApp で完全にサポートされています。 ストレージ プロビジョニングを自動化することで、Kubernetes クラスターからストレージへのアクセスを簡略化します。
Astra Trident の Azure NetApp Files 用 Container Storage Interface (CSI) ドライバーを利用することで、基になる詳細情報を抽象化し、オンデマンドでボリュームの作成、拡張、スナップショットすることができます。 また、Astra Trident を使用すると、Astra Trident の上にビルドされた Astra Control Service を使用できます。 Astra Control Service を使用して、Azure リージョン内のクラスター間およびリージョン間で AKS ワークロードのアプリケーション データ ライフサイクルをバックアップ、復旧、移動、管理し、ビジネスおよびサービス継続性のニーズを満たすことができます。
重要
オープンソース ソフトウェアは、AKS のドキュメントとサンプル全体で説明されています。 デプロイするソフトウェアは、AKS サービス レベル アグリーメント、限定保証、Azure サポートから除外されます。 AKS と共にオープンソース テクノロジを使用する場合は、それぞれのコミュニティとプロジェクト保守担当者から受けられるサポート オプションを調べ、計画を策定してください。
たとえば、Ray の GitHub リポジトリでは、応答時間、目的、サポート レベルが異なる複数のプラットフォームについて説明しています。
Microsoft は、AKS 上に展開するオープンソース パッケージを構築する責任を負います。 その責任には、ビルド、スキャン、署名、検証、修正プログラム プロセスの完全な所有権と、コンテナー イメージ内のバイナリの制御権が伴います。 詳細については、「AKS の脆弱性の管理」と「AKS のサポート範囲」を参照してください。
開始する前に
Azure NetApp Files を使用する場合、次の考慮事項が適用されます。
- AKS クラスターは、Azure NetApp Files をサポートするリージョンにある必要があります。
- インストールおよび構成済みの Azure CLI バージョン 2.0.59 以降。 バージョンを確認するには、
az --version
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。 - AKS クラスターの初期デプロイ後、Azure NetApp Files ボリュームのプロビジョニングを静的または動的に行うかを選択できます。
- ネットワーク ファイル システム (NFS) を使用する Azure NetApp Files で動的プロビジョニングを使用するには、Astra Trident バージョン 19.07 以上をインストールして構成します。 サーバー メッセージ ブロック (SMB) を使用する Azure NetApp Files で動的プロビジョニングを使用するには、Astra Trident バージョン 22.10 以上をインストールして構成します。 SMB 共有の動的プロビジョニングは、Windows ワーカー ノードでのみサポートされます。
- Azure NetApp Files の SMB ボリュームをデプロイする前に、Azure NetApp Files が AD DS に確実に接続されるように、Azure NetApp Files の AD DS 統合要件を確認する必要があります。 詳細については、Active Directory Domain Services サイトの設計と計画に関するガイドラインに関する記事を参照してください。 AKS クラスターと Azure NetApp Files の両方に、同じ AD への接続が必要です。
AKS ワークロード用 Azure NetApp Files を構成する
このセクションでは、AKS ワークロード用 Azure NetApp Files を設定する方法について説明します。 これは、この記事内のすべてのシナリオに適用できます。
後で使用するために、変数を定義します。 "myresourcegroup"、"mylocation"、"myaccountname"、"mypool1"、"poolsize"、"premium"、"myvnet"、"myANFSubnet"、および "myprefix" をご使用の環境に適した値に置き換えます。
RESOURCE_GROUP="myresourcegroup" LOCATION="mylocation" ANF_ACCOUNT_NAME="myaccountname" POOL_NAME="mypool1" SIZE="poolsize" # size in TiB SERVICE_LEVEL="Premium" # valid values are Standard, Premium and Ultra VNET_NAME="myvnet" SUBNET_NAME="myANFSubnet" ADDRESS_PREFIX="myprefix"
次のコマンドを実行して、Microsoft.NetApp リソース プロバイダーを登録します。
az provider register --namespace Microsoft.NetApp --wait
注意
この操作が完了するまでに数分かかる場合があります。
コマンド
az netappfiles account create
を使用して新しいアカウントを作成します。 AKS で使用する Azure NetApp アカウントを作成する場合は、既存のリソース グループにアカウントを作成するか、AKS クラスターと同じリージョンに新しいアカウントを作成できます。az netappfiles account create \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --account-name $ANF_ACCOUNT_NAME
コマンド
az netappfiles pool create
を使用して新しい容量プールを作成します。 コマンドに示されている変数を、ご使用の Azure NetApp Files 情報で置き換えます。account_name
は、手順 3 で作成したのと同じである必要があります。az netappfiles pool create \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --account-name $ANF_ACCOUNT_NAME \ --pool-name $POOL_NAME \ --size $SIZE \ --service-level $SERVICE_LEVEL
コマンド
az network vnet subnet create
を使用して、Azure NetApp Files に委任するサブネットを作成します。 AKS クラスターの既存の仮想ネットワークをホストするリソース グループを指定します。 コマンドに示されている変数を、ご使用の Azure NetApp Files 情報で置き換えます。注意
このサブネットは、AKS クラスターと同じ仮想ネットワーク内に存在する必要があります。
az network vnet subnet create \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --delegations "Microsoft.Netapp/volumes" \ --address-prefixes $ADDRESS_PREFIX
NFS または SMB 用 Azure NetApp Files ボリュームを静的または動的にプロビジョニングする
AKS ワークロード用 Azure NetApp Files を構成したら、容量プール内の NFS、SMB、またはデュアルプロトコル ボリュームを使用して、Azure NetApp Files を静的または動的にプロビジョニングできます。 次の手順に従います。
- Azure Kubernetes Service 用 Azure NetApp Files の NFS ボリュームをプロビジョニングする
- Azure Kubernetes Service 用 Azure NetApp Files の SMB ボリュームをプロビジョニングする
- Azure Kubernetes Service 用 Azure NetApp Files のデュアル プロトコル ボリュームをプロビジョニングする
次のステップ
Astra Trident では、Azure NetApp Files の多くの機能がサポートされています。 詳細については、次のトピックを参照してください。
Azure Kubernetes Service