在 Amazon EC2 资源上创建使用多个容器的单节点作业定义
完成以下步骤,在 Amazon Elastic Compute Cloud(Amazon EC2)资源上创建具有多个容器的单节点作业定义。
要在 Amazon EC2 资源上创建新的作业定义,请执行以下操作:
-
打开AWS Batch控制台,地址:https://console.aws.amazon.com/batch/
。 -
从导航栏中,选择要使用的 AWS 区域。
-
在左侧导航窗格中,选择作业定义。
-
选择创建。
-
对于编排类型,选择 Amazon Elastic Compute Cloud (Amazon EC2)。
-
对于作业定义结构,请禁使用传统的 containerProperties 结构处理。
-
对于 EC2 平台配置,请关闭启用多节点并行处理。
-
选择下一步。
在常规配置部分中,输入以下内容:
-
对于名称,为您的作业定义输入唯一名称。名称长度不超过 128 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。
-
对于执行超时 – 可选,输入超时值(以秒为单位)。执行超时是指未完成的作业终止之前的时间长度。如果某次尝试超过了超时时间,该尝试将停止,状态将转为
FAILED。有关更多信息,请参阅 作业超时。最小值为 60 秒。 -
开启调度优先级 – 可选。输入介于 0 到 100 之间的计划优先级值。值越高,优先级越高。
-
展开标签 – 可选,然后选择添加标签以向该资源添加标签。输入键和可选的值,然后选择添加标签。
-
开启传播标签,以将标签从作业和作业定义传播到 Amazon ECS 任务。
-
在重试策略 – 可选部分中,输入以下内容:
-
对于作业尝试,请输入 AWS Batch 尝试将作业移至
RUNNABLE状态的次数。请输入 1 到 10 之间的数字。 -
对于重试策略条件,选择添加退出时评估。至少输入一个参数值,然后选择一个操作。对于每组条件,必须将操作设置为重试或退出。这些操作意味着以下几点:
-
重试 — AWS Batch 重试,直到达到您指定的作业尝试次数。
-
退出 – AWS Batch 停止重试作业。
重要
如果选择退出时添加评估,则必须至少配置一个参数并选择一个操作或选择退出时移除评估。
-
-
在任务属性部分中,输入以下内容:
-
对于执行角色 – 条件,选择一个允许 Amazon ECS 代理代表您执行 AWS API 调用的角色。有关创建执行角色的更多信息,请参阅教程:创建 IAM 执行角色。
-
选择启用 ECS execute 命令,以实现直接访问 Amazon ECS 容器 Shell 并绕过主机操作系统。必须选择一个任务角色。
重要
ECS execute 命令要求文件系统是可写的。
-
对于任务角色,选择一个允许容器代表您执行 AWS API 调用的 Amazon ECS Identity and Access Management(IAM)角色。有关更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》中的 Amazon ECS 任务 IAM 角色。
-
对于 IPC 模式,选择
host、task或none。如果指定了host,则在同一容器实例上指定了主机 IPC 模式的任务中的所有容器将与主机 Amazon EC2 实例共享相同的 IPC 资源。如果指定了任务,则指定任务中的所有容器将共享相同的 IPC 资源。如果指定了任何选项,则任务的容器中的 IPC 资源是私有的,不与任务中或容器实例上的其他容器共享。如果未指定任何值,则 IPC 资源命名空间共享取决于容器实例上的 Docker 守护程序设置。 对于 PID 模式,选择
host或task。例如,监控 sidecar 可能需要pidMode访问有关在同一任务中运行的其他容器的信息。如果指定了host,则在同一容器实例上指定了主机 PID 模式的任务中的所有容器将与主机 Amazon EC2 实例共享相同的进程命名空间。如果指定了task,则指定任务中的所有容器将共享相同的过程命名空间。如果未指定任何值,则默认值为每个容器的私有命名空间。
-
在消耗性资源部分中,输入以下内容:
-
输入唯一的名称和已请求的值。
您可以通过选择添加消耗性资源来添加更多消耗性资源。
-
在存储部分中,输入以下设置:
-
输入卷的名称和源路径,然后选择添加卷。您也可以选择开启启用 EFS。
您可以通过选择添加卷来添加更多卷。
-
-
对于参数,选择添加参数以添加参数替换占位符,作为键(可选的)值对。
-
选择下一页。
-
在容器配置部分:
对于 Name(名称),输入容器的名称。
对于基本容器,如果该容器为必需,则启用该容器。
-
对于映像,选择要用于您的作业的 Docker 映像。默认情况下,Docker Hub 注册表中的映像可用。也可以使用
指定其他存储库。名称长度不超过 225 个字符。可以包含大小写字母、数字、连字符(-)、下划线(_)、冒号(:)、正斜杠(/)和数字符号(#)。此参数可映射到 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) 进行进一步限定。
-
对于资源要求,配置以下各项参数:
对于 vCPU 数,选择容器的 CPU 数量。
对于内存,选择容器的内存量。
对于 GPU – 可选,选择该容器 GPU 数量。
对于 User,输入要在容器内使用的用户名。
开启启用只读文件系统以移除对卷的写入权限。
开启特权,以在主机实例上授予作业容器升级权限,类似于根用户。
-
对于命令,将命令的等效 JSON 字符串数组输入到该字段中。
此参数映射到 Docker Remote API
创建容器 部分中的 Cmd,以及docker run的 COMMAND参数。有关 DockerCMD参数的更多信息,请参阅 https://docs.docker.com/engine/reference/builder/#cmd。 注意
您可以在命令中使用参数替代默认值和占位符。有关更多信息,请参阅 Parameters。
对于存储库凭证 – 可选,输入包含您的凭证的密钥的 ARN。
对于环境变量 可选,选择添加环境变量以添加要传递到容器的环境变量。
在 Linux 参数 – 可选部分中:
开启启用初始化进程以在容器内运行初始化进程。
对于共享内存大小,输入 /dev/shm 卷的大小(以 MiB 为单位)。
在最大交换大小中,输入容器可使用的总交换内存量(以 MiB 为单位)。
在 Swappiness 中输入一个介于 0 和 100 之间的值,以指示容器的 swappiness 行为。如果不指定值且启用了交换,则值默认值为 60。
-
对于设备,选择添加设备以添加设备:
-
对于容器路径,指定容器实例中的路径以公开映射到主机实例的设备。如果将其留空,则在容器中使用主机路径。
-
对于主机路径,指定主机实例中设备的路径。
-
对于权限,选择要应用于设备的一个或多个权限。可用权限包括读取、写入和 MKNOD。
-
-
对于 Tmpfs,请选择添加 tmpfs 以添加
tmpfs挂载。
注意
Firelens 日志记录必须在专用容器中进行。配置 Firelens 日志记录:
在除专用 firelens 容器之外的每个容器中,将日志记录驱动程序设置为
awsfirelens在您的 Firelens 容器中,将 Firelens 配置 – 可选和日志记录配置 – 可选设置为日志记录的目标
在 Linux 配置 – 可选部分中:
重要
-
对于类型,选择
fluentd或fluentbit。 -
对于选项,输入该选项的名称/值对。您可以使用已添加的选项来添加其他选项。
-
在日志记录配置 – 可选部分中:
-
对于日志驱动程序,请选择要使用的日志驱动程序。有关可用日志驱动程序的更多信息,请参阅 LogConfiguration:logDriver。
注意
默认情况下,使用
awslogs日志驱动程序。 -
在选项中,选择添加选项以添加选项。输入名称-值对,然后选择添加选项。
-
对于密钥,选择添加密钥。输入名称-值对,然后选择添加密钥以添加密钥。
提示
有关更多信息,请参阅 LogConfiguration:secretOptions。
-
对于挂载点 – 可选,选择添加挂载点以添加数据卷的挂载点。您必须指定源卷和容器路径。
-
对于密钥 – 可选,选择添加密钥以添加密钥。然后,输入名称-值对,并选择添加密钥。
提示
有关更多信息,请参阅 LogConfiguration:secretOptions。
对于 Ulimits – 可选,选择添加 ulimit 为容器添加一个
ulimits值。输入名称、软限制和硬限制值,然后选择添加 ulimit。对于依赖项 – 可选,选择添加容器依赖项。选择容器名称,其状态决定了此容器何时会启动。
如果只配置了一个容器,则必须选择添加容器并完成新容器的配置。否则,请选择下一步进行检查。