本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon EKS 计算环境
亚马逊 EK AWS Batch S 入门提供了创建 EKS 计算环境的简短指南。本节提供了有关 Amazon EKS 计算环境的更多详细信息。
AWS Batch 通过提供托管批处理功能来简化 Amazon EKS 集群上的批处理工作负载。这包括队列、依赖关系跟踪、托管任务重试和优先级、容器管理和节点扩展。 AWS Batch 可以处理多个可用区域和多个 Amazon EC2 实例类型和大小。 AWS Batch 整合了多个 Amazon EC2 Spot 最佳实践,以容错方式运行您的工作负载,从而减少中断。您可以使用 AWS Batch 来放心地运行少量夜间作业或数百万个关键任务作业。
AWS Batch 是一项托管服务,用于协调由亚马逊弹性Kubernetes服务(亚马逊 EKS)管理的Kubernetes集群中的批量工作负载。 AWS Batch 使用 “覆盖” 模型在集群外部进行这种编排。由于 AWS Batch 是一项托管服务,因此无需在集群中安装或管理任何Kubernetes组件(例如操作员或自定义资源)。 AWS Batch 只需要为您的集群配置允许 AWS Batch 与 Kubernetes API 服务器通信的 Role-Based 访问控制 (RBAC)。 AWS Batch 调用 Kubernetes API 来创建、监控和删除 Kubernetes Pod 和节点。
AWS Batch 具有内置的扩展逻辑,可根据任务队列负载扩展Kubernetes节点,并在任务容量分配方面进行了优化。当任务队列为空时,将节点向下 AWS Batch 扩展到您设置的最小容量,默认情况下为零。 AWS Batch 管理这些节点的整个生命周期,并用标签和污点装饰节点。这样,其他Kubernetes工作负载就不会放在由管理的节点上 AWS Batch。唯一的例外是DaemonSets,它可以将 AWS Batch 节点作为目标,以提供正确执行任务所需的监控和其他功能。此外, AWS Batch 不会在集群中不受其管理的节点上运行作业,特别是 pod。这样,您就可以为集群上的其他应用程序使用单独的扩展逻辑和服务。
要向提交任务 AWS Batch,您可以直接与 AWS Batch API 进行交互。 AWS Batch 将任务转换为,podspecs然后创建请求,将容器放置 AWS Batch 在由 Amazon EKS 集群管理的节点上。您可以使用诸如 kubectl 之类的工具查看正在运行的容器组(pod)和节点。当 pod 完成执行后, AWS Batch 删除其创建的 pod 以保持较低的Kubernetes系统负载。
您可以先将有效的 Amazon EKS 集群连接到 AWS Batch。然后向其附加 AWS Batch 任务队列,并使用podspec等效属性注册 Amazon EKS 任务定义。最后,使用引用任务定义SubmitJob的 API 操作提交作业。有关更多信息,请参阅 亚马逊 EK AWS Batch S 入门。
AWS Batch 在亚马逊上,EKS 支持亚马逊 EC2 实例(On-Demand 和 Spot)作为计算资源。要将 Fargate 与一起使用 AWS Batch,请改用亚马逊 ECS 计算环境。有关更多信息,请参阅 Fargate 计算环境。