Skip to main content

云自动扩展


使用 ClearML Agent队列,您可以轻松地在更强大的机器上远程运行您的代码,包括云实例。

随着工作量的增加,手动启动新的虚拟机并在其上设置ClearML代理可能会成为一项重复性任务,更不用说避免为未使用的运行机器付费,这可能会变得昂贵。这就是自动扩展发挥作用的地方。

ClearML 提供了以下选项来自动化您的资源扩展,同时优化机器使用:

  • ClearML 自动扩展应用程序 - 使用这些应用程序来定义您的计算资源预算,并让应用程序根据需要自动管理您的资源消耗——无需编写代码!
  • Kubernetes 集成 - 通过 Kubernetes 部署代理,Kubernetes 负责资源管理和扩展

自动扩展应用程序

ClearML 提供以下 GUI 自动扩展应用程序:

自动扩展器根据您设置的预算自动启动或关闭云实例,因此您只需为实际使用机器的时间付费。

AWSGCP 自动扩展应用程序将代表您管理云账户中的实例。在启动应用程序实例时,您需要提供云服务凭证,以便自动扩展程序可以访问您的账户。

ClearML 自动扩展应用程序如何工作

自动扩展器图表

上图展示了通过自动扩展应用程序执行任务的典型流程:

  1. Create a queue 将自动扩展器附加到队列
  2. 设置一个自动扩展应用实例:将其分配给一个队列并定义计算资源预算(有关进一步的设置详情,请参阅特定的自动扩展页面)
  3. 启动自动扩展应用程序实例
  4. 将任务加入自动缩放器被分配到的队列
  5. 附加到队列的自动扩展器启动并准备一个新的计算资源来执行排队的任务
  6. 排队额外任务:如果没有足够的机器来执行任务,自动扩展器会启动额外的机器来执行任务(直到达到预算中指定的最大数量)
  7. 如果一台机器因为没有任务可执行而变得空闲,自动扩展器会自动将其关闭

利用多种计算资源类型

您可以通过自动扩展器使用多个计算资源,其中每个计算资源都与不同的队列相关联。当队列检测到任务时,自动扩展器会启动适当的资源来执行任务。

自动扩展器图表

上图展示了一个示例,其中一个自动扩展应用程序实例附加到两个队列。每个队列与不同的资源相关联,CPU和GPU,每个队列有两个排队的任务。为了执行这些任务,自动扩展器启动了四台机器,两台CPU机器用于执行CPU队列中的任务,两台GPU机器用于执行GPU队列中的任务。

任务执行配置

Docker

每个云实例拉取的任务都将在docker容器内运行。在设置自动扩展应用程序实例时,您可以指定一个默认容器来运行任务。如果任务配置了自己的容器,它将覆盖自动扩展器的默认docker镜像(参见基础Docker镜像)。

Git 配置

如果你的代码保存在私有仓库中,你可以添加你的Git凭证,这样运行在你的云实例上的ClearML代理将能够从你的仓库中检索代码。

云存储访问

如果您的任务需要访问存储在云存储中的数据,您可以提供您的云存储凭证,这样执行的任务将能够访问您的存储服务。

附加配置

转到特定应用的文档页面以查看所有配置选项:

Kubernetes

您可以通过Helm chart安装clearml-agent

Clearml Agent 部署设置为服务一个或多个队列。当任务被添加到队列时,代理会拉取任务并创建一个 pod 来执行任务。Kubernetes 处理资源管理。您的任务 pod 将保持挂起状态,直到有足够的资源可用。

您可以设置Kubernetes的集群自动扩展器与您的云提供商一起工作,它会根据需要自动调整Kubernetes集群的大小;当没有足够的节点来执行pod时增加节点数量,并移除未充分利用的节点。有关特定云提供商的详细信息,请参见charts

Enterprise features

ClearML 企业版计划支持 K8S 服务多个 ClearML 队列,并为每个队列提供 pod 模板,用于描述每个 pod 使用的资源。请参阅 ClearML Helm Charts