本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Helm 在 Amazon EKS 集群上安装软件包
在创建 SageMaker HyperPod 集群并将其连接到 Amazon EKS 集群之前,您应该使用适用于 Kubernetes 的包管理器 Helm
SageMaker HyperPod 服务团队提供了一个 Helm chart 包,它捆绑了插件、 device/EFA 插件、Kubeflow 训练操作员
重要
此 Helm 安装步骤是必需步骤。如果您使用 AWS 管理控制台或 CloudFormation 设置 Amazon EKS 集群,则可以跳过此步骤,因为在设置过程中会自动完成安装操作。如果您直接使用 API 设置集群,请使用提供的 Helm 图表来配置 Amazon EKS 集群。未能使用提供的 Helm 图表配置 Amazon EKS 集群可能会导致 SageMaker HyperPod 集群无法正常运行或创建过程完全失败。aws-hyperpod 命名空间名称不可修改。
-
在本地计算机上安装 Helm
。 -
下载位 SageMaker HyperPod 于 SageMaker HyperPod CLI 存储库
helm_chart/HyperPodHelmChart中的 Helm 图表。 git clone https://github.com/aws/sagemaker-hyperpod-cli.git cd sagemaker-hyperpod-cli/helm_chart -
更新 Helm 图表的依赖关系,预览将对 Kubernetes 集群做出的更改,然后安装 Helm 图表。
helm dependencies update HyperPodHelmCharthelm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system --dry-runhelm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system
总之,Helm 安装会为 Amazon EKS 集群设置各种组件,包括作业调度和队列(Kueue)、存储管理、MLflow 集成和 Kubeflow。此外,图表还安装了以下组件,用于与集 SageMaker HyperPod 群弹性功能集成,这些功能是必需的组件。
-
He@@ alth Monitoring 代理 — 这将安装由 SageMaker HyperPod提供的运行状况监控代理。如果您想监控您的 HyperPod 集群,则必须执行此操作。 Health-monitoring 代理以 Docker 镜像的形式提供,如下所示。在 Helm 图表中提供的
values.yaml中,映像是预设的。代理支持 GPU-based 实例和实 Trainium-accelerator-based 例(trn1、trn1n、inf2)。它被安装到aws-hyperpod命名空间。要查找你支持的 URI,请参阅 sagemaker-hyperpod-cli 存储库中的支持区域及其 ECR URI。 GitHub -
深度运行状况检查 — 这会在
aws-hyperpod命名空间中设置 aClusterRole、a ServiceAccount (deep-health-check-service-account),并设置 aClusterRoleBinding以启用 SageMaker HyperPod 深度运行状况检查功能。有关用于深度运行状况检查的 Kubernetes RBAC 文件的更多信息,请参阅 CLI 存储库中的deep-health-check-rbac.yaml配置文件。 SageMaker HyperPod GitHub -
job-auto-restart-这将在aws-hyperpod命名空间中设置 aClusterRoleServiceAccount (job-auto-restart),并设置 aClusterRoleBinding,以启用用于 PyTorch 训练作业的自动重启功能。 SageMaker HyperPod有关的 Kubernetes RBAC 文件的更多信息job-auto-restart,请参阅 CLI 存储库中的job-auto-restart-rbac.yaml配置文件。 SageMaker HyperPod GitHub -
Kubeflow MPI 运算符 — MPI 运算符是一个 Kubernetes 运算符
,它使用消息传递接口 (MPI) 在 Kubernetes 集群上使用消息传递接口 (MPI) 来简化分布式机器学习 (ML) 和 High-Performance 计算 (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 推理芯片。使用 Neuron 实例类型时必须填写。 -
aws-efa-k8s-device-plugin— 这是一款 Kubernetes 设备插件,允许在亚马逊 EKS 集群上使用 AWS 弹性结构适配器 (EFA)。EFA 是一种网络设备,可在集群中的实例之间提供低延迟、高吞吐量的通信。使用 EFA 支持的实例类型时必须填写。
有关使用所提供的 Helm 图表安装过程的更多信息,请参阅 SageMaker HyperPod CLI 存储库中的自述文件