

 **帮助改进此页面** 

要帮助改进本用户指南，请选择位于每个页面右侧窗格中的**在 GitHub 上编辑此页面**链接。

# 设置用于人工智能/机器学习工作负载的 Amazon EKS 集群
<a name="ml-cluster-setup"></a>

**提示**  
 [注册参加](https://events.eksworkshop.com/workshops/genai/)即将举办的 Amazon EKS 人工智能/机器学习讲习会。

本节将指导您创建可随时运行推理工作负载的 Amazon EKS 集群，（包括具有 GPU 的计算）、监控堆栈和用于存储模型权重的 Amazon S3 存储，以及必要的 AWS IAM 权限。

## 架构概述
<a name="_architecture_overview"></a>

设置过程会创建以下基础设施：
+  **具有 GPU 节点的 EKS 集群**：将使用竞价型容量动态预调配 G 系列 GPU 实例并启用按需型回退的 Karpenter 托管式节点池。
+  **监控堆栈**：Prometheus 会抓取集群、节点和 GPU 指标，然后将其远程写入 Amazon Managed Service for Prometheus（AMP）。Grafana 提供了多种控制面板来实现可视化。NVIDIA DCGM Exporter 会添加 GPU 特定的指标，包括利用率、内存、温度、功耗、NVLink 带宽、张量活动等。
+  **模型权重 S3 存储桶**：用于存储模型权重的 Amazon S3 存储桶，具有向工作负载容器授予读写权限的 EKS容器组身份关联。

## 集群计算选项
<a name="_cluster_compute_options"></a>

该指南提供了两种集群设置路径。请选择一种并在所有步骤中始终遵循该路径。
+  **EKS 自动模式**：只需一条命令即可配置启用了 EKS 自动模式的 EKS 集群。所有必需组件都已标准配置，包括基于 Karpenter 的自动扩缩、EKS 节点监控代理、使用 SOCI 的快速容器拉取以及 NVIDIA 设备插件。
+  **自行管理的 Karpenter**：您可以显式安装和配置每个组件：通过 `eksctl` 安装的 Karpenter、通过其特性门控启用的自动节点修复功能、作为 EKS 附加组件的 EKS 节点监控代理以及通过 Helm 安装的 NVIDIA 设备插件。您还可以创建使用 EKS 优化版 NVIDIA AL2023 AMI 的自定义 `EC2NodeClass` 并配置 SOCI。

## 您需要进行哪些设置
<a name="_what_youll_set_up"></a>


| 步骤 | 说明 | 
| --- | --- | 
|  **创建集群**  | 配置 GPU 工作负载所需的 EKS 控制面板和集群级别组件。 | 
|  **创建动态预调配的 GPU 节点**  | 定义一个将在调度工作负载时预调配 G 系列 GPU 实例的动态 GPU 节点池。 | 
|  **使用示例容器组进行测试**  | 运行会触发 Karpenter 预调配 GPU 节点的 `nvidia-smi` 容器组，从而端到端验证设置。 | 
|  **添加预留容量（可选）**  | 将按需型容量预留（ODCR）附加到您的节点类，以将预留容量优先用于竞价型/按需型回退。 | 
|  **安装监控**  | 部署具有远程写入 AMP 权限的 kube-prometheus-stack（Prometheus \+ Grafana），以及用于 GPU 指标的 NVIDIA DCGM Exporter。 | 
|  **创建模型权重存储桶**  | 创建一个 S3 存储桶并配置 EKS容器组身份，以便工作负载容器组可以读取和写入模型权重。 | 

## 开始使用
<a name="_get_started"></a>

如需使用 AWS CLI 的详细分步指导，请参阅[使用 CLI 为人工智能/机器学习工作负载设置 Amazon EKS 集群](ml-cluster-setup-cli.md)。