

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Helm 在 Amazon EKS 集群上安装软件包
<a name="sagemaker-hyperpod-eks-install-packages-using-helm-chart"></a>

在创建 SageMaker HyperPod 集群并将其连接到 Amazon EKS 集群之前，您应该使用适用于 Kubernetes 的包管理器 [Helm](https://helm.sh/) 来安装软件包。Helm 是一款开源工具，用于为 Kubernetes 集群设置安装流程。它可以实现依赖项安装的自动化和简化，并简化将 Amazon EKS 集群准备为集群的协调器（控制平面）所需的各种设置。 SageMaker HyperPod 

 SageMaker HyperPod 服务团队提供了一个 Helm chart 包，它捆绑了插件、 device/EFA 插件、[Kubeflow 训练操作员](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 集群，则可以跳过此步骤，因为在设置过程中会自动完成安装操作。如果您直接使用设置集群，请使用提供的 APIs Helm 图表来配置您的 Amazon EKS 集群。未能使用提供的 Helm 图表配置 Amazon EKS 集群可能会导致 SageMaker HyperPod 集群无法正常运行或创建过程完全失败。`aws-hyperpod` 命名空间名称不可修改。

1. 在本地计算机上[安装 Helm](https://helm.sh/docs/intro/install/)。

1. 下载位 SageMaker HyperPod 于 [SageMaker HyperPod CLI 存储库`helm_chart/HyperPodHelmChart`](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart)中的 Helm 图表。

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

1. 更新 Helm 图表的依赖关系，预览将对 Kubernetes 集群做出的更改，然后安装 Helm 图表。

   ```
   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 群弹性功能集成，这些功能是必需的组件。
+ He@@ **alth Monitoring 代理** — 这将安装由 SageMaker HyperPod提供的运行状况监控代理。如果您想监控您的 HyperPod 集群，则必须执行此操作。运行状况监控座席以 Docker 映像的形式提供，如下所示。在 Helm 图表中提供的 `values.yaml` 中，映像是预设的。代理支持基于 GPU 的 Trainium-accelerator-based实例和实例（`trn1`、`trn1n`、`inf2`）。它被安装到 `aws-hyperpod` 命名空间。要查找支持的 URI，请参阅[上 sagemaker-hyperpod-cli GitHub存储库 URIs 中的支持的区域及其 ECR](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/readme.md#6-notes)。
+ **深度运行状况检查** — 这会在`aws-hyperpod`命名空间中设置 a `ClusterRole`、a ServiceAccount (`deep-health-check-service-account`)，并设置 a `ClusterRoleBinding` 以启用 SageMaker HyperPod 深度运行状况检查功能。有关用于深度运行状况检查的 Kubernetes RBAC 文件的更多信息，请参阅 CLI 存储库中的[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)配置文件。 SageMaker HyperPod GitHub 
+ **`job-auto-restart`**-这将在`aws-hyperpod`命名空间中设置 a `ClusterRole` ServiceAccount (`job-auto-restart`)，并设置 a`ClusterRoleBinding`，以启用自动重启功能，以便在中 PyTorch SageMaker HyperPod训练作业。有关的 Kubernetes RBAC 文件的更多信息`job-auto-restart`，请参阅 CLI 存储库中的[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)配置文件。 SageMaker HyperPod GitHub 
+ **Kubeflow MPI 操作程序**：[MPI 操作程序](https://github.com/kubeflow/mpi-operator)是一个 Kubernetes 操作程序，它能简化在 Kubernetes 集群上使用消息传递接口 (MPI) 运行分布式机器学习（ML）和高性能计算（HPC）工作负载的过程。安装 MPI Operator v0.5。它被安装到 `mpi-operator` 命名空间。
+ **`nvidia-device-plugin`**— 这是一个 Kubernetes 设备插件，允许你自动公开 NVIDIA， GPUs供亚马逊 EKS 集群中的容器使用。它允许 Kubernetes 分配并提供对该容器请求 GPUs 的访问权限。在使用带有 GPU 的实例类型时必须使用。
+ **`neuron-device-plugin`**：这是一个 Kubernetes 设备插件，可以自动暴露 AWS Inferentia 芯片，供 Amazon EKS 集群中的容器使用。它允许 Kubernetes 访问和使用集群节点上的 AWS 推理芯片。使用 Neuron 实例类型时必须填写。
+ **`aws-efa-k8s-device-plugin`**— 这是一款 Kubernetes 设备插件，允许在亚马逊 EKS 集群上使用 AWS 弹性结构适配器 (EFA)。EFA 是一种网络设备，可在集群中的实例之间提供低延迟、高吞吐量的通信。使用 EFA 支持的实例类型时必须填写。

有关使用所提供的 Helm 图表安装过程的更多信息，请参阅 [ SageMaker HyperPod CLI 存储库中的自述文件](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart)。