昇腾社区首页
EN
注册

调度配置

Volcano组件支持K8s原生调度,可以使用nodeAffinity进行调度。以下示例使用强制的节点亲和性进行调度,更多关于nodeAffinity字段的说明请参见Kubernetes官方文档

  • Volcano Job的任务yaml中,需要添加如下加粗字段。
    apiVersion: batch.volcano.sh/v1alpha1  
    kind: Job                         
    metadata:
      name: mindx-test
      labels:
    ...
    spec:
    ...
      maxRetry: 3
      queue: default
      tasks:
      - name: "default-test"
        replicas: 1 
        template:
          metadata:
            labels:
    ...
          spec:
            affinity:      # 新增以下加粗字段
              nodeAffinity:                             # 节点亲和性配置
                requiredDuringSchedulingIgnoredDuringExecution: 
                  nodeSelectorTerms:                    # 节点选择列表
                    - matchExpressions:
                        - key: aaa               # 匹配标签的key为aaa的节点,并且value是yyy的节点
                          operator: In
                          values:
                            - yyy
                 podAntiAffinity:
                   requiredDuringSchedulingIgnoredDuringExecution:
    ...
              nodeSelector:
                host-arch: huawei-arm
    ...
  • Ascend Job的任务yaml中,需要添加如下加粗字段。
    apiVersion: mindxdl.gitee.com/v1
    kind: AscendJob
    metadata:
      name: test-2
    ...
    spec:
      schedulerName: volcano  
      runPolicy:
        schedulingPolicy:   
          minAvailable: 2
          queue: default
      successPolicy: AllWorkers
      replicaSpecs:
        Master:
          replicas: 1
          restartPolicy: Never
          template:
            metadata:
              labels:
    ...
            spec:
              affinity:   #  新增字段
                nodeAffinity:                           # 节点亲和性配置
                  requiredDuringSchedulingIgnoredDuringExecution: 
                    nodeSelectorTerms:                  # 节点选择列表
                      - matchExpressions:
                        - key: aaa            # 匹配标签的key为aaa的节点,并且value是yyy的节点
                          operator: In
                          values:
                            - yyy
              nodeSelector:
                host-arch: huawei-arm
    ...

    可通过执行kubectl get node --show-labels命令,查询节点的标签。在LABELS字段下,等号前的值为标签的key值,等号后的值为标签的value值,如aaa=yyy。