本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 Amazon EMR on EKS 的垂直自动扩展
本主题旨在帮助您设置好 Amazon EKS 集群,以便通过垂直自动扩展功能提交 Amazon EMR Spark 任务。设置过程要求您确认或完成以下各节中的任务:
先决条件
在集群上安装垂直自动扩展 Kubernetes Operator 之前,请完成以下任务。跳过已完成的先决条件,转到下一个先决条件。
-
安装或更新到最新版本的 AWS CLI — 如果您已经安装了 AWS CLI,请确认您安装的是最新版本。
-
安装 kubectl – kubectl 是一个命令行工具,用于与 Kubernetes API 服务器进行通信。在 Amazon EKS 集群上安装并监控与垂直自动扩展相关的构件,需要用到 kubectl。
-
安装 Operator SDK
– Amazon EMR on EKS 使用 Operator SDK 作为您在集群上安装的垂直自动扩展 Operator 生命周期的包管理器。 -
安装 Docker
– 您需要访问 Docker CLI,才能验证并获取要安装在 Amazon EKS 集群上的垂直自动扩展相关的 Docker 映像。 -
安装 Kubernetes Metrics Server:必须先安装 Metrics Server,垂直容器组(pod)Autoscaler 才能从 Kubernetes API 服务器获取指标。
-
开始使用 Amazon EKS - eksctl(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:
-
设置以下要用来完成安装的环境变量:
-
$REGION
指向集群的 AWS 区域 。例如,us-west-2
。 -
$ACCOUNT_ID
指向所在地区的 Amazon ECR 账户 ID。有关更多信息,请参阅 按区域划分的 Amazon ECR 注册账户。 -
$RELEASE
指向要用于集群的 Amazon EMR 版本。使用垂直自动扩展功能时,必须使用 Amazon EMR 6.10.0 或更高版本。
-
-
接下来,为 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 -
使用以下命令在 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 命名空间。
-
使用 kubectl Kubernetes 命令行工具验证是否成功安装了 Operator。
kubectl get csv -n
operator-namespace
kubectl
命令应返回新部署的垂直 Autoscaler Operator,且阶段状态为成功。如在安装或设置时遇到问题,请参阅 对 Amazon EMR on EKS 垂直自动扩展进行问题排查。