本文說明如何整合 Managed Lustre 與 GKE,使用 Cluster Toolkit 為要求嚴苛的資料密集型工作負載 (例如人工智慧 (AI)、機器學習 (ML) 和高效能運算 (HPC)) 建立最佳化環境。
本文將說明如何使用 Cluster Toolkit,以宣告方式佈建 GKE 叢集和 Managed Lustre 執行個體,自動設定 Managed Lustre CSI 驅動程式和 Kubernetes PersistentVolume 資源,並在叢集上執行範例工作負載。
本文適用於對 Kubernetes 容器調度管理功能感興趣的機器學習 (ML) 工程師,以及資料和 AI 專家,這些功能以 Managed Lustre 執行個體為後盾。如要進一步瞭解 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 PersistentVolumeClaims (PVC) 和 PersistentVolumes (PV),將 Managed Lustre 執行個體與 GKE 整合。這項驅動程式特別適合需要持續性、可擴充且高處理量儲存空間的 AI/機器學習和 HPC 工作負載。
詳情請參閱「關於 Managed Lustre CSI 驅動程式」。
加速器用量方案
彈性啟動和 Spot VM 可讓您只為所需資源付費,最佳化運算佈建。詳情請參閱「關於 GKE 中 AI/機器學習工作負載的加速器用量選項」。
事前準備
開始之前,請務必先完成下列工作:
- 啟用 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 會佈建虛擬私有雲、建立 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 支援的磁碟區。