管理车队
请按照以下步骤,通过 CLI 或控制台运行 Code Engine 车队。
准备工作
要成功运行车队,请确保您已按照《 准备运行车队 》中的步骤进行了操作。 您还可以选择使用 Code Engine 来 构建镜像,并在创建车队时引用该链接。
使用控制台运行舰队
请按照以下步骤在 Code Engine 控制台中管理车队。
- 打开 Code Engine 控制台。
- 单击开始创建。
- 从可用项目列表中选择一个项目。 你也可以 创建一个新的。 您必须有一个选定的项目才能运行车队。
- 选择创建车队的选项。
- 请为车队指定一个名称。 确保项目中所有车队的名称都是唯一的。
- 为舰队指定一个容器映像,例如
icr.io/codeengine/helloworld。 如果您有自己的源代码,并希望将其转换为容器镜像,请参阅 “规划构建”。 有关本示例中使用的代码的更多信息,请参阅helloworld。 - 按照提示配置机群。 有关缩放参数重要性的详细信息,请参阅 “配置机队缩放”。
- 在“任务”部分,请指定是否为车队添加初始任务。 更多信息,请参阅 任务规范。
- 在“资源和缩放”部分,配置实例资源并指定实例的缩放方式。
- 在“网络布局”部分,单击“选择子网池”。
- 创建一个新的子网池,以指定该机群工人的网络位置。 更多信息,请参阅 Code Engine 中的 "使用子网池连接 "。
- 或选择一个或多个现有子网池,指定该机群工人的网络位置。
- 点击 “应用” 以确认您的选择。
- 在“环境变量”和 “卷挂载”部分,添加运行代码可使用的可选键值对、配置映射或附加文件。
- 单击创建。
任务规格
您可以创建一个包含或不包含初始任务的车队,并随时添加任务。
在控制台中指定任务
若要创建一个不包含初始任务的车队,请参阅 《 使用控制台创建不包含初始任务的车队 》。 若要在创建后添加任务,请参阅 《 使用控制台向车队添加任务 》。
您可以通过以下任一方式指定任务:
- 任务数量:选择“任务数量”,并指定任意正整数。
- 任务索引:要指定一组任务,可以指定一组任务索引,其中包含以逗号分隔的范围列表和正整数,例如
2-5,7-8,10。 选择“任务索引”,并输入范围。 - 来自文件的任务:若要让不同的任务使用不同的命令或参数运行,您可以创建一个任务规范文件来覆盖镜像定义。 可选的
idx字段可用于指定自定义任务索引。 该文件必须采用 JSONL 格式。 选择“来自文件的任务”。 请上传本地文件,或指定位于 IBM Cloud Object Storage 中的文件路径。 请参阅以下示例,了解可以添加到任务规范文件中的行。{ "cmds": ["my", "multipart", "command"], "args": ["arg1", "arg2"] } { "cmds": ["other", "cmd"], "args": ["arg"], "idx": "foo" } { "args": ["argA", "argB", "argC"], "idx": "bar" } { "cmds": ["just", "another", "command"], "idx": "1234" } - 来自 IBM Cloud Object Storage 的任务:根据持久化数据存储( Object Storage 存储桶)中的对象指定任务。 每个对象都会生成一个任务。 选择“来自 Cloud Object Storage”,然后创建或选择一个持久化数据存储。 可选地,指定一个子路径。
批次名称(可选):为通过此操作添加的所有任务指定一个批次名称。 批处理名称用于标识和分组相关任务。 批处理名称无需具有唯一性,因此在重试失败的任务时,您可以重复使用原始的批处理名称。 例如,批次名称中可以包含日期或客户名称。
在命令行界面(CLI)中指定任务
若要创建一个不包含初始任务的车队,请参阅 《 使用 CLI 创建不包含初始任务的车队 》。 若要在创建后添加任务,请参阅“使用 CLI 将任务添加到现有车队”。 要创建一个带有初始任务的车队,请参阅 《 使用 CLI 创建带有初始任务的车队 》。
您可以通过以下任一方式指定任务。
- 任务数量:请指定任意正整数。 使用
--tasks选项来指定要运行的任务数量。 若要创建一个没有任务的车队,请省略--tasks选项。 - 任务索引:要指定一组任务,可以指定一个任务索引,其中包含以逗号分隔的范围列表和正整数,例如
2-5,7-8,10。 请使用--task-indexes选项。 - 来自文件的任务:若要让不同的任务使用不同的命令或参数运行,您可以创建一个任务规范文件来覆盖镜像定义。 可选的
idx字段可用于指定自定义任务索引。 该文件必须采用 JSONL 格式。 使用--tasks-from-local-file或--tasks-from-cos-object选项指定文件。 请参阅以下示例,了解可以添加到任务规范文件中的行。{ "cmds": ["my", "multipart", "command"], "args": ["arg1", "arg2"] } { "cmds": ["other", "cmd"], "args": ["arg"], "idx": "foo" } { "args": ["argA", "argB", "argC"], "idx": "bar" } { "cmds": ["just", "another", "command"], "idx": "1234" } - 来自 IBM Cloud Object Storage 的任务:根据持久化数据存储( Object Storage 存储桶)中的对象指定任务。 每个对象都会生成一个任务。 使用
--tasks-from-cos-bucket选项来指定一个 Object Storage 存储桶以及可选的子路径。
使用控制台创建不包含初始任务的车队
您可以不指定任何任务就创建一支车队。 如果 “最小容器槽位”或 “备用容器槽位”不为零,则会立即为工作节点进行配置。 否则,在添加第一个任务之前,不会创建任何工作者。
当舰队作为共享的、长期存在的资源,从多个来源接收任务或按计划接收任务时,请采用此方法。
若要创建一个没有初始任务的车队,请按照 《 使用控制台运行车队 》中的步骤操作。 在第 8 步中,将 “指定初始任务”设置为 “否”。
复制舰队以创建新舰队
您可以使用 Code Engine 控制台,通过复制现有车队的配置来创建新车队。 “创建副本”功能会将源集群的所有配置设置(包括容器镜像引用、资源分配、环境变量和扩展设置)复制到一个新的集群中,随后您可以对该集群进行独立自定义。 任务不会被复制。
新机队作为独立的工作负载运行。 源舰队不会受到新舰队任何变化的影响,反之亦然。
开始之前,请确保您的项目中已创建了一个现有的车队。
- 找到 “Code Engine”项目页面。
- 点击项目名称即可打开“概览”页面。
- 点击 “车队”以打开您的车队列表。
- 请通过以下任一方式打开 “创建副本”选项:
- 点击您要复制的舰队名称,以打开该舰队的页面。 然后点击页面右上角的 “操作”菜单,选择 “创建副本”。
- 在舰队列表中,点击要复制的舰队的行操作图标(⋮),然后选择 “创建副本”。
- 在“创建车队”页面上,源车队的配置已预先填入。 请为新车队输入一个唯一的名称。 请使用项目中唯一的名称。
- 检查新集群的任何配置设置(例如容器镜像、资源分配、环境变量或扩展设置),并可根据需要进行修改。
- 点击 “创建”以创建新的车队。
使用控制台向车队添加任务
您可以随时通过 “添加任务”按钮向车队添加任务——无论该车队处于 “待处理”、“运行中”还是 “待命” 状态。
与此同时,Code Engine 会异步创建任务记录,并在需要时分配额外的工作进程。
请按照以下步骤在 Code Engine 控制台中向现有车队添加任务。
- 找到 “Code Engine”项目页面。
- 点击项目名称即可打开“概览”页面。
- 点击 “车队”以打开您的车队列表。 点击您的车队名称,即可打开详情页面。
- 点击“添加任务”。
- 指定要添加到车队中的一组任务。 另请参阅 “任务说明”。
- 可选:添加一个有意义的批处理名称。
- 单击添加。
使用 CLI 创建不包含初始任务的车队
使用以下示例命令运行一个不包含初始任务的车队。 该命令允许其他选项。 有关所有可用命令选项的完整列表,请参阅 CLI 参考文档。
ibmcloud ce fleet run --name my-fleet --image icr.io/codeengine/helloworld --subnetpool-name my-pool --tasks-state-store mytaskstore
--name- 资源组的名称。 在同一项目的所有车队中,该值必须是唯一的。 如果没有指定舰队名称,则会随机生成一个。
--image- 用于处理任务的容器镜像的引用。 此字段为必填项。
--subnetpool-name或--subnetpool-id- 用于机群网络部署的子网池名称。
- 用于机群网络部署的子网池标识。
您必须指定 --subnetpool-name 或 --subnetpool-id。
--tasks-state-store- 指定用于存储机群任务状态的持久数据存储。 此字段为必填项。
示例输出:
Successfully created fleet with name 'my-fleet' and ID '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'
Run 'ibmcloud ce fleet get --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to check the fleet status.
Run 'ibmcloud ce fleet worker list --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to retrieve a list of provisioned workers.
OK
使用 CLI 将任务添加到现有车队中
请使用以下示例命令将任务添加到现有机队中。 该命令允许其他选项。 有关所有可用命令选项的完整列表,请参阅 CLI 参考文档。
或者,您可以使用 ibmcloud ce fleet task create 命令。
示例
ibmcloud ce fleet task add --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e --tasks 1 --batch-name transactions-2026-09-04
示例输出
Successfully added tasks to fleet with name 'fleet-0123456789' and ID '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'
Run 'ibmcloud ce fleet get --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to check the fleet status.
Run 'ibmcloud ce fleet worker list --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to retrieve a list of provisioned workers.
Run 'ibmcloud ce fleet task list --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to retrieve a list of tasks.
OK
--fleet-id- 任务所属机群的 UUID。 此字段为必填项。
--tasks- 指定要由机群处理的任务数量。 此字段为必填项。
--batch-name- 用于当前调用中添加的所有任务的批处理名称。 它可用于识别和分组相关任务。 批处理名称无需具有唯一性,因此在重试失败的任务时,您可以重复使用原始的批处理名称。 例如,批次名称中可以包含日期或客户名称。
- 此值是可选的。 如果未指定,则使用批处理名称“
default”。
使用 CLI 创建包含初始任务的车队
使用以下示例命令运行包含初始任务的舰队。 该命令允许其他选项。 有关所有可用命令选项的完整列表,请参阅 CLI 参考文档。
当所有可用任务处理完毕后,机队将进入待机状态。 不再需要用于提供最低容器槽位的工人将逐步减少,直到添加新任务为止。
ibmcloud ce fleet run --name my-fleet --image icr.io/codeengine/helloworld --subnetpool-name my-pool --tasks-state-store mytaskstore --tasks 1
--name- 资源组的名称。 在同一项目的所有车队中,该值必须是唯一的。 如果没有指定舰队名称,则会随机生成一个。
--image- 用于处理任务的容器镜像的引用。 此字段为必填项。
--subnetpool-name或--subnetpool-id- 用于机群网络部署的子网池名称。
- 用于机群网络部署的子网池标识。
您必须指定 --subnetpool-name 或 --subnetpool-id。
--tasks-state-store- 指定用于存储机群任务状态的持久数据存储。 此字段为必填项。
--tasks- 要运行的任务数。
示例输出:
Successfully created fleet with name 'my-fleet' and ID '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'
Run 'ibmcloud ce fleet get --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to check the fleet status.
Run 'ibmcloud ce fleet worker list --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to retrieve a list of provisioned workers.
Run 'ibmcloud ce fleet task list --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to retrieve a list of tasks.
OK