Share via


Azure Kubernetes Serviceで Azure Managed Lustre CSI ドライバーを使用する

この記事では、Azure Managed Lustre Kubernetes コンテナー サポート インターフェイス ドライバー (Azure Managed Lustre CSI ドライバー) を使用して、Azure Kubernetes Service (AKS) で Azure Managed Lustre を計画、インストール、および使用する方法について説明します。

AKS 用 Azure Managed Lustre CSI ドライバーについて

AKS 用 Azure Managed Lustre Container Support Interface (CSI) ドライバーを使用すると、Azure Kubernetes Service (AKS) にデプロイされた Kubernetes コンテナーから永続ストレージ ボリュームとして Azure Managed Lustre ストレージにアクセスできます。

互換性のある Kubernetes バージョン

AKS 用 Azure Managed Lustre CSI ドライバーは、Azure Kubernetes Service (AKS) と互換性があります。 他の Kubernetes のインストールは現在サポートされていません。

AKS Kubernetes バージョン 1.21 以降がサポートされています。 これには、新しい AKS クラスターの作成時に現在使用できるすべてのバージョンが含まれます。

重要

Azure Managed Lustre CSI ドライバーは現在、AKS のノード プールの Ubuntu Linux OS SKU でのみ動作します。

互換性のある Lustre バージョン

AKS 用 Azure Managed Lustre CSI ドライバーは、 Azure Managed Lustre と互換性があります。 その他の Lustre インストールは現在サポートされていません。

Azure Managed Lustre CSI ドライバー バージョン 0.1.10 以降は、Azure Managed Lustre サービスの現在のバージョンでサポートされています。

前提条件

AKS デプロイを計画する

AKS と Azure Managed Lustre の間の操作に影響を与えるAzure Kubernetes Serviceをデプロイする場合は、いくつかのオプションがあります。

AKS で使用するネットワークの種類を決定する

Ubuntu Linux OS SKU、kubenet、Azure Container Network Interface (CNI) ドライバーと互換性のある 2 つのネットワークの種類があります。 どちらのオプションも AKS 用の Azure Managed Lustre CSI ドライバーで動作しますが、仮想ネットワークと AKS を設定するときに理解する必要があるさまざまな要件があります。 適切な選択を決定する方法の詳細については、「Azure Kubernetes Service (AKS) でのアプリケーションのネットワークの概念」を参照してください。

AKS と Azure Managed Lustre の相互接続性に関するネットワーク アーキテクチャを決定する

Azure Managed Lustre はプライベート仮想ネットワーク内で動作します。Kubernetes は、Azure Managed Lustre 仮想ネットワークへのネットワーク接続を持っている必要があります。 Azure Managed Lustre と AKS の間でネットワークを構成するには、2 つの一般的な方法があります。

  • AKS を独自のVirtual Networkにインストールし、Azure Managed Lustre Virtual Networkを使用して仮想ネットワーク ピアリングを作成します。
  • AKS で Bring Your Own Networking オプションを使用して、Azure Managed Lustre Virtual Network上の新しいサブネットに AKS をインストールします。

注意

Azure Managed Lustre と同じサブネットに AKS をインストールすることはお勧めしません。

AKS と Azure マネージド Lustre 仮想ネットワークのピアリング

2 つの異なる仮想ネットワークをピアリングするオプションには、さまざまなネットワークの管理を異なる特権ロールに分離する利点があります。 ピアリングでは、Azure サブスクリプションまたはリージョン間で行うことができるため、追加の柔軟性を提供することもできます。 Virtual Network ピアリングでは、競合する IP ネットワーク空間を選択しないように、2 つのネットワーク間の調整が必要になります。

Azure Managed Lustre 用と AKS 用の 2 つの VNet と、それらを接続する VNet ピアリング矢印を示す図。

Azure Managed Lustre 仮想ネットワーク上のサブネットへの AKS のインストール

AKS の Bring Your Own Network 機能を使用して、AKS クラスターを Azure Managed Lustre 仮想ネットワークにインストールするオプションは、ネットワークが単独で管理されるシナリオが必要な場合に便利です。 AKS ネットワーク要件を満たすようにサイズ設定された追加のサブネットは、Azure Managed Lustre 仮想ネットワークに作成する必要があります。

Azure Managed Lustre Network に AKS をプロビジョニングするときに、ネットワーク管理に対する特権の分離はなく、AKS サービス プリンシパルには Azure Managed Lustre 仮想ネットワークに対する特権が必要になります。

2 つのサブネットを持つ Azure Managed Lustre VNet を示す図。1 つは Lustre ファイル システム用、もう 1 つは AKS 用です。

セットアップの概要

Azure Managed Lustre CSI Driver for Kubernetes を有効にするには、次の手順を実行します。

  1. Azure Managed Lustre ファイル システムを作成する

  2. AKS Kubernetes クラスターを作成する

  3. 仮想ネットワーク ピアリングを作成する

  4. Azure Managed Lustre CSI Driver for Kubernetes をインストールします

  5. 永続ボリュームを作成して構成します

  6. 必要に応じてエコー ポッドを使用してインストールを確認し、ドライバーが動作していることを確認します。

