昇腾社区首页
中文
注册

(可选)自定义标签配置

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

用户可以通过配置标签的方式指定任务运行的节点。标签配置涉及Job(任务)和Node(节点),且在Job配置的标签能够在volcano-scheduler和Node中找到。
图1 自定义标签流程
  • NPU类型的Job必须配置host-arch的nodeSelector标签,内容默认为huawei-arm或huawei-x86,修改无效。
  • 若Job配置了标签,则首先需要与“volcano-v{version}.yaml”中的volcano-scheduler配置的标签相匹配。若不匹配,则任务设置为pending状态,并给出原因。若匹配则进行下一步。
  • Job的标签在“volcano-v{version}.yaml”中的volcano-scheduler的标签列表中,volcano-scheduler需要选出配置有同样标签的Node。若不满足则Job设置为pending状态,并给出原因。若有则按照其他规则进行调度。

自定义任务标签

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

yaml文件的相关配置如下。

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

自定义节点标签

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

  • 创建节点标签
    kubectl label nodes {HostName} {label_key}={label_value}

    参数说明:

    • HostName:需要添加的主机名称。
    • label_keylabel_value需要与Job、volcano-scheduler中的配置相匹配。
    例如:
    kubectl label nodes ubuntu accelerator=nvidia-tesla-p40
  • 修改节点标签
    kubectl label nodes {HostName} {label_key}={label_value} --overwrite=true
    例如:
    kubectl label nodes ubuntu accelerator=vidia-tesla-p40 --overwrite=true
  • 删除节点标签
    kubectl label nodes {HostName} {label_key} -
    例如:
    kubectl label nodes ubuntu accelerator -