运行 MNP 作业 - AWS Batch

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

运行 MNP 作业

AWS Batch 支持亚马逊弹性容器服务和使用亚马逊 EC2的 Amazon EKS 上的 MNP 任务。以下内容提供有关该功能的实例和容器参数的更多细节。

Amazon EKS 上的 MNP 的实例配额

  • 单个 MNP 作业最多可使用 1000 个实例。

  • 最多可以有 5000 个实例加入单个 Amazon EKS 集群。

  • 最多可以将 5 个计算环境集群化并附加到作业队列。

例如,您可以在一个作业队列中最多扩展 5 个集群计算环境,在每个计算环境中最多可扩展 1000 个实例。

除了实例参数外,还需要注意的是,您不能通过任何一种服务使用 Fargate 进行 MNP 作业。

您只能在每个 MNP 作业中使用一种实例类型。您可以通过更新计算环境,或者在定义新的计算环境时更改实例类型。您还可以指定实例类型,并在创建作业定义时提供 vCPU 和内存要求。

Amazon EKS 上的 MNP 的容器配额

  • 多节点并行作业为每个节点支持一个容器组(pod)。

  • 每个容器组(pod)最多 10 个容器(或 10 个 init 容器。有关更多信息,请参阅 Kubernetes 文档中的 Init 容器。)。

  • 每个 MNP 作业中最多 5 个节点范围。

  • 每个节点范围内最多 10 个不同的容器映像。

例如,在包含 5 个节点范围和总共 50 个唯一映像的单个 MNP 作业中,您最多可以运行 10000 个容器。

在私有 Amazon VPC 和 Amazon EKS 集群中运行 MNP 作业

MNP 作业可以在任何 Amazon EKS 集群上运行,无论该集群是否有公共互联网。使用只有私有网络访问权限的 Amazon EKS 集群时,请确保该集群 AWS Batch 可以访问 Amazon EKS 控制平面和托管的 Kubernetes API 服务器。您可以通过 Amazon Virtual Private Cloud 端点授予必要的访问权限。有关更多信息,请参阅 Configure an endpoint service

Amazon EKS 集群容器组(pod)无法从公共来源下载映像,因为私有 VPC 无法访问互联网。您的 Amazon EKS 集群必须从 Amazon VPC 中的容器注册表中拉取映像。您可以在亚马逊 VPC 中创建亚马逊弹性容器注册表 (Amazon ECR) Con tainer Registry,并将容器映像复制到该注册表中以供您的节点访问。

您还可以使用 Amazon ECR 创建缓存提取规则。为外部公有注册表创建缓存提取规则后,您就可以使用 Amazon ECR 私有注册表 URI 从该外部公有注册表中提取映像。然后,Amazon ECR 会创建一个存储库并缓存映像。当使用 Amazon ECR 私有注册表 URI 提取缓存镜像时,Amazon ECR 会检查远程注册表以查看是否有新版本的镜像,并且会最多每 24 小时更新一次您的私有注册表。有关更多信息,请参阅 Creating a pull through cache rule in Amazon ECR

有关此主题的更多信息,请参阅 教程:Amaz AWS Batch on EKS 私有集群入门

错误通知

如果您的 MNP 职位被屏蔽,您可以通过 AWS Management Console 和 Amazon EventBridge 收到通知。例如,如果 MNP 作业卡在队列的开头,您会收到有关该问题的通知以及导致该问题的原因的信息,以便您可以立即采取措施来解除对作业队列的阻止。如果在一段特定的时间内没有采取任何操作,则您还可以选择自动终止 MNP 作业,这段时间可以在作业队列模板中定义。有关更多信息,请参阅 资源:作业队列已阻止事件