GCP 自动扩展器
ClearML GCP 自动扩展器应用程序可在 ClearML Pro 计划下使用。
GCP自动扩展应用程序根据用户定义的实例预算优化GCP虚拟机实例的使用:通过指定可用计算资源的类型和数量来定义您的预算。
每种资源类型都与一个ClearML 队列相关联,其状态决定了该资源类型实例的需求(即如果队列上有待处理的任务,则启动新实例)。
运行时,自动扩展器会定期轮询您的GCP集群。自动扩展器会根据指定的最大空闲时间自动删除空闲的虚拟机实例,或者在队列中没有足够的实例来执行待处理任务时启动新的虚拟机实例(直到达到定义的最大实例数)。您可以添加一个初始化脚本,该脚本将在每个虚拟机实例启动时执行。
有关自动扩展器如何工作的更多信息,请参阅自动扩展器概述。
自动扩展器实例配置
在配置新的GCP自动扩展器实例时,您可以填写所需的参数或重用之前启动实例的配置。
使用以下选项之一启动一个应用程序实例,配置与之前启动的实例相同:
- 克隆先前启动的应用程序实例将打开实例启动表单,其中预填充了原始实例的配置。
- 导入应用程序配置文件。您可以在查看其配置时,将先前启动的实例的配置导出为JSON文件。
在启动新的应用程序实例之前,可以编辑预填充的实例启动表单。
要配置一个新的应用程序实例,请点击Launch New
以打开应用程序的实例启动表单。
配置选项
- 导入配置 - 导入一个应用实例配置文件。这将用文件中的值填充实例启动表单,可以在启动应用实例之前进行修改。
- GCP 配置
- GCP 项目 ID - 用于启动虚拟机实例的项目
- GCP 区域 - 虚拟机实例将启动的 GCP 区域。参见 区域和可用区
- 使用完整子网路径 - 选择以指定完整子网路径(即引用来自不同项目的子网)
- GCP 子网完整路径 - 如果选择了
使用完整子网路径
,则可用。虚拟机实例将启动的 GCP 子网。这允许设置自定义子网资源路径,并允许设置从其他项目共享的子网。参见 GCP 文档.
- GCP 子网完整路径 - 如果选择了
- GCP 子网名称 - 如果未选择
使用完整子网路径
,则可用。虚拟机实例将启动的 GCP 子网。GCP 设置将为projects/{project-id}/regions/{region}/subnetworks/{subnetwork}
- GCP 凭证 - 自动扩展器可以访问您的 GCP 账户以启动/关闭虚拟机实例的凭证。参见 生成GCP凭证.
- Git 配置 - Git 凭据,用于在您的虚拟机实例上运行的 ClearML 代理访问您的仓库以检索其作业的代码
- Git 用户
- Git 密码 / 个人访问令牌
- 使用Docker模式 - 如果选择此项,排入自动缩放器的任务将由运行在Docker模式下的ClearML代理执行。
- 基础 Docker 镜像(可选)- 当选择
使用 docker 模式
时可用。ClearML 代理将运行的默认 Docker 镜像。提供一个存储在 Docker 仓库中的镜像,以便虚拟机实例可以自动获取它 - Compute Resources
- Resource Name - Assign a name to the resource type. This name will appear in the autoscaler dashboard
- GCP Machine Type - See list of 机器类型
- Run in CPU mode - Select to have the autoscaler utilize only CPU VM instances
- GPU Type - See list of 支持的GPU实例
- Use Preemptible Instance - Choose whether VM instances of this type will be preemptible
- Preemptible Provision Model - Select the provision model. For more information, see Spot VMs and 抢占式虚拟机
- Regular Instance Rollback - When selected, if a preemptible instance is unavailable for the time specified in the
Regular Instance Rollback Timeout
field, a regular instance will be spun up instead - Preemptible Instance Blackout Period - Time (in minutes) to attempt using regular instances instead in case acquiring a preemptible instance fails
- Max Number of Instances - Maximum number of concurrent running VM instances of this type allowed
- Monitored Queue - Queue associated with this VM instance type. The tasks enqueued to this queue will be executed on VM instances of this type
- Machine Image (optional) - The GCP machine image to launch
note用于自动缩放器的机器镜像必须包含docker运行时和virtualenv。
- Disc Size (in GB) (optional)
- Use the default GCP Service Account - If selected, the default service account will be used. To use a
different service account, clear this option and fill in the
Service Account Email
field - Service Account Scopes - Comma-separated scope aliases. For more information, see GCP 文档. Fully-qualified scope URIs are supported. If left empty, the autoscaler will use the default scopes.
- Metadata - GCP Metadata to be applied on this resource's instances. Input comma separated key=value pairs (e.g.
"Owner=Admin,Foo=Bar"
). - + Add Item - Define another resource type
- 全局元数据(可选)- 应用于所有实例的GCP元数据。输入逗号分隔的键=值对(例如
"Owner=Admin,Foo=Bar"
)。 - 自动扩展器实例名称 (可选) - 自动扩展器实例的名称。这将出现在实例列表中
- 最大空闲时间 (可选) - 虚拟机实例在自动扩展器将其关闭之前可以空闲的最大时间(以分钟为单位)
- Workers Prefix (可选) - 添加到工人名称的前缀,将他们与此自动扩展器关联
- 轮询间隔 (可选) - 以分钟为单位的时间段,用于轮询指定队列以获取新任务
- 应用任务所有者保险库配置 - 选择在执行任务时应用任务所有者的配置保险库中的值(适用于ClearML企业计划)
- 如果多个实例正在执行相同的任务,则发出警告 - 选择此项时,当多个实例正在运行相同的任务时,会在控制台打印警告。在大多数情况下,这表明存在问题。
- 排除 .bashrc 脚本 - 选择以跳过
.bashrc
脚本的执行 - 忽略保险库解析错误 - 如果未选择,自动扩展器在启动时加载保险库遇到错误时将中止。这仅适用于由自动扩展器本身加载的保险库,不适用于在云实例上加载的保险库或由自动扩展器运行的任务加载的保险库。有关更多信息,请参阅配置保险库说明(适用于ClearML企业计划)。
- Init Script(可选)- 在启动虚拟机实例后执行的bash脚本
- 额外的ClearML配置(可选)- 一个ClearML配置文件,供ClearML代理在执行实验时使用
- 使用服务账户运行 - 选择允许应用程序在服务账户身份下运行,而不是在您自己的身份下运行(适用于ClearML企业计划)
- 导出配置 - 将应用程序实例配置导出为JSON文件,稍后可以导入以创建具有相同配置的新实例
你可以利用配置保险库来为自动扩展器配置GCP凭证,格式如下:
auto_scaler.v1 {
gcp {
gcp_credentials: """
{
"type": "service_account",
...
}
"""
}
}
仪表盘
一旦启动自动缩放器,自动缩放器的仪表板将提供有关可用虚拟机实例及其状态的信息。
自动缩放仪表板显示:
- 空闲实例数量
- 队列及其关联的资源类型
- 当前运行的实例数量
- 控制台:包含所有打印到stdout和stderr的应用程序日志会显示在控制台日志中。日志显示自动缩放器关联队列的轮询结果,包括入队任务的数量,以及正在启动/关闭的VM实例的更新。
为了使自动缩放器控制台日志显示额外的调试信息,将活动应用实例的日志级别更改为DEBUG:
- 转到应用程序实例任务页面 > 配置 标签 > 用户属性 部分
- 将鼠标悬停在部分上 > 点击
Edit
> 点击+ADD PARAMETER
- 输入
log_level
作为键,DEBUG
作为新参数的值。
控制台的日志级别将在自动缩放器的下一次迭代中更新。
- 实例日志文件 - 点击访问应用实例的日志。这将带您到应用实例任务的ARTIFACTS标签页,该页面列出了应用实例的日志。在日志的
File Path
字段中,点击以下载完整的日志。
您可以将应用程序实例仪表板中的图表嵌入到ClearML 报告中。这些可视化内容会随着应用程序实例的更新而实时更新。企业计划和托管服务支持将资源嵌入到外部工具中(例如 Notion)。将鼠标悬停在图表上并点击以复制嵌入代码,然后导航到报告并粘贴嵌入代码。
生成GCP凭证
自动扩展应用程序使用您提供的凭据访问您的GCP账户。
您需要创建一个具有所需访问权限的服务账户。然后为该账户生成凭证密钥以配置自动扩展应用程序:
-
在您的GCP账户中,在您选择的项目中,转到APIs & Services > Credentials
-
点击+ 创建凭证并选择服务账户选项
-
在打开的创建服务账户窗口中,填写服务账户的详细信息
-
将
Service Account User
和Compute Admin
角色分配给您的服务账户 -
完成创建账户
-
在API & 服务 > 凭据页面中,在服务账户下,点击您刚刚创建的服务账户,并进入其密钥标签页
-
点击ADD KEY并创建一个JSON格式的密钥。复制JSON文件的内容。
-
转到GCP自动扩展器实例启动表单 > 打开 GCP配置 面板 > 在 GCP凭据 字段中点击 编辑。
将上一步中的JSON文件内容粘贴到GCP凭据弹出窗口中。