次のセクションでは、各タスクについて詳しく説明します。

Azure Managed Lustre ファイル システムを作成する

Azure Managed Lustre ファイル システム クラスターをまだ作成していない場合は、ここでクラスターを作成します。 手順については、「Azure portalで Azure Managed Lustre ファイル システムを作成する」を参照してください。 現時点では、ドライバーは既存の Azure Managed Lustre ファイル システムでのみ使用できます。

AKS クラスターの作成

AKS クラスターをまだ作成していない場合は、クラスターデプロイを作成します。 「Azure Kubernetes Service (AKS) クラスターをデプロイする」を参照してください。

仮想ネットワーク ピアリングを作成する

注意

Azure Managed Lustre 仮想ネットワーク上のサブネットに AKS をインストールした場合は、このネットワーク ピアリング手順をスキップします。

AKS 仮想ネットワークは、AKS クラスターのリソース グループとは別のリソース グループに作成されます。 このリソース グループの名前を見つけるには、Azure Portal で AKS クラスターに移動し、[ プロパティ ] ブレードを選択し、[ インフラストラクチャ ] リソース グループを見つけます。 このリソース グループには、Azure Managed Lustre 仮想ネットワークとペアにする必要がある仮想ネットワークが含まれています。 これは、パターン MC_<aks-rg-name>_<aks-cluster-name>_<region> と一致します。

AKS 仮想ネットワークを Azure 管理 Lustre 仮想ネットワークとピアリングするには、Virtual Network ピアリングに関するページを参照してください。

ヒント

MC_リソース グループと仮想ネットワークの名前付けにより、ネットワークの名前は、複数の AKS デプロイで類似または同じにすることができます。 ピアリングを設定するときは、選択する AKS ネットワークを選択することに細心の注意を払います。

AKS クラスターに接続する

次の手順を実行して、Azure Kubernetes Service クラスターに接続します。

  1. Azure CLI ツールにアクセスしてターミナル セッションを開き、Azure アカウントにログインします。

    az login
    
  2. Azure ポータルにサインインします。

  3. AKS クラスターを見つけます。 [ 概要 ] ブレードを選択し、[ 接続 ] ボタンを選択し、[ クラスター資格情報のダウンロード] コマンドをコピーします。

  4. ターミナル セッションで、 コマンドを貼り付けて資格情報をダウンロードします。 これは次のようなコマンドになります。

    az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
    
  5. 環境に存在しない場合は、kubectl をインストールします。

    az aks install-cli
    
  6. 現在のコンテキストが、資格情報をインストールしたばかりの AKS クラスターであり、それに接続できることを確認します。

    kubectl config current-context
    kubectl get deployments --all-namespaces=true
    

CSI ドライバーをインストールする

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 ファイル システムの永続ボリュームを作成するには、次の手順を実行します。

  1. azurelustre-csi-driver リポジトリの /docs/examples/ フォルダーから次の構成ファイルをコピーします。 CSI ドライバーのインストール時にリポジトリを複製した場合は、ローカル コピーを既に使用できます。

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

    リポジトリ全体を複製しない場合は、各ファイルを個別にダウンロードできます。 次の各リンクを開き、ファイルの内容をコピーして、同じファイル名を持つローカル ファイルに内容を貼り付けます。

  2. storageclass_existing_lustre.yaml ファイルで、Lustre クラスターの内部名と MSG IP アドレスを更新します。

    storageclass_existing_lustre.yaml ファイルのスクリーンショット。置換する値が強調表示されています。

    どちらの設定も、Azure Lustre ファイル システムの [クライアント接続] ページのAzure portalに表示されます。

    [クライアント接続のAzure portal] ページのスクリーンショット。mount コマンドの MGS IP アドレスと

    次の更新を行います。

    • を、Azure Managed Lustre ファイル システムの Lustre クラスターのシステム割り当て内部名に置き換えます EXISTING_LUSTRE_FS_NAME 。 内部名は通常 lustrefsです。 内部名は、作成時にファイル システムに指定した名前ではありません。

      推奨される mount コマンドには、次のアドレス文字列で強調表示されている名前が含まれています。

      [クライアント接続] ページのサンプル アドレス文字列のスクリーンショット。Lustre クラスターの内部名が強調表示されています。

    • MSG IP アドレスに置き換えますEXISTING_LUSTRE_IP_ADDRESS

  3. ストレージ クラスと永続ボリューム要求を作成するには、次 kubectl のコマンドを実行します。

    kubectl create -f storageclass_existing_lustre.yaml
    kubectl create -f pvc_storageclass.yaml
    

インストールを確認する

インストールをチェックする場合は、必要に応じてエコー ポッドを使用して、ドライバーが動作していることを確認できます。

書き込み中にコンソールでタイムスタンプを表示するには、次のコマンドを実行します。

  1. エコー ポッドに次のコードを追加します。

    while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
    
  2. 書き込み中にコンソールでタイムスタンプを表示するには、次 kubectl のコマンドを実行します。

    `kubectl logs -f lustre-echo-date`
    

次の手順