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

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

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

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

SageMaker HyperPod 服务团队提供了一个 Helm chart 包,它捆绑了关键依赖项,例如设备/EFA 插件、插件、Kubeflow 训练操作员和相关的权限配置。

重要

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

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

  2. 下载位 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
  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 群弹性功能集成,这些功能是必需的组件。

  • He@@ alth Monitoring 代理 — 这将安装由 SageMaker HyperPod提供的运行状况监控代理。如果您想监控您的 HyperPod 集群,则必须执行此操作。运行状况监控座席以 Docker 映像的形式提供,如下所示。在 Helm 图表中提供的 values.yaml 中,映像是预设的。代理支持基于 GPU 的 Trainium-accelerator-based实例和实例(trn1trn1ninf2)。它被安装到 aws-hyperpod 命名空间。

    590183648699.dkr.ecr.us-west-2.amazonaws.com/hyperpod-health-monitoring-agent:1.0.230.0_1.0.19.0
  • 深度运行状况检查 — 这会在aws-hyperpod命名空间中设置 a ClusterRole、a ServiceAccount (deep-health-check-service-account),并设置 a ClusterRoleBinding 以启用 SageMaker HyperPod 深度运行状况检查功能。有关用于深度运行状况检查的 Kubernetes RBAC 文件的更多信息,请参阅 CLI 存储库中的deep-health-check-rbac.yaml配置文件。 SageMaker HyperPod GitHub

  • job-auto-restart-这将在aws-hyperpod命名空间中设置 a ClusterRole ServiceAccount (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 操作程序,它能简化在 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 存储库中的自述文件