使用 Helm 在 Amazon EKS 集群上安装软件包 - Amazon SageMaker

使用 Helm 在 Amazon EKS 集群上安装软件包

在创建 SageMaker HyperPod 集群并将其连接到 Amazon EKS 集群之前,应使用 Kubernetes 的软件包管理器 Helm 安装软件包。Helm 是一款开源工具,用于为 Kubernetes 集群设置安装流程。它实现了依赖安装的自动化和简化,并简化了将 Amazon EKS 集群准备为 SageMaker HyperPod 集群的编排工具(控制面板)所需的各种设置。

SageMaker HyperPod 服务团队提供了一个 Helm 图表包,其中捆绑了设备/EFA 插件、Kueue、Kubeflow 训练操作员和相关权限配置等关键依赖关系。

重要

此 Helm 安装步骤是必需步骤。如果未使用提供的 Helm 图表配置 Amazon EKS 集群,可能会导致 SageMaker HyperPod 集群无法正常运行或创建过程完全失败。aws-hyperpod 命名空间名称不可修改。

  1. 在本地计算机上安装 Helm

  2. 下载 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
  3. 更新 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 的实例(trn1trn1ninf2)。它被安装到 aws-hyperpod 命名空间。

    590183648699.dkr.ecr.us-west-2.amazonaws.com/hyperpod-health-monitoring-agent:1.0.230.0_1.0.19.0
  • 深度运行状况检查:设置 ClusterRoleaws-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 文件