设置 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 映像。

  • 安装 Kubernetes 指标服务器 — 必须先安装指标服务器,这样垂直容器自动扩缩器才能从 Kubernetes API 服务器获取指标。

  • 设置 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 垂直自动扩展进行问题排查