本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon EC2 资源上创建包含多个容器的单节点任务定义
完成以下步骤,在亚马逊弹性计算云 (Amazon EC2) 资源上创建包含多个容器的单节点任务定义。
要在 Amazon EC2 资源上创建新的任务定义,请执行以下操作:
-
打开 AWS Batch 控制台,网址为https://console.aws.amazon.com/batch/
。 -
从导航栏中选择 AWS 区域 要使用的。
-
在左侧导航窗格中,选择作业定义。
-
选择创建。
-
对于编排类型,请选择亚马逊弹性计算云 (Amazon EC2)。
-
对于 Job 定义结构,请禁用 “使用旧版 ContainerProperties 结构处理”。
-
要进行EC2 平台配置,请关闭启用多节点并行处理。
-
选择下一步。
在常规配置部分,输入以下内容:
-
对于名称,为您的作业定义输入唯一名称。名称长度不超过 128 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。
-
对于 “执行超时-可选”,输入超时值(以秒为单位)。执行超时是指未完成的作业终止之前的时间长度。如果某次尝试超过了超时时间,该尝试将停止,状态将转为
FAILED。有关更多信息,请参阅 作业超时。最小值为 60 秒。 -
开启日程安排优先级-可选。输入介于 0 到 100 之间的计划优先级值。值越高,优先级越高。
-
展开标签-可选,然后选择添加标签以向资源添加标签。输入键和可选的值,然后选择添加标签。
-
启用 “传播标签”,将标签从任务和任务定义传播到 Amazon ECS 任务。
-
在 “重试策略-可选” 部分中,输入以下内容:
-
对于 Job 尝试次数,请输入 AWS Batch 尝试将任务移至
RUNNABLE状态的次数。请输入 1 到 10 之间的数字。 -
对于 “重试” 策略条件,选择 “退出时添加评估”。至少输入一个参数值,然后选择一个操作。对于每组条件,必须将操作设置为重试或退出。这些操作意味着以下几点:
-
重试 — AWS Batch 重试,直到达到您指定的任务尝试次数。
-
退出 — AWS Batch 停止重试作业。
重要
如果选择退出时添加评估,则必须至少配置一个参数并选择一个操作或选择退出时移除评估。
-
-
在任务属性部分中,输入以下内容:
-
对于执行角色(视情况而定),选择一个角色以允许 Amazon ECS 代理代表您进行 AWS API 调用。有关创建执行角色的更多信息,请参阅教程:创建 IAM 执行角色。
-
选择启用 ECS 执行命令,以允许直接访问 Amazon ECS 容器外壳并绕过主机操作系统。您必须选择任务角色。
重要
ECS 执行命令要求文件系统是可写的。
-
对于任务角色,选择一个 Amazon ECS 身份和访问管理 (IAM) Access Management 角色以允许容器代表 AWS 您进行 API 调用。有关更多信息,请参阅《亚马逊弹性容器服务开发者指南》中的 Amazon ECS 任务 IAM 角色。
-
对于 IPC 模式
host,选择task、或none。如果host指定,则在同一容器实例上指定主机 IPC 模式的任务中的所有容器都将与主机 Ama EC2 zon 实例共享相同的 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)进行进一步限定。
-
对于资源需求,请配置以下各项:
对于 v CPUs,选择容 CPUs 器的编号。
对于 “内存”,选择容器的内存量。
对于 GPU-可选,选择容 GPUs 器的数量。
对于 User,输入要在容器内使用的用户名。
开启启用只读文件系统以移除对卷的写入权限。
启用 P ri vileged 可以向作业容器授予对宿主实例的更高权限,类似于 root 用户。
-
对于命令,将命令作为其等效的 JSON 字符串数组输入到字段中。
此参数映射到 Docker Remote API
创建容器 部分中的 Cmd,以及docker run的 COMMAND参数。有关该DockerCMD参数的更多信息,请参阅 reference https://docs.docker.com/engine//builder/ #cmd。 注意
您可以在命令中使用参数替代默认值和占位符。有关更多信息,请参阅 参数。
对于存储库凭证-可选,输入包含您的凭据的密钥的 ARN。
对于环境变量-可选,选择添加环境变量以添加要传递到容器的环境变量。
在 Linux 参数-可选部分中:
开启启用初始化进程以在容器内运行初始化进程。
对于共享内存大小,请输入 /dev/shm 卷的大小(以 MiB 为单位)
在最大交换大小中,输入容器可使用的总交换内存量(以 MiB 为单位)。
在 Swappiness 中输入一个介于 0 和 100 之间的值,以指示容器的 swappiness 行为。如果不指定值且启用了交换,则值默认值为 60。
-
对于设备,选择添加设备以添加设备:
-
对于容器路径,指定容器实例中的路径以公开映射到主机实例的设备。如果将其留空,则在容器中使用主机路径。
-
对于主机路径,指定主机实例中设备的路径。
-
对于权限,选择要应用于设备的一个或多个权限。可用权限包括读取、写入和 MKNOD。
-
-
对于 Tmpfs,请选择添加 tmpfs 以添加
tmpfs挂载。
注意
Firelens 日志记录必须在专用容器中完成。要配置 Firelens 日志记录,请执行以下操作:
在除专用 firelens 容器之外的每个容器中,将 Lo g ging 驱动程序设置为
awsfirelens在您的 Firelens 容器中,将 Firelens 配置(可选)和日志记录配置(可选)设置为日志记录目的地
在 Firelens 配置-可选部分中:
重要
AWS Batch 在非 MNP、非 Fargate 的 Amazon ECS 作业上强制执行
host网络模式。Amazon ECS Firelen@@ s 需要 root 用户。在运行使用 host网络模式的任务时,为了提高安全性,Amazon ECS 建议不要使用根用户 (UID 0) 运行容器。因此,所有使用 Firelens 日志记录的非 MNP、非 Fargate ECS 作业都不符合安全最佳实践。-
在 “类型” 中,选择
fluentd或fluentbit。 -
在 “选项” 中,输入选项的 name/value 配对。您可以使用 “已添加” 选项添加更多选项。
-
在 “日志配置-可选” 部分中:
-
对于日志驱动程序,请选择要使用的日志驱动程序。有关可用日志驱动程序的更多信息,请参阅:LogConfigurationlogDriver。
注意
默认情况下,使用
awslogs日志驱动程序。 -
在选项中,选择添加选项以添加选项。输入名称-值对,然后选择添加选项。
-
对于密钥,选择添加密钥。输入名称-值对,然后选择添加密钥以添加密钥。
-
对于装入点-可选,选择添加装入点以添加数据卷的挂载点。您必须指定源卷和容器路径。
-
对于 “密钥-可选”,选择 “添加密钥” 以添加密钥。然后,输入名称-值对,并选择添加密钥。
对于 Ulimits-可选,选择添加 ulimi t 为容器添加一个
ulimits值。输入名称、软限制和硬限制值,然后选择添加 ulimit。对于 “依赖关系-可选”,选择 “添加容器依赖关系”。选择容器的名称及其状态以确定此容器何时启动。
如果您只配置了一个容器,则必须选择添加容器并完成新容器的配置。否则,请选择 “下一步” 进行查看。