在 Amazon EMR on EKS 上创建交互式端点的先决条件 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 Amazon EMR on EKS 上创建交互式端点的先决条件

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

Amazon CLI

要安装最新版本的 Amazon Command Line Interface(Amazon CLI),请按照 安装 Amazon CLI 中的步骤进行操作。

安装 eksctl

要安装最新版本的 eksctl,请按照 安装 eksctl 中的步骤进行操作。如果在 Amazon EKS 集群中使用 Kubernetes 版本 1.22 或更高版本,则请使用大于 0.117.0 的 eksctl 版本。

Amazon EKS 集群

创建 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 集群的私有子网。

  • Amazon EMR on EKS 交互式端点不支持针对 Amazon EKS 优化的 ARM Amazon Linux AMI。

  • 如果您使用仅限 Amazon Fargate (Fargate) 的 EKS 集群,请从所有 Fargate 节点上移除节点污点 eks.amazonaws.com/compute-type=fargate:NoSchedule

  • 交互式端点可与运行 Kubernetes 1.27 或更低版本的 Amazon EKS 集群配合使用。

  • 仅支持 Amazon EKS 托管节点组

授予 Amazon EMR on EKS 对集群的访问权限

使用 Grant Cluster Access for Amazon EMR on EKS 中的步骤,授予 Amazon EMR on EKS 对集群中特定命名空间的访问权限。

在 Amazon EKS 集群上激活 IRSA

要在 Amazon EKS 集群上激活服务账户的 IAM 角色(IRSA),请按照启用服务账户的 IAM 角色(IRSA)中的步骤操作。

创建 IAM 任务执行角色

您必须创建一个 IAM 角色,才能在 Amazon EMR on EKS 交互式端点上运行工作负载。我们在本文档中将此 IAM 角色称为任务执行角色。此 IAM 角色既会分配给交互式端点容器,也会分配给您向 EMR Studio 提交任务时创建的实际执行容器。您将需要 Amazon EMR on EKS 任务执行角色的 Amazon 资源名称(ARN)。为此,请按以下两个步骤操作:

授予用户访问 Amazon EMR on EKS 的权限

请求创建交互式端点的 IAM 实体(用户或角色)还必须拥有下列 Amazon EC2 和 emr-containers 权限。按照 授予用户访问 Amazon EMR on EKS 的权限 中介绍的步骤授予这些权限,以允许 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 集群

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

有关设置 Amazon EMR on EKS 虚拟集群的信息,请参阅 通过 Amazon EMR 注册 Amazon EKS 集群

将 Amazon 负载均衡器控制器部署到 Amazon EKS 集群

您的 Amazon EKS 集群需要 Amazon 应用程序负载均衡器。您只需为每个 Amazon EKS 集群设置一个应用程序负载均衡器控制器。有关设置 Amazon 应用程序负载均衡器控制器的信息,请参阅《Amazon EKS 用户指南》中的安装 Amazon 负载均衡器控制器附加组件