このドキュメントでは、Cluster Toolkit を使用して Managed Lustre を GKE と統合し、AI、機械学習(ML)、ハイ パフォーマンス コンピューティング(HPC)などの要求の厳しいデータ集約型ワークロード向けに最適化された環境を作成する方法について説明します。
このドキュメントでは、Cluster Toolkit を使用して GKE クラスタと Managed Lustre インスタンスを宣言的にプロビジョニングし、Managed Lustre CSI ドライバと Kubernetes PersistentVolume リソースを自動的に構成して、クラスタでサンプル ワークロードを実行します。
このドキュメントは、Managed Lustre インスタンスを基盤とする Kubernetes コンテナ オーケストレーション機能の使用に関心のある機械学習(ML)エンジニアやデータと AI のスペシャリストを対象としています。 Google Cloud のコンテンツで使用されている一般的なロールとタスクの例の詳細については、一般的な GKE ユーザーのロールとタスクをご覧ください。
背景
このセクションでは、このドキュメントで使用されている重要なテクノロジーについて説明します。
Cluster Toolkit
Cluster Toolkit は、 Google Cloudでの AI/ML 環境と HPC 環境のデプロイと管理を簡素化するオープンソース ツールです。Cluster Toolkit は、モジュール式の宣言型ブループリントを使用して、GKE クラスタ、ネットワーク、コンピューティング アクセラレータ、高パフォーマンス ストレージのプロビジョニングを自動化します。
詳細については、Cluster Toolkit の概要をご覧ください。
Managed Lustre
Managed Lustre は、要求の厳しいワークロード向けに設計された高パフォーマンスの並列ファイル システム サービスです。Managed Lustre CSI ドライバを使用すると、標準の Kubernetes PersistentVolumeClaim(PVC)と PersistentVolume(PV)を使用して、Managed Lustre インスタンスを GKE と統合できます。このドライバは、永続的でスケーラブルな高スループット ストレージを必要とする AI/ML ワークロードや HPC ワークロードに特に有益です。
詳細については、Managed Lustre CSI ドライバについてをご覧ください。
アクセラレータの使用オプション
Flex Start と Spot VM を使用すると、必要なリソースに対してのみ料金を支払うことで、コンピューティング プロビジョニングを最適化できます。詳細については、GKE での AI/ML ワークロードのアクセラレータ使用オプションについてをご覧ください。
始める前に
作業を始める前に、次のタスクが完了していることを確認してください。
- Google Cloud Managed Lustre API と Google Kubernetes Engine API を有効にします。 API を有効にする
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化します。gcloud CLI をインストール済みの場合は、
gcloud components updateコマンドを実行して最新のバージョンを取得します。以前のバージョンの gcloud CLI では、このドキュメントのコマンドを実行できない場合があります。
環境を準備する
デフォルトの環境変数を設定し、デプロイ マシンの IP アドレスを取得します。
gcloud config set project PROJECT_ID export PROJECT_ID=$(gcloud config get project) export REGION=REGION export ZONE=ZONE export DEPLOYMENT_NAME=DEPLOYMENT_NAME export AUTHORIZED_CIDR="$(curl -s ifconfig.me)/32"次の値を置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。REGION: デプロイのリージョン(例:us-central1)。ZONE: Managed Lustre をサポートするゾーン(例:us-central1-a)。DEPLOYMENT_NAME: デプロイの名前。
クラスタとストレージをデプロイする
Cluster Toolkit リポジトリの
examples/gke-managed-lustre.yamlブループリントを使用してインフラストラクチャをデプロイします。gcluster deploy examples/gke-managed-lustre.yaml \ --vars project_id=${PROJECT_ID},deployment_name=${DEPLOYMENT_NAME},region=${REGION},zone=${ZONE},authorized_cidr=${AUTHORIZED_CIDR}Cluster Toolkit は、VPC をプロビジョニングし、Managed Lustre インスタンスを作成し、Managed Lustre CSI ドライバが有効になっている GKE クラスタをプロビジョニングし、Kubernetes PersistentVolume と PersistentVolumeClaim を作成します。
新しいクラスタにアクセスするように
kubectlを構成します。gcloud container clusters get-credentials ${DEPLOYMENT_NAME} \ --zone=${ZONE} \ --project=${PROJECT_ID}
Managed Lustre でワークロードを実行する
gcluster job submit コマンドを使用して、Managed Lustre ボリュームをマウントするワークロードを送信します。ジョブ送信オプションの詳細については、Cluster Toolkit ジョブ送信ガイドをご覧ください。
gcluster job submit \
--name="test-lustre-$(date +%H%M)" \
--cluster=${DEPLOYMENT_NAME} \
--project=${PROJECT_ID} \
--location=${ZONE} \
--compute-type=n2-standard-16 \
--image=ubuntu:latest \
--command="df -h && echo 'Hello from Managed Lustre on GKE' > /lustre-data/hello.txt && cat /lustre-data/hello.txt" \
--mount="gke-lustre-instance-pvc;/lustre-data;rw"
ワークロード ログと実行ステータスを検査するには、gcluster job logs コマンドを使用します。
gcluster job logs "test-lustre-$(date +%H%M)" \
--cluster=${DEPLOYMENT_NAME} \
--project=${PROJECT_ID} \
--location=${ZONE}
出力は次のようになります。
Filesystem Size Used Avail Use% Mounted on
overlay 193G 11G 183G 6% /
tmpfs 64M 0 64M 0% /dev
10.8.68.5@tcp://lustrefs 35T 22M 35T 1% /lustre-data
shm 64M 0 64M 0% /dev/shm
Hello from Managed Lustre on GKE
クリーンアップ
このドキュメントで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、Cluster Toolkit を使用してデプロイを削除します。
gcluster destroy ${DEPLOYMENT_NAME}
次のステップ
- Managed Lustre CSI ドライバの詳細を確認する。
- Cluster Toolkit ブループリント カタログを確認する。
- GKE ストレージ クラスを作成する方法を確認する。
- Managed Lustre を基盤とするボリュームを作成して使用する方法を学習する。