

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

# 在 Amazon EMR on EKS 上创建交互式端点的先决条件
<a name="prereqs-for-studio"></a>

此部分介绍设置交互式端点的先决条件，EMR Studio 将使用该端点连接到 Amazon EMR on EKS 集群并运行交互式工作负载。

## AWS CLI
<a name="cli-installed"></a>

按照[安装或更新到最新版本中的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)步骤安装最新版本的 AWS Command Line Interface (AWS CLI)。

## 安装 eksctl
<a name="eksctl-install"></a>

要安装最新版本的 eksctl，请按照[安装 kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) 中的步骤操作。如果在 Amazon EKS 集群中使用 Kubernetes 版本 1.22 或更高版本，则请使用大于 0.117.0 的 eksctl 版本。

## 亚马逊 EKS 集群
<a name="eks-cluster"></a>

创建一个 Amazon EKS 集群。将集群注册为 Amazon EMR on EKS 的虚拟集群。以下是此集群的要求和注意事项：
+ 集群必须与您的 EMR Studio 位于同一 Amazon Virtual Private Cloud（VPC）中。
+ 集群必须至少有一个私有子网，才能激活交互式端点、链接基于 Git 的存储库以及在私有模式下启动应用程序负载均衡器。
+ 您的 EMR Studio 和用于注册虚拟集群的 Amazon EKS 集群之间必须至少有一个私有子网。这可确保您的交互式端点作为选项显示在 Studio Workspaces 中，并激活从 Studio 到应用程序负载均衡器的连接。

  连接 Studio 和 Amazon EKS 集群，有两种方法可供选择：
  + 创建 Amazon EKS 集群并将其关联到属于 EMR Studio 的子网。
  + 或者，创建 EMR Studio 并指定 Amazon EKS 集群的私有子网。
+ 亚马逊 EKS 优化 AMIs 的 ARM Amazon Linux 不支持 EKS 交互式终端节点上的亚马逊 EMR。
+ 仅支持 [Amazon EKS 托管节点组](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html)和 Karpenter 预配置节点。

## 授予 Amazon EMR on EKS 对集群的访问权限
<a name="emr-eks-cluster-virtual"></a>

使用 [Grant Cluster Access for Amazon EMR on EKS](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/setting-up-cluster-access.html) 中的步骤，授予 Amazon EMR on EKS 对集群中特定命名空间的访问权限。

## 在 Amazon EKS 集群上激活 IRSA
<a name="activate-iam-roles"></a>

要在 Amazon EKS 集群上激活服务账户的 IAM 角色（IRSA），请按照[启用服务账户的 IAM 角色（IRSA）](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/setting-up-enable-IAM.html)中的步骤操作。

## 创建 IAM 任务执行角色
<a name="iam-role"></a>

您必须创建一个 IAM 角色，才能在 Amazon EMR on EKS 交互式端点上运行工作负载。我们在本文档中将此 IAM 角色称为*任务执行角色*。此 IAM 角色既会分配给交互式端点容器，也会分配给您向 EMR Studio 提交任务时创建的实际执行容器。您将需要 Amazon EMR on EKS 任务执行角色的 Amazon 资源名称（ARN）。为此，请按以下两个步骤操作：
+ [创建任务执行的 IAM 角色。](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/creating-job-execution-role.html)
+ [更新任务执行角色的信任策略。](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/setting-up-trust-policy.html)

## 授予用户访问 Amazon EMR on EKS 的权限
<a name="iam-permission"></a>

请求创建交互式端点的 IAM 实体（用户或角色）还必须拥有下列 Amazon EC2 和 `emr-containers` 权限。按照 [授予用户访问 Amazon EMR on EKS 的权限](setting-up-iam.md) 中介绍的步骤授予这些权限，以允许 Amazon EMR on EKS 创建、管理和删除安全组，这些安全组会限制流向交互式端点负载均衡器的入站流量。

以下 `emr-containers` 权限允许用户执行基本的交互式端点操作：

```
"ec2:CreateSecurityGroup",
"ec2:DeleteSecurityGroup",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress"

"emr-containers:CreateManagedEndpoint",
"emr-containers:ListManagedEndpoints",
"emr-containers:DescribeManagedEndpoint",
"emr-containers:DeleteManagedEndpoint"
```

## 通过 Amazon EMR 注册 Amazon EKS 集群
<a name="register-eks-cluster"></a>

设置虚拟集群并将其映射到您要运行任务的 Amazon EKS 集群中的命名空间。对于 AWS Fargate仅限集群，请为 EKS 虚拟集群上的 Amazon EMR 和 Fargate 配置文件使用相同的命名空间。

有关设置 Amazon EMR on EKS 虚拟集群的信息，请参阅 [通过 Amazon EMR 注册 Amazon EKS 集群](setting-up-registration.md)。

## 将 Loa AWS d Balancer 控制器部署到 Amazon EKS 集群
<a name="load-balancer-controller"></a>

您的 Amazon EKS 集群需要一个 AWS Application Load Balancer。您只需为每个 Amazon EKS 集群设置一个应用程序负载均衡器控制器。有关设置 App AWS lication Load Balancer 控制器的信息，请参阅 *Amazon EKS 用户指南*中的[安装 AWS 负载均衡器控制器插件](https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html)。