使用 Helm 在 Amazon EKS 叢集上安裝套件 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Helm 在 Amazon EKS 叢集上安裝套件

在建立 SageMaker HyperPod 叢集並將其連接到 Amazon EKS 叢集之前,您應該使用 Helm (即 Kubernetes 的套件管理員) 安裝套件。Helm 是一種開放原始碼工具,用於設定 Kubernetes 叢集的安裝程序。它可讓您自動化和簡化相依性安裝,並簡化了準備 Amazon EKS 叢集做為 SageMaker HyperPod 叢集協調器 (控制平面) 所需的各種設定。

SageMaker HyperPod 服務團隊會提供 Helm Chart 套件,其中綁定裝置/EFA 外掛程式、外掛程式、Kubeflow Training Operator,以及相關聯許可組態等關鍵相依性。

重要

需要此 Helm 安裝步驟。如果您使用 AWS 管理主控台CloudFormation 設定 Amazon EKS 叢集,則可以略過此步驟,因為安裝會在設定程序進行期間自動處理。如果您直接使用 API 設定叢集,請使用提供的 Helm Chart 來設定您的 Amazon EKS 叢集。若無法使用提供的 Helm Chart 設定您的 Amazon EKS 叢集,可能會導致 SageMaker HyperPod 叢集無法正常運作,或建立程序完全失敗。無法修改 aws-hyperpod 命名空間名稱。

  1. 在您的本機電腦上安裝 Helm

  2. 下載 SageMaker HyperPod CLI 儲存庫中位於 helm_chart/HyperPodHelmChart 的 SageMaker HyperPod 所提供的 Helm Chart。

    git clone https://github.com/aws/sagemaker-hyperpod-cli.git cd sagemaker-hyperpod-cli/helm_chart
  3. 更新 Helm Chart 的相依性、預覽將對 Kubernetes 叢集所做的變更,並安裝 Helm Chart。

    helm dependencies update HyperPodHelmChart
    helm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system --dry-run
    helm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system

總而言之,Helm 安裝會為您的 Amazon EKS 叢集設定各種元件,包括任務排程和排入佇列 (Kueue)、儲存管理、MLflow 整合和 Kubeflow。此外,這些圖表會安裝下列元件,以與 SageMaker HyperPod 叢集彈性功能整合,這些功能是必要的元件。

  • 運作狀態監控代理程式 - 這會安裝 SageMaker HyperPod 提供的運作狀態監控代理程式。如果您想要監控 HyperPod 叢集,這是必要的。運作狀態監控代理程式會以 Docker 映像的形式提供,如下所示。在 Helm Charts 中提供的 values.yaml 中,映像是預先設定的。代理程式支援 GPU 型執行個體和 Trainium 加速器型執行個體 (trn1trn1ninf2)。它會安裝到 aws-hyperpod 命名空間。若要尋找支援的 URI,請參閱 GitHub 上的 sagemaker-hyperpod-cli 儲存庫中支援的 區域及其 ECR URIs

  • 深度運作狀態檢查 - 這會設定 ClusterRoleaws-hyperpod 命名空間中的 ServiceAccount (deep-health-check-service-account) 以及 ClusterRoleBinding,以啟用 SageMaker HyperPod 深度運作狀態檢查功能。如需 Kubernetes RBAC 檔案進行深層運作狀態檢查的詳細資訊,請參閱 SageMaker HyperPod CLI GitHub 儲存庫中的組態檔案 deep-health-check-rbac.yaml

  • job-auto-restart - 這會設定 ClusterRoleaws-hyperpod 命名空間中的 ServiceAccount (job-auto-restart) 以及 ClusterRoleBinding,以在 SageMaker HyperPod 中啟用 PyTorch 訓練任務的自動重新啟動功能。如需用於 job-auto-restart 的 Kubernetes RBAC 檔案的詳細資訊,請參閱 SageMaker HyperPod CLI GitHub 儲存庫中的組態檔案 job-auto-restart-rbac.yaml

  • Kubeflow MPI 運算子 - MPI 運算子是一種 Kubernetes 運算子,可在 Kubernetes 叢集上使用訊息傳遞介面 (MPI),簡化分散式機器學習 (ML) 和高效能運算 (HPC) 工作負載的執行。它會安裝 MPI 運算子 v0.5。它會安裝到 mpi-operator 命名空間。

  • nvidia-device-plugin - 這是一個 Kubernetes 裝置外掛程式,可讓您自動公開 NVIDIA GPU,以供 Amazon EKS 叢集中的容器使用。它可讓 Kubernetes 為該容器配置所請求的 GPU 並提供其存取權。搭配 GPU 使用執行個體類型時,這是必要的。

  • neuron-device-plugin - 這是一個 Kubernetes 裝置外掛程式,可讓您自動公開 AWS Inferentia 晶片,以供 Amazon EKS 叢集中的容器使用。它允許 Kubernetes 存取和使用叢集節點上的 AWSInferentia 晶片。使用 Neuron 執行個體類型時,這是必要的。

  • aws-efa-k8s-device-plugin – 這是一個 Kubernetes 裝置外掛程式,可在 Amazon EKS 叢集上使用 AWSElastic Fabric Adapter (EFA)。EFA 是一種網路裝置,在叢集中的執行個體之間提供低延遲和高輸送量通訊。使用 EFA 支援的執行個體類型時,這是必要的。

如需使用所提供 Helm Chart 之安裝程序的詳細資訊,請參閱 SageMaker HyperPod CLI 儲存庫中的 README 檔案