Azure Kubernetes Service で Azure Managed Lustre CSI ドライバーを使用する
この記事では、Azure Lustre CSI Driver for Kubernetes を使用して Azure Kubernetes Service (AKS) で Azure Managed Lustre を計画、インストール、および使用する方法について説明します。 このドライバーは、コンテナー サポート インターフェイス (CSI) の仕様に基づいています。
Azure Lustre CSI Driver for Kubernetes を使用して、AKS にデプロイされた Kubernetes コンテナーから永続ストレージ ボリュームとして Azure Managed Lustre ストレージにアクセスできます。
互換性のある Kubernetes バージョン
Azure Lustre CSI Driver for Kubernetes は、AKSと互換性があります。 他の Kubernetes のインストールは現在サポートされていません。
AKS Kubernetes バージョン 1.21 以降がサポートされています。 このサポートには、新しい AKS クラスターを作成するときに現在使用できるすべてのバージョンが含まれます。
重要
現在、Azure Lustre CSI Driver for Kubernetes は、AKS のノード プール用の Ubuntu Linux OS SKU でのみ動作します。
互換性のある Lustre バージョン
Kubernetes 用 Azure Lustre CSI ドライバーは、Azure Managed Lustre
Azure Lustre CSI Driver for Kubernetes バージョン 0.1.10 以降は、Azure Managed Lustre サービスの現在のバージョンでサポートされています。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- Azure CLI ツールがインストールされているターミナル環境。 「Azure CLI の使い始め」を参照してください。
- kubectl
、ターミナル環境にインストールされている Kubernetes 管理ツールです。 「クイック スタート: Azure CLIを使用して Azure Kubernetes Service (AKS) クラスターをデプロイする」を参照してください。 - Azure Managed Lustre デプロイ。 Azure Managed Lustre の ドキュメントを参照してください。
AKS デプロイを計画する
Azure Kubernetes Service をデプロイする場合、いくつかのオプションが AKS と Azure Managed Lustre の間の操作に影響します。
AKS で使用するネットワークの種類を決定する
Ubuntu Linux OS SKU と互換性のあるネットワークの種類は、kubenet と Azure Container Network Interface (CNI) ドライバーの 2 つです。 どちらのオプションも Azure Lustre CSI Driver for Kubernetes で動作しますが、仮想ネットワークと AKS を設定するときに理解する必要がある要件が異なります。 適切な選択を決定する方法の詳細については、「Azure Kubernetes Service (AKS)でのアプリケーションのネットワークの概念」を参照してください。
AKS と Azure Managed Lustre の相互接続性のネットワーク アーキテクチャを決定する
Azure Managed Lustre は、プライベート仮想ネットワーク内で動作します。 AKS インスタンスには、Azure Managed Lustre 仮想ネットワークへのネットワーク接続が必要です。 Azure Managed Lustre と AKS の間でネットワークを構成するには、次の 2 つの一般的な方法があります。
- 独自の仮想ネットワークに AKS をインストールし、Azure Managed Lustre 仮想ネットワークとの仮想ネットワーク ピアリングを作成します。
- AKS の Bring your own Azure virtual network オプションを使用して、Azure Managed Lustre 仮想ネットワーク上の新しいサブネットに AKS をインストールします。
Note
Azure Managed Lustre と同じサブネットに AKS をインストールすることはお勧めしません。
AKS と Azure Managed Lustre 仮想ネットワークのピアリング
2 つの仮想ネットワークをピアリングするオプションには、ネットワークの管理を異なる特権ロールに分離する利点があります。 ピアリングは、Azure サブスクリプションまたはリージョン間で実装できるため、柔軟性を高めることもできます。 仮想ネットワーク ピアリングでは、競合する IP ネットワークスペースを選択しないように、2 つのネットワーク間の調整が必要です。
Azure Managed Lustre 仮想ネットワーク上のサブネットへの AKS のインストール
AKS で Bring your own Azure virtual network 機能を使用して Azure Managed Lustre 仮想ネットワークに AKS クラスターをインストールするオプションは、ネットワークが単独で管理されるシナリオで有利です。 Azure Managed Lustre 仮想ネットワークで、AKS ネットワークの要件を満たすようにサイズ設定された追加のサブネットを作成する必要があります。
Azure Managed Lustre 仮想ネットワークで AKS をプロビジョニングする場合、ネットワーク管理の特権の分離はありません。 AKS サービス プリンシパルには、Azure Managed Lustre 仮想ネットワークに対する特権が必要です。
ドライバーを設定する
Kubernetes 用 Azure Lustre CSI ドライバーを有効にするには、次の手順を実行します。
AKS クラスターを作成します。
仮想ネットワーク ピアリングを作成します。
ドライバーをインストールします。
必要に応じてエコー ポッドを使用してインストール を確認し、ドライバーが動作していることを確認します。
次のセクションでは、各タスクについて詳しく説明します。
Azure Managed Lustre ファイル システム クラスターを作成する
Azure Managed Lustre ファイル システム クラスターをまだ作成していない場合は、ここでクラスターを作成します。 手順については、「Azure portalを使用して Azure Managed Lustre ファイル システムを作成する」を参照してください。 現時点では、ドライバーは既存の Azure Managed Lustre ファイル システムでのみ使用できます。
AKS クラスターを作成する
AKS クラスターをまだ作成していない場合は、クラスターデプロイを作成します。 Azure portalを使用して Azure Kubernetes Service (AKS) クラスターをデプロイする
仮想ネットワーク ピアリングの作成
Note
Azure Managed Lustre 仮想ネットワーク上のサブネットに AKS をインストールした場合は、このネットワーク ピアリング手順をスキップします。
AKS 仮想ネットワークは、AKS クラスターのリソース グループとは別のリソース グループに作成されます。 このリソース グループの名前は、Azure portal で AKS クラスターに移動し、[プロパティ]を
AKS 仮想ネットワークを Azure Managed Lustre 仮想ネットワークとピアリングするには、仮想ネットワーク ピアリングの
ヒント
MC_リソース グループと仮想ネットワークの名前付けにより、ネットワークの名前は複数の AKS デプロイで類似または同じにすることができます。 ピアリングを設定するときは、選択する AKS ネットワークを選択するように注意してください。
AKS クラスターに接続する
Azure CLI ツールにアクセスしてターミナル セッションを開き、Azure アカウントにサインインします。
az login
Azure portal にサインインします。
AKS クラスターを見つけます。 [概要] ウィンドウで [接続] ボタンを選択し、[クラスターの資格情報のダウンロード] のコマンドをコピーします。
ターミナル セッションで、コマンドを貼り付けて資格情報をダウンロードします。 このコマンドは次のようになります。
az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
kubectl が環境に存在しない場合は、次の手順を実行します。
az aks install-cli
現在のコンテキストが、資格情報をインストールした AKS クラスターであり、それに接続できることを確認します。
kubectl config current-context kubectl get deployments --all-namespaces=true
ドライバーをインストールする
Kubernetes 用 Azure Lustre CSI ドライバーをインストールするには、次のコマンドを実行します。
curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azurelustre-csi-driver/main/deploy/install-driver.sh | bash
ローカル インストールのサンプル コマンドを取得するには、「Kubernetes クラスターに Azure Lustre CSI ドライバーをインストールする」を参照してください。
永続ボリュームを作成して構成する
既存の Azure Managed Lustre ファイル システムの永続ボリュームを作成するには:
azurelustre-csi-driver リポジトリの /docs/examples/ フォルダーから次の構成ファイルをコピーします。 ドライバーをインストール
際にリポジトリを複製した場合は、ローカル コピーが既に使用可能です。 - storageclass_existing_lustre.yaml
- pvc_storageclass.yaml
リポジトリ全体を複製しない場合は、各ファイルを個別にダウンロードできます。 次の各リンクを開き、ファイルの内容をコピーして、同じファイル名のローカル ファイルに貼り付けます。
storageclass_existing_lustre.yaml ファイルで、Lustre クラスターと Lustre Management Service (MGS) IP アドレスの内部名を更新します。
どちらの設定も、Azure Portal の Azure Managed Lustre ファイル システムの [クライアント接続] ウィンドウに表示されます。
次の更新を行います。
EXISTING_LUSTRE_FS_NAME
を、Azure Managed Lustre ファイル システムの Lustre クラスターのシステム割り当て内部名に置き換えます。 通常、内部名はlustrefs
。 内部名は、ファイル システムの作成時に指定した名前ではありません。推奨される
mount
コマンドには、次のアドレス文字列で強調表示されている名前が含まれています。EXISTING_LUSTRE_IP_ADDRESS
を MGS IP アドレスに置き換えます。
ストレージ クラスと永続ボリューム要求を作成するには、次の
kubectl
コマンドを実行します。kubectl create -f storageclass_existing_lustre.yaml kubectl create -f pvc_storageclass.yaml
インストールを確認する
インストールを確認する場合は、必要に応じてエコー ポッドを使用して、ドライバーが動作していることを確認できます。
書き込み中にコンソールにタイム スタンプを表示するには、次のコマンドを実行します。
エコー ポッドに次のコードを追加します。
while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
書き込み中にコンソールにタイム スタンプを表示するには、次の
kubectl
コマンドを実行します。`kubectl logs -f lustre-echo-date`