自定义标签配置

由于支持x86_64Arm平台、NPU的标卡和模组等多种场景的混合部署,所以需要给各个工作节点配置标签,便于集群调度组件在各种不同形态的工作节点之间进行调度。

用户可以通过配置标签的方式指定任务运行的节点。标签配置涉及Job(任务)、volcano-scheduler和Node(节点),且三处的标签需要进行匹配(即Job配置的标签能够在volcano-scheduler和Node中找到),他们的作用关系如自定义标签配置所示。
图1 自定义标签流程

自定义volcano-scheduler标签

在Volcano部署文件“volcano-v*.yaml”中,对如下“configurations”中“name”“selector”的部分进行配置,需要配置到“arguments”中。

...
data:
  volcano-scheduler.conf: |
    actions: "enqueue, allocate, backfill"
    tiers:
    - plugins:
      - name: volcano-npu_v5.0.RC1_linux-aarch64  # 其中v5.0.RC1为MindX DL的版本号,根据不同版本,该处编码不同。
    - plugins:
      - name: priority
      - name: gang
      - name: conformance
    - plugins:
      - name: drf
      - name: predicates
      - name: proportion
      - name: nodeorder
      - name: binpack
    configurations:
      - name: selector
        arguments: {"host-arch":"huawei-arm|huawei-x86",
        "accelerator":"huawei-Ascend910|nvidia-tesla-v100|nvidia-tesla-p40",
        "accelerator-type":"card|module|half"}
...
  • 配置方式为map格式,目前仅支持英文输入。若一个标签存在多个值的情况,请使用“|”进行合并。
  • 在NPU任务中ascend device plugin取值为“Ascend910”时,在“arguments”中"host-arch":"huawei-arm|huawei-x86"为默认配置,修改无效。若用户需要使用其他标签,请自行添加。
  • host-archhuawei-arm|huawei-x86,不配置或修改,都只对NPU任务生效。
  • accelerator-type:card、module和half为Atlas 训练系列产品使用的标签

自定义任务标签

用户根据需要在训练任务的yaml文件中添加自定义标签,完整的yaml文件请从集群调度组件 MindXDL-deploy仓库中“5.0.RC1”分支的“samples”中下载。其中NPU类型的任务必须包括:host-arch:huawei-arm或host-arch:huawei-x86的nodeSelector标签,其他类型不做限制。

yaml文件的相关配置如下。

...
 spec:
        containers:
        ...
        nodeSelector:
          accelerator: nvidia-tesla-v100
        volumes:
...

自定义节点标签

节点的标签需要在装有K8s的管理节点上操作。