教程:在 Amazon EKS 资源上创建单节点作业定义
完成以下步骤,在 Amazon Elastic Kubernetes Service(Amazon EKS)上创建单节点作业定义。
要在 Amazon EKS 资源上创建新的作业定义,请执行以下操作:
-
打开AWS Batch控制台,地址:https://console.aws.amazon.com/batch/
。 -
从顶部导航栏中,选择要使用的 AWS 区域。
-
在左侧导航窗格中,选择作业定义。
-
选择创建。
-
对于编排类型,选择 Elastic Kubernetes Service (EKS)。
-
对于名称,为您的作业定义输入唯一名称。名称长度不超过 128 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。
-
(可选)对于执行超时,输入超时值(以秒为单位)。执行超时是指未完成的作业终止之前的时间长度。如果某次尝试超过了超时时间,该尝试将停止,状态将转为
FAILED
。有关更多信息,请参阅 作业超时。最小值为 60 秒。 -
(可选)开启计划优先级。输入介于 0 到 100 之间的计划优先级值。值越高,相较于较低值的优先级越高。
-
(可选)展开 标签,然后选择添加标签以向资源添加标签。
-
选择下一页。
-
在 EKS pod 属性部分中:
-
在服务账户名称中,输入为在 pod 中运行的进程提供身份的账户。
-
打开主机网络以使用 Kubernetes pod 网络模型,并为传入的连接打开侦听端口。仅对传出通信关闭此设置。
-
对于 DNS 策略,选择以下选项之一:
-
无值(空) - pod 忽略 Kubernetes 环境中的 DNS 设置。
-
默认 — pod 从其运行的节点继承名称解析配置。
注意
如果未指定 DNS 策略,则默认不是默认 DNS 策略。而是使用 ClusterFirst。
-
ClusterFirst — 任何与配置的集群域后缀不匹配的 DNS 查询都将转发到继承自节点的上游名称服务器。
-
ClusterFirstWithHostNet — 如果主机网络已开启,则使用。
-
-
(可选)对于容器组(pod)标签,选择添加容器组(pod)标签,然后输入名称/值对。
重要
容器组(pod)标签的前缀不能包含
kubernetes.io/
、k8s.io/
或batch.amazonaws.com/
。 -
选择下一页。
-
在容器配置部分:
-
对于名称,输入容器的名称。该名称必须以字母或数字开头,并且最多可以包含 25 个字符。可以包含大小写字母、数字和连字符。
-
对于映像,选择要用于您的作业的 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 命令。
-
(可选)在参数中输入要传递给容器的参数。如果未提供参数,则使用容器映像命令。
-
-
(可选)您可以将参数作为名称值映射添加到作业定义中,以覆盖作业定义的默认值。若要添加参数:
-
在参数中,输入名称/值对,然后选择添加参数。
重要
如果选择添加参数,则必须至少配置一个参数或选择移除参数。
-
-
在环境配置部分:
-
对于 vCPUs,输入要为容器预留的 vCPU 数量。此参数将映射到 Docker Remote API
的创建容器 部分中的 CpuShares
以及docker run的 --cpu-shares
选项。每个 vCPU 相当于 1024 个 CPU 份额。您必须指定至少一个 vCPU。 -
对于内存,输入容器可用的内存限制。如果您的容器尝试使用超出此处指定的内存,该容器将被终止。此参数将映射到 Docker Remote API
的创建容器 部分中的 Memory
以及docker run的 --memory
选项。您必须为作业指定至少 4 MiB 内存。注意
要最大限度地提高资源利用率,请为特定实例类型的作业确定内存优先级。有关更多信息,请参阅 计算资源内存管理。
-
-
(可选)对于环境变量,选择添加环境变量以名称-值对的形式添加环境变量。这些变量传递给容器。
-
(可选)对于卷装载:
-
选择添加卷装载。
-
输入名称,然后在装入卷的容器中输入装载路径。
-
选择只读可删除该卷的写入权限。
-
选择添加卷装载。
-
-
(可选)在以用户身份运行中,输入用户 ID 以运行容器进程。
注意
映像中必须存在用户 ID,容器才能运行。
-
(可选)在分组运行中,输入组 ID 以运行容器进程。
注意
映像中必须存在群组 ID,容器才能运行。
-
(可选)要为您的作业容器授予对主机实例的提升权限(类似于
root
用户),请选择 特权。此参数将映射到 Docker Remote API的创建容器 部分中的 Privileged
以及docker run的 --privileged
选项。 -
(可选)打开只读根文件系统以删除对根文件系统的写入权限。
-
(可选)启用以非根用户身份运行,以非根用户身份运行 pod 中的容器。
注意
如果启用以非根用户身份运行,则 kubelet 会在运行时验证映像以查证该映像不是以 UID 0 运行的。
-
选择下一页。
-
-
对于作业定义查看,请查看配置步骤。如果需要进行更改,请选择 Edit(编辑)。完成后,选择创建作业定义。