教程:在 Amazon EKS 资源上创建单节点任务定义 - AWS Batch

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

教程:在 Amazon EKS 资源上创建单节点任务定义

完成以下步骤,在亚马逊 Elastic Kubernetes Service(亚马逊)上创建单节点任务定义。EKS

要在 Amazon EKS 资源上创建新的任务定义,请执行以下操作:
  1. 打开 AWS Batch 控制台,网址为https://console.aws.amazon.com/batch/

  2. 从顶部导航栏中,选择 AWS 区域 要使用的。

  3. 在左侧导航窗格中,选择作业定义

  4. 选择创建

  5. 对于编排类型,请选择 Elastic Kubernetes 服务 ()。EKS

  6. 对于名称,为您的作业定义输入唯一名称。名称长度不超过 128 个字符。可以包含大小写字母、数字、连字符(-)和下划线(_)。

  7. (可选)对于执行超时,输入超时值(以秒为单位)。执行超时是指未完成的作业终止之前的时间长度。如果某次尝试超过了超时时间,该尝试将停止,状态将转为 FAILED。有关更多信息,请参阅 作业超时。最小值为 60 秒。

  8. (可选)开启计划优先级。输入介于 0 到 100 之间的计划优先级值。值越高,相较于较低值的优先级越高。

  9. (可选)展开 标签,然后选择添加标签以向资源添加标签。

  10. 选择下一页

  11. EKS pod 属性部分:

    1. 服务帐户名称中,输入一个帐户,该帐户为在中运行的进程提供身份 pod.

    2. 打开主机网络以使用 Kubernetes pod 网络模型并为传入的连接打开侦听端口。仅对传出通信关闭此设置。

    3. 对于DNS策略,请选择以下选项之一:

      • 无值 (空) — pod 忽略来自的DNS设置 Kubernetes 环境。

      • 默认- pod 从其运行的节点继承名称解析配置。

        注意

        如果未指定DNS策略,则默认策略不是默认DNS策略。而是使用ClusterFirst了。

      • ClusterFirst— 任何与配置的集群域后缀不匹配的DNS查询都将转发到继承自该节点的上游域名服务器。

      • ClusterFirstWithHostNet— 如果主机网络已开启,则使用。

    4. (可选)对于容器组(pod)标签,选择添加容器组(pod)标签,然后输入名称/值对。

      重要

      容器组(pod)标签的前缀不能包含 kubernetes.io/k8s.io/batch.amazonaws.com/

    5. (可选)对于 Pod 注释,请选择添加注释,然后输入名称/值对。

      重要

      pod 注释的前缀不能包含kubernetes.io/k8s.io/、或batch.amazonaws.com/

    6. 选择下一页

    7. 容器配置部分:

      1. 对于名称,输入容器的名称。该名称必须以字母或数字开头,并且最多可以包含 25 个字符。可以包含大小写字母、数字和连字符。

      2. 对于 “图像”,选择 Docker 用于工作的图片。默认情况下,Docker Hub 注册表中的映像可用。也可以使用repository-url/image:tag指定其他存储库。名称最多可以有 255 个字符。可以包含大小写字母、数字、连字符(-)、下划线(_)、冒号(:)、句点(.)、正斜杠(/)和数字符号(#)。此参数映射到 Image Docker Remote 的 “创建容” 部分中API,IMAGE参数为 docker run

        注意

        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 使用单个名称(例如,ubuntumongo)。

        • 其他存储库中的图片位于 Docker Hub 使用组织名称进行限定(例如,amazon/amazon-ecs-agent)。

        • 其他在线存储库中的映像由域名 (例如,quay.io/assemblyline/ubuntu) 进行进一步限定。

      3. (可选)对于映像提取策略,请选择何时提取映像。

      4. (可选)在 “命令” 中,输入 Bash 或 JSON 命令传递给容器。

      5. (可选)在参数中输入要传递给容器的参数。如果未提供参数,则使用容器映像命令。

    8. (可选)您可以将参数作为名称值映射添加到作业定义中,以覆盖作业定义的默认值。若要添加参数:

      1. 参数中,输入名称/值对,然后选择添加参数

        重要

        如果选择添加参数,则必须至少配置一个参数或选择移除参数

    9. 环境配置部分:

      1. 对于 vCPUs,输入 vCPUs 要为集装箱预留的数量。此参数映射到 CpuShares Docker Remote 的 “创建容” 部分API,--cpu-shares选项映射到docker run。每个 v 相当CPU于 1,024 CPU 股。必须至少指定一个 v CPU。

      2. 对于内存,输入容器可用的内存限制。如果您的容器尝试使用超出此处指定的内存,该容器将被终止。此参数映射到 Memory Docker Remote 的 “创建容” 部分API,--memory选项映射到docker run。您必须为作业指定至少 4 MiB 内存。

        注意

        要最大限度地提高资源利用率,请为特定实例类型的作业确定内存优先级。有关更多信息,请参阅 计算资源内存管理

    10. (可选)对于环境变量,选择添加环境变量以名称-值对的形式添加环境变量。这些变量传递给容器。

    11. (可选)对于卷装载

      1. 选择添加卷装载

      2. 输入名称,然后在装入卷的容器中输入装载路径。输入 a SubPath以指定被引用卷内的子路径,而不是其根路径。

      3. 选择只读可删除该卷的写入权限。

      4. 选择添加卷装载

    12. (可选)在以用户身份运行中,输入用户 ID 以运行容器进程。

      注意

      映像中必须存在用户 ID,容器才能运行。

    13. (可选)在分组运行中,输入组 ID 以运行容器进程。

      注意

      映像中必须存在群组 ID,容器才能运行。

    14. (可选)要为您的作业容器授予对主机实例的提升权限(类似于 root 用户),请选择 特权。此参数映射到 Privileged Docker Remote 的 “创建容” 部分API,--privileged选项映射到docker run

    15. (可选)打开只读根文件系统以删除对根文件系统的写入权限。

    16. (可选)启用 “以非 root 用户身份运行” 以运行中的容器 pod 作为非 root 用户。

      注意

      如果开启了 “以非 root 用户身份运行”,kubelet 在运行时验证图像以验证图像是否未UID以 0 的形式运行。

    17. 选择下一页

  12. 对于作业定义查看,请查看配置步骤。如果需要进行更改,请选择 Edit(编辑)。完成后,选择创建作业定义