设置 Amazon EMR on EKS 的垂直自动扩展 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

设置 Amazon EMR on EKS 的垂直自动扩展

本主题旨在帮助您设置好 Amazon EKS 集群,以便通过垂直自动扩展功能提交 Amazon EMR Spark 任务。设置过程要求您确认或完成以下各节中的任务:

先决条件

在集群上安装垂直自动扩展 Kubernetes Operator 之前,请完成以下任务。跳过已完成的先决条件,转到下一个先决条件。

  • 安装 Amazon CLI – 如果已经安装 Amazon CLI,请确认安装的是最新版本。

  • 安装 kubectl – kubectl 是一个命令行工具,用于与 Kubernetes API 服务器进行通信。在 Amazon EKS 集群上安装并监控与垂直自动扩展相关的构件,需要用到 kubectl。

  • 安装 Operator SDK – Amazon EMR on EKS 使用 Operator SDK 作为您在集群上安装的垂直自动扩展 Operator 生命周期的包管理器。

  • 安装 Docker – 您需要访问 Docker CLI,才能验证并获取要安装在 Amazon EKS 集群上的垂直自动扩展相关的 Docker映像。

  • 设置 Amazon EKS 集群(1.24 或更高版本)– Amazon EKS 1.24 及更高版本都支持垂直自动扩展功能。创建集群后,请注册集群用于 Amazon EMR

  • 选择 Amazon EMR 基础映像 URI(6.10.0 或更高版本)– Amazon EMR 6.10.0 及更高版本都支持垂直自动扩展功能。

在 Amazon EKS 集群上安装 Operator Lifecycle Manager(OLM)

使用 Operator SDK CLI 在要设置垂直自动扩展功能的 Amazon EMR on EKS 集群上安装 Operator Lifecycle Manager(OLM),示例如下。设置完成后,您可以使用 OLM 来安装并管理 Amazon EMR 垂直自动扩展 Operator 的生命周期。

operator-sdk olm install

要验证安装情况,请运行 olm status 命令:

operator-sdk olm status

如果安装成功,验证命令返回类似如下示例输出的结果:

INFO[0007] Successfully got OLM status for version X.XX

如果安装失败,请参阅 对 Amazon EMR on EKS 垂直自动扩展进行问题排查

安装 Amazon EMR on EKS 垂直自动扩展 Operator

按照以下步骤在 Amazon EKS 集群上安装垂直自动扩展 Operator:

  1. 设置以下要用来完成安装的环境变量:

    • $REGION 指向集群的 Amazon Web Services 区域。例如,us-west-2

    • $ACCOUNT_ID 指向所在地区的 Amazon ECR 账户 ID。有关更多信息,请参阅按区域划分的 Amazon ECR 注册账户

    • $RELEASE 指向要用于集群的 Amazon EMR 版本。使用垂直自动扩展功能时,必须使用 Amazon EMR 6.10.0 或更高版本。

  2. 接下来,为 Operator 获取 Amazon ECR 注册表的身份验证令牌。

    aws ecr get-login-password \ --region region-id | docker login \ --username AWS \ --password-stdin $ACCOUNT_ID.dkr.ecr.region-id.amazonaws.com
  3. 使用以下命令在 Amazon EMR on EKS 上安装垂直自动扩展 Operator:

    ECR_URL=$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com && \ REPO_DEST=dynamic-sizing-k8s-operator-olm-bundle && \ BUNDLE_IMG=emr-$RELEASE-dynamic-sizing-k8s-operator && \ operator-sdk run bundle \ $ECR_URL/$REPO_DEST/$BUNDLE_IMG\:latest

    这会在 Amazon EKS 集群的默认命名空间中创建发行版垂直自动扩展 Operator。使用此命令在不同命名空间中安装:

    operator-sdk run bundle \ $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/dynamic-sizing-k8s-operator-olm-bundle/emr-$RELEASE-dynamic-sizing-k8s-operator:latest \ -n operator-namespace
    注意

    如果您指定的命名空间不存在,OLM 不会安装该 Operator。有关更多信息,请参阅未找到 Kubernetes 命名空间

  4. 使用 kubectl Kubernetes 命令行工具验证是否成功安装了 Operator。

    kubectl get csv -n operator-namespace

    kubectl 命令应返回新部署的垂直 Autoscaler Operator,且阶段状态为成功。如在安装或设置时遇到问题,请参阅 对 Amazon EMR on EKS 垂直自动扩展进行问题排查