本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:在 Amazon EC2 资源上创建多节点并行任务定义
在亚马逊弹性计算云 (Amazon EC2) 资源上创建多节点并行任务定义。
注意
要创建单节点作业定义,请参阅 教程:在 Amazon EC2 资源上创建单节点任务定义。
要在 Amazon EC2 资源上创建多节点并行任务定义,请执行以下操作:
-
打开 AWS Batch 控制台,网址为https://console.aws.amazon.com/batch/
。 -
在导航栏中,选择 AWS 区域 要使用的。
-
在导航窗格中,选择作业定义。
-
选择创建。
-
对于编排类型,请选择亚马逊弹性计算云 (Amazon EC2)。
-
对于启用多节点并行,请打开多节点并行。
-
对于名称,为您的作业定义输入唯一名称。名称可以长达 128 个字符,并且可以包含大小写字母、数字、连字符 (-) 和下划线 (_)。
-
(可选)对于 执行超时,指定您希望作业尝试运行的最大秒数。如果某次尝试超过了超时时间,该尝试将停止,状态将转为
FAILED
。有关更多信息,请参阅 作业超时。 -
(可选)开启计划优先级。输入介于 0 到 100 之间的计划优先级值。值越高,相较于较低值的优先级越高。
-
(可选)对于作业尝试,请输入 AWS Batch 尝试将作业移至
RUNNABLE
状态的次数。请输入 1 到 10 之间的数字。 -
(可选)对于重试策略条件,选择退出时添加评估。至少输入一个参数值,然后选择一个操作。对于每组条件,必须将操作设置为重试或退出。这些操作意味着以下几点:
-
重试 — AWS Batch 重试,直到达到您指定的任务尝试次数。
-
退出 — AWS Batch 停止重试作业。
重要
如果选择退出时添加评估,则必须至少配置一个参数并选择一个操作或选择退出时移除评估。
-
-
(可选)展开标签,然后选择添加标签以向资源添加标签。输入键和可选的值,然后选择添加标签。(可选)您也可开启传播标签,将标签从作业和作业定义传播到 Amazon ECS 任务。
-
选择下一页。
-
对于 Number of nodes (节点数),输入要用于作业的节点的总数。
-
对于 Main node (主节点),输入要用于主节点的节点索引。默认主节点索引为
0
。 -
对于实例类型,选择实例类型。
注意
您选择的实例类型适用于所有节点。
-
对于参数,选择添加参数以添加参数替换占位符作为键和可选值对。
-
在节点范围部分中:
-
选择添加节点范围。这将创建节点范围部分。
-
对于 Target nodes (目标节点),使用
表示法为节点组指定范围。range_start
:range_end
对于您为作业指定的节点,您可以创建最多 5 个节点范围。节点范围使用节点的索引值,并且节点索引从 0 开始。确保最终节点组的范围结束索引值比您指定的节点数少一。例如,假设您指定了 10 个节点,并且想要使用单个节点组。然后,您的终止范围是 9。
-
对于 “图像”,选择 Docker 用于工作的图片。默认情况下,图像位于 Docker Hub 注册表可用。也可以使用
指定其他存储库。名称最多可以有 255 个字符。可以包含大小写字母、数字、连字符(-)、下划线(_)、冒号(:)、正斜杠(/)和数字符号(#)。此参数可映射到 Docker Remote APIrepository-url
/image
:tag
的创建容器 部分中的 Image
和docker run的 IMAGE
参数。注意
Docker 映像架构必须与其计划使用的计算资源的处理器架构相匹配。例如,Arm 基于 Docker 图像只能在上面运行 Arm 基于计算资源。
-
Amazon ECR 公有存储库中的映像使用完整的
registry/repository[:tag]
或registry/repository[@digest]
命名惯例(例如,public.ecr.aws/
)。registry_alias
/my-web-app
:latest
-
Amazon ECR 存储库中的映像使用完整的
registry/repository[:tag]
命名惯例。例如,aws_account_id
.dkr.ecr.region
.amazonaws.com/
my-web-app
:latest
-
官方存储库中的图片 Docker Hub 使用单个名称(例如,
ubuntu
或mongo
)。 -
其他存储库中的图片位于 Docker Hub 使用组织名称进行限定(例如,
amazon/amazon-ecs-agent
)。 -
其他在线存储库中的映像由域名 (例如,
quay.io/assemblyline/ubuntu
) 进行进一步限定。
-
-
对于命令语法,请选择 Bash 或 JSON。
-
对于 Command,指定要传递到容器的命令。对于简单的命令,您可以在 Space delimited 选项卡上输入命令,就像在命令提示符中键入命令一样。然后,请验证 JSON 结果是正确的。JSON 结果将传递给 Docker daemon。 对于更复杂的命令(例如,使用特殊字符),可以切换到 JSON 选项卡,并在那里输入等效的字符串数组。
此参数映射到 Docker Remote API
创建容器 部分中的 Cmd
,以及docker run的 COMMAND
参数。有关该的更多信息 DockerCMD
参数,https://docs.docker.com/engine/参见 reference/builder/ #cmd。 注意
您可以在命令中使用参数替代默认值和占位符。有关更多信息,请参阅 参数。
-
对于 v CPUs,指定要为容器保留的 v CPUs 数。此参数将映射到 Docker Remote API
的创建容器 部分中的 CpuShares
以及docker run的 --cpu-shares
选项。每个 vCPU 相当于 1024 个 CPU 份额。您必须指定至少一个 vCPU。 -
对于 Memory,指定要提供给作业容器的内存硬限制 (以 MiB 为单位)。如果您的容器尝试使用超出此处指定的内存,该容器将被终止。此参数将映射到 Docker Remote API
的创建容器 部分中的 Memory
以及docker run的 --memory
选项。您必须为作业指定至少 4 MiB 内存。注意
您可以尝试通过为作业提供尽可能多的用于特定实例类型的内存来最大程度地利用资源。有关更多信息,请参阅 计算资源内存管理。
-
(可选)在 “数量” 中 GPUs,指定 GPUs 您的作业使用次数。该作业在一个容器上运行,该容器上固定了指定数量的 GPUs 容器。
-
(可选)对于 Job 角色,您可以指定一个 IAM 角色,为任务中的容器提供使用权限 AWS APIs。此功能使用 Amazon ECS IAM 角色来执行任务功能。有关更多信息(包括配置先决条件),请参阅 Amazon Elastic Container Service 开发人员指南中的任务中的 IAM 角色。
注意
对于在 Fargate 资源上运行的作业,需要作业角色。
注意
此处仅显示具有 Amazon Elastic Container Service Task Role 信任关系的角色。有关为您的 AWS Batch 任务创建 IAM 角色的更多信息,请参阅 A mazon Elastic Container 服务开发者指南中的为任务创建 IAM 角色和策略。
-
(可选)对于执行角色,请指定一个 IAM 角色,该角色授予 Amazon ECS 容器代理代表您进行 AWS API 调用的权限。此功能使用 Amazon ECS IAM 角色来执行任务功能。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的 Amazon ECS 任务执行 IAM 角色。
-
-
(可选)展开其他配置:
-
对于环境变量,选择添加环境变量以名称-值对的形式添加环境变量。这些变量传递给容器。
-
要配置 Job 角色,您可以指定一个 IAM 角色,为任务中的容器提供使用权限 AWS APIs。此功能使用 Amazon ECS IAM 角色来执行任务功能。有关更多信息(包括配置先决条件),请参阅 Amazon Elastic Container Service 开发人员指南中的任务中的 IAM 角色。
注意
对于在 Fargate 资源上运行的作业,需要作业角色。
注意
此处仅显示具有 Amazon Elastic Container Service Task Role 信任关系的角色。有关为 AWS Batch 作业创建 IAM 角色的更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的为任务创建 IAM 角色和策略。
-
对于执行角色,请指定一个 IAM 角色,该角色授予 Amazon ECS 容器代理代表您进行 AWS API 调用的权限。此功能使用 Amazon ECS IAM 角色来执行任务功能。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的 Amazon ECS 任务执行 IAM 角色。
-
-
在安全配置部分:
-
(可选)要为您的作业容器授予对主机实例的提升权限(类似于
root
用户),请启用 特权。此参数将映射到 Docker Remote API的创建容器 部分中的 Privileged
以及docker run的 --privileged
选项。 -
(可选)对于用户名,输入要在容器内使用的用户名。此参数将映射到 Docker Remote API
的创建容器 部分中的 User
以及docker run的 --user
选项。 -
(可选)对于密钥,选择添加密钥,将密钥添加为名称-值对。这些密钥暴露在容器中。欲了解更多信息,请参阅:S LogConfiguration ecretOptions。
-
-
在 Linux 配置部分中:
-
开启启用只读文件系统以移除对卷的写入权限。
-
(可选)开启启用 init 进程,用于在容器内运行
init
进程。该进程转发信号和获得进程。 -
在共享内存大小中,输入
/dev/shm
卷的大小(以 MiB 为单位)。 -
在最大交换大小中,输入容器可使用的总交换内存量(以 MiB 为单位)。
-
在 Swappiness 中输入一个介于 0 和 100 之间的值,以指示容器的 swappiness 行为。如果不指定值且启用了交换,则值默认值为 60。有关更多信息,请参阅:交换性LinuxParameters。
-
(可选)对于设备,选择添加设备以添加设备:
-
对于容器路径,指定容器实例中的路径以公开映射到主机实例的设备。如果将其留空,则在容器中使用主机路径。
-
对于主机路径,指定主机实例中设备的路径。
-
对于权限,选择要应用于设备的一个或多个权限。可用权限包括读取、写入和 MKNOD。
-
-
-
(可选)对于挂载点,请选择添加挂载点配置以添加数据卷的挂载点。您必须指定源卷和容器路径。这些挂载点将传递给 Docker 容器实例上的守护程序。您也可以选择将卷设为只读。
-
(可选)对于 Ulimits 配置,请选择添加 ulimit 为容器添加一个
ulimits
值。输入名称、软限制和硬限制值,然后选择添加 ulimit。 -
(可选)对于卷配置,请选择添加卷以创建要传递到容器的卷列表。输入卷的名称和源路径,然后选择添加卷。您也可以选择开启启用 EFS。
-
(可选)对于 Tmpfs,请选择添加 tmpfs 以添加
tmpfs
挂载。 -
(可选)在日志记录配置部分:
-
对于日志驱动程序,请选择要使用的日志驱动程序。有关可用日志驱动程序的更多信息,请参阅:LogConfigurationlogDriver。
注意
默认情况下,使用
awslogs
日志驱动程序。 -
在选项中,选择添加选项以添加选项。输入名称-值对,然后选择添加选项。
-
对于密钥,选择添加密钥。输入名称-值对,然后选择添加密钥以添加密钥。
-
-
选择下一页。
-
对于作业定义查看,请查看配置步骤。如果需要进行更改,请选择 Edit(编辑)。完成后,选择创建作业定义。