

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

# 使用 Helm 在 Amazon EKS 叢集上安裝套件
<a name="sagemaker-hyperpod-eks-install-packages-using-helm-chart"></a>

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

SageMaker HyperPod 服務團隊會提供 Helm Chart 套件，其中綁定裝置/EFA 外掛程式、外掛程式、[Kubeflow Training Operator](https://www.kubeflow.org/docs/components/training/)，以及相關聯許可組態等關鍵相依性。

**重要**  
需要此 Helm 安裝步驟。如果您使用 [AWS 管理主控台](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md) 或 [CloudFormation](smcluster-getting-started-eks-console-create-cluster-cfn.md) 設定 Amazon EKS 叢集，則可以略過此步驟，因為安裝會在設定程序進行期間自動處理。如果您直接使用 API 設定叢集，請使用提供的 Helm Chart 來設定您的 Amazon EKS 叢集。若無法使用提供的 Helm Chart 設定您的 Amazon EKS 叢集，可能會導致 SageMaker HyperPod 叢集無法正常運作，或建立程序完全失敗。無法修改 `aws-hyperpod` 命名空間名稱。

1. 在您的本機電腦上[安裝 Helm](https://helm.sh/docs/intro/install/)。

1. 下載 [SageMaker HyperPod CLI 儲存庫](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart)中位於 `helm_chart/HyperPodHelmChart` 的 SageMaker HyperPod 所提供的 Helm Chart。

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-cli.git
   cd sagemaker-hyperpod-cli/helm_chart
   ```

1. 更新 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 加速器型執行個體 (`trn1`、`trn1n`、`inf2`)。它會安裝到 `aws-hyperpod` 命名空間。若要尋找支援的 URI，請參閱 [ GitHub 上的 sagemaker-hyperpod-cli 儲存庫中支援的 區域及其 ECR URIs](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/readme.md#6-notes)。
+ **深度運作狀態檢查** - 這會設定 `ClusterRole`、`aws-hyperpod` 命名空間中的 ServiceAccount (`deep-health-check-service-account`) 以及 `ClusterRoleBinding`，以啟用 SageMaker HyperPod 深度運作狀態檢查功能。如需 Kubernetes RBAC 檔案進行深層運作狀態檢查的詳細資訊，請參閱 SageMaker HyperPod CLI GitHub 儲存庫中的組態檔案 [https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/deep-health-check/templates/deep-health-check-rbac.yaml](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/deep-health-check/templates/deep-health-check-rbac.yaml)。
+ **`job-auto-restart`** - 這會設定 `ClusterRole`、`aws-hyperpod` 命名空間中的 ServiceAccount (`job-auto-restart`) 以及 `ClusterRoleBinding`，以在 SageMaker HyperPod 中啟用 PyTorch 訓練任務的自動重新啟動功能。如需用於 `job-auto-restart` 的 Kubernetes RBAC 檔案的詳細資訊，請參閱 SageMaker HyperPod CLI GitHub 儲存庫中的組態檔案 [https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/job-auto-restart/templates/job-auto-restart-rbac.yaml](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/job-auto-restart/templates/job-auto-restart-rbac.yaml)。
+ **Kubeflow MPI 運算子** - [MPI 運算子](https://github.com/kubeflow/mpi-operator)是一種 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 存取和使用叢集節點上的 AWS Inferentia 晶片。使用 Neuron 執行個體類型時，這是必要的。
+ **`aws-efa-k8s-device-plugin`** – 這是一個 Kubernetes 裝置外掛程式，可在 Amazon EKS 叢集上使用 AWS Elastic Fabric Adapter (EFA)。EFA 是一種網路裝置，在叢集中的執行個體之間提供低延遲和高輸送量通訊。使用 EFA 支援的執行個體類型時，這是必要的。

如需使用所提供 Helm Chart 之安裝程序的詳細資訊，請參閱 [SageMaker HyperPod CLI 儲存庫中的 README 檔案](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart)。