使用 Helm 在 Amazon EKS 集群上安装软件包
在创建 SageMaker HyperPod 集群并将其连接到 Amazon EKS 集群之前,应使用 Kubernetes 的软件包管理器 Helm
SageMaker HyperPod 服务团队提供了一个 Helm 图表包,其中捆绑了设备/EFA 插件、Kueue、Kubeflow 训练操作员
重要
此 Helm 安装步骤是必需步骤。如果未使用提供的 Helm 图表配置 Amazon EKS 集群,可能会导致 SageMaker HyperPod 集群无法正常运行或创建过程完全失败。aws-hyperpod
命名空间名称不可修改。
-
在本地计算机上安装 Helm
。 -
下载 SageMaker HyperPod 提供的 Helm 图表,位于 SageMaker HyperPod CLI 资源库
中的 helm_chart/HyperPodHelmChart
。git clone https://github.com/aws/sagemaker-hyperpod-cli.git cd sagemaker-hyperpod-cli/helm_chart
-
更新 Helm 图表的依赖关系,预览将对 Kubernetes 集群做出的更改,然后安装 Helm 图表。
helm dependencies update HyperPodHelmChart
helm install hyperpod-dependencies HyperPodHelmChart --dry-run
helm install hyperpod-dependencies HyperPodHelmChart
总之,Helm 安装会为 Amazon EKS 集群设置各种组件,包括作业调度和队列(Kueue)、存储管理、MLflow 集成和 Kubeflow。此外,图表中还会安装以下组件,以便与 SageMaker HyperPod 集群弹性功能集成,这些都是必备组件。
-
运行状况监控座席:安装 SageMaker HyperPod 提供的运行状况监控座席。如果您想让您的 HyperPod 集群受到监控,则需要这样做。运行状况监控座席以 Docker 映像的形式提供,如下所示。在 Helm 图表中提供的
values.yaml
中,映像是预设的。该座席支持基于 GPU 的实例和基于 Trainium-accelerator 的实例(trn1
、trn1n
、inf2
)。它被安装到aws-hyperpod
命名空间。590183648699.dkr.ecr.us-west-2.amazonaws.com/hyperpod-health-monitoring-agent:1.0.230.0_1.0.19.0
-
深度运行状况检查:设置
ClusterRole
、aws-hyperpod
命名空间中的服务帐户 (deep-health-check-service-account
) 和ClusterRoleBinding
,以启用 SageMaker HyperPod 深度运行状况检查功能。有关用于深度运行状况检查的 Kubernetes RBAC 文件的更多信息,请参阅 SageMaker HyperPod CLI GitHub 存储中的配置文件deep-health-check-rbac.yaml
。 -
job-auto-restart
:设置ClusterRole
、(job-auto-restart
) 命名空间中的 ServiceAccount (aws-hyperpod
) 和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 Operator 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 图表进行安装的更多信息,请参阅 SageMaker HyperPod CLI 存储库中的 README 文件