Amazon EKS 计算环境 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon EKS 计算环境

开始使用 Amazon EKS 上的 Amazon Batch提供了创建 EKS 计算环境的简短指南。本节提供了有关 Amazon EKS 计算环境的更多详细信息。

Amazon Batch workflow diagram showing integration with Amazon EKS, ECS, Fargate, and EC2.

Amazon Batch 通过提供托管批处理功能,简化您在 Amazon EKS 集群上的批处理工作负载。这包括队列、依赖关系跟踪、托管作业重试次数和优先级、容器组(pod)管理和节点扩展。Amazon Batch 可以处理多个可用区和多个 Amazon EC2 实例类型和大小。Amazon Batch 集成了多个 Amazon EC2 竞价型最佳实践,以容错方式运行您的工作负载,从而减少中断。您可以使用 Amazon Batch 来放心地运行少量夜间作业或数百万个关键任务作业。

Amazon Batch workflow on Amazon EKS, showing job queue, compute environment, and EC2 instances.

Amazon Batch 是一项托管式服务,用于在 Kubernetes 集群中编排由 Amazon Elastic Kubernetes Service(Amazon EKS)所托管的批处理工作负载。Amazon Batch 使用“叠加”模式在集群外部进行这种编排。由于 Amazon Batch 是托管服务,因此无需在集群中安装或管理任何 Kubernetes 组件(例如,运算符或自定义资源)。Amazon Batch 只需要将您的集群配置为允许Amazon Batch与 Kubernetes API 服务器通信的基于角色的访问控制 (RBAC)。Amazon Batch调用 Kubernetes API 来创建、监控和删除 Kubernetes 容器组(pod)和节点。

Amazon Batch 具有内置的扩展逻辑,可根据作业队列负载扩展 Kubernetes 节点,并在作业容量分配方面进行了优化。当作业队列为空时,Amazon Batch 将节点缩小到您设置的最小容量,默认情况下为零。Amazon Batch 管理这些节点的整个生命周期,并用标签和污点装饰节点。这样,其他 Kubernetes 工作负载就不会放在由 Amazon Batch 管理的节点上。唯一的例外是 DaemonSets,它可以将 Amazon Batch 节点作为目标,以提供正确执行作业所需的监控和其他功能。此外,Amazon Batch 不会在集群中它不管理的节点上运行作业,特别是容器组(pod)。这样,您就可以为集群上的其他应用程序使用单独的扩展逻辑和服务。

要向 Amazon Batch 提交作业,您可以直接与 Amazon Batch API 交互。Amazon Batch 将作业转换为 podspecs,然后创建请求,将容器组(pod)放置在 Amazon EKS 集群中由 Amazon Batch 管理的节点上。您可以使用诸如 kubectl 之类的工具查看正在运行的容器组(pod)和节点。当容器组(pod)完成执行后,Amazon Batch 会删除其创建的容器组(pod),以保持较低的 Kubernetes 系统负载。

您可以先将有效的 Amazon EKS 集群与 Amazon Batch 连接起来。然后将 Amazon Batch 作业队列附加到该队列,并使用 podspec 等效的属性注册 Amazon EKS 作业定义。最后,使用引用作业定义的 SubmitJob API 操作提交作业。有关更多信息,请参阅 开始使用 Amazon EKS 上的 Amazon Batch

Amazon EKS