K8s Native Object Description

Service Labels

Table 1 Service labels used by cluster scheduling components

NameFunctionValueComponent
group-nameMarks the group name of the acjob corresponding to the Podmindxdl.gitee.comVolcano, Ascend Operator
job-nameMarks the acjob name corresponding to the PodStringAscend Operator
replica-indexMarks the Pod sequence number (to be deleted later)[0-{Pod Quantity-1}]Ascend Operator
replica-typeMarks the Pod type (to be deleted later)
  • master
  • chief
  • scheduler
  • worker
Ascend Operator
training.kubeflow.org/job-nameMarks the acjob name corresponding to the PodStringAscend Operator
training.kubeflow.org/operator-nameMarks the operator name that created the Podascendjob-controllerAscend Operator
training.kubeflow.org/replica-indexMarks the Pod sequence number[0-{Pod Quantity-1}]Ascend Operator
training.kubeflow.org/replica-typeMarks the Pod type
  • master
  • chief
  • scheduler
  • worker
Ascend Operator

Job Labels

Table 2 Job labels used by cluster scheduling components

Job LabelFunctionValueComponent
mind-cluster/scaling-rule: scaling-ruleMarks the ConfigMap name corresponding to the scaling rule.StringAscend Operator
mind-cluster/group-name: group0Marks the group name corresponding to the scaling rule.StringAscend Operator

Job Annotations

Table 3 Job annotations used by cluster scheduling components

Job AnnotationFunctionValueComponent
huawei.com/schedule.filter.faultCode

Configures the fault codes and time windows that need to be silenced for the configuration task.

  • Fault codes only support configuring fault codes for chip faults and UnifiedBus device faults. For details on supported fault codes, see the faultCode.json and SwitchFaultCode.json files.
  • Supports configuring multiple fault codes and time windows, separated by commas.

Value example: "8C1F8608:30, 80E01801", indicating that within a 30-second time window, the 8C1F8608 fault is silenced; within a 60-second time window, the 80E01801 fault is silenced.

If no time window is configured, the default is 60. The value range is 0 to 86400, in seconds.

ClusterD
huawei.com/schedule.filter.faultLevel

Configures the fault levels and time windows that need to be silenced for the configuration task.

  • Fault levels only support configuring levels for chip faults and UnifiedBus device faults. For details on supported fault levels, see Configuration Description.
  • Supports configuring multiple fault levels and time windows, separated by commas.
  • For MindIE Service, if this configuration item is absent in the YAML file, all RestartRequest-level faults are silenced for 60 seconds by default.
  • The priority of huawei.com/schedule.filter.faultCode is higher than that of huawei.com/schedule.filter.faultLevel.
  • For notification-type faults, after ClusterD silences such faults, Volcano may not actively reschedule the faulty Pod. The task can subscribe to ClusterD's fault subscription interface to handle received faults accordingly. If processing fails, the Pod must actively exit with an error.

Value example: "RestartRequest:30, RestartBusiness", indicating that within a 30-second time window, all RestartRequest-level faults are silenced; within a 60-second time window, all RestartBusiness-level faults are silenced.

If no time window is configured, the default is 60. The value range is 0 to 86400, in seconds.

ClusterD

Node Labels

Table 4 Node labels used by cluster scheduling components

Node LabelFunctionValueComponent
acceleratorIdentifies the processing chip of the node
  • huawei-npu
  • huawei-Ascend910
  • huawei-Ascend310
  • huawei-Ascend310P
Ascend Device Plugin
host-archIdentifies the CPU architecture of the node
  • huawei-x86
  • huawei-arm
Volcano
masterselectorIdentifies the management node of MindClusterdls-master-nodeVolcano, Ascend Operator, Resilience Controller, ClusterD
node.kubernetes.io/npu.chip.nameReports the specific type of the current chip
  • 310
  • 310P1
  • 310P2
  • 310P3
  • 310P4
  • {xxx}A
  • 910PremiumA
  • 910ProA
  • 910ProB
  • {xxx}Bx (x can be 1, 2, 3, or 4)
  • Ascend950PR
  • Ascend950DT

Ascend Device Plugin

[!NOTE] Description
In the following text, {xxx} represents the chip model number using the characters "910".
nodeDEnableSwitch for starting the NodeD nodeonVolcano, Resilience Controller
[!NOTE] Description
  • The nodeDEnable=on label enables the NodeD node status monitoring function, which is used to obtain node status Information and determine whether a node is Faulty.
  • A value of off or the absence of this parameter indicates that only node Information is reported, without determining whether the node is Faulty.
  • When using Containerized Support or Resource Monitoring, this label does not need to be configured; for other features, this label must be configured.
workerselectorIdentifies the compute node of MindClusterdls-worker-nodeAscend Device Plugin, NodeD, NPU Exporter
accelerator-typeIdentifies the Atlas server type
  • card
  • module
  • half
  • module-{xxx}b-8
  • module-{xxx}b-16
  • card-{xxx}b-2
  • card-{xxx}b-infer
  • module-a3-16
  • module-a3-16-super-pod
  • module-a3-8-super-pod
  • 350-Atlas-8
  • 350-Atlas-16
  • 350-Atlas-4p-8
  • 350-Atlas-4p-16
  • 850-Atlas-8p-8
  • 850-SuperPod-Atlas-8
  • 950-SuperPod-Atlas-8
Ascend Device Plugin, Volcano
servertypeDevice type
  • npu-{Number of Cores}
  • soc
  • Ascend910-{Number of Cores}
  • Ascend310P-{Number of Cores}
Volcano, Ascend Device Plugin
huawei.com/driver.versionHDK driver version numberThe HDK version number corresponding to the nodeAscend Device Plugin

huawei.com/Ascend910-Recover

huawei.com/npu-Recover

Fault recovery Identifier for Atlas training series productsFaulty Chip IDAscend Device Plugin

huawei.com/Ascend910-NetworkRecover

huawei.com/npu-NetworkRecover

Network fault recovery identifier for Atlas training series productsFaulty Chip IDAscend Device Plugin
infer-card-typeWritten by Ascend Device Plugin, indicates the node's inference card Type.card-300i-duoVolcano
mind-cluster/npu-chip-memoryOn-chip memorymind-cluster/npu-chip-memory=64GVolcano, Ascend Device Plugin
huawei.com/scheduler.chip1softsharedev.enableIndicates whether the node supports the soft partitioning virtualization function
  • true
  • false
Volcano, Ascend Device Plugin
[!NOTE] Description
  • The huawei.com/scheduler.chip1softsharedev.enable=true label indicates that the node supports the soft partitioning virtualization function.
  • The huawei.com/scheduler.chip1softsharedev.enable=false label indicates that the node does not support the soft partitioning virtualization function.
huawei.com/topotree.rackidIdentifies the rack ID of the nodeRack ID to which the node belongsVolcano
huawei.com/topotree.serveridIdentifies the index ID of the node within the super nodeIndex ID within the super node to which the node belongsVolcano
huawei.com/topotree.superpodidIdentifies the super node ID of the nodeSuper node ID to which the node belongsVolcano
huawei.com/topotree.groupidIdentifies the Pod group ID of the nodePod group ID to which the node belongsVolcano
huawei.com/topotreeIdentifies the network topology tree ID of the nodeNetwork topology tree ID to which the node belongsVolcano

Pod Labels

Table 5 Pod Labels used by the cluster scheduling components

NameFunctionValueComponent
ring-controller.atlasIdentify Atlas Pod
  • ascend-910
  • ascend-{xxx}b
  • ascend-npu
  • Ascend Device Plugin
    vnpu-dvppMark the DVPP set for the Pod
  • yes: This Pod uses DVPP.
  • no: This Pod does not use DVPP.
  • null: Default value. Does not care whether DVPP is used.
  • Volcano
    vnpu-levelMark the level of the selected virtualization instance template
  • low: Low configuration, default value.
  • high: Performance priority.
  • Volcano
    versionMark the version of the PodStringAscend Operator
    volcano.sh/job-nameMark the vcjob name corresponding to the PodStringVolcano
    volcano.sh/job-namespaceMark the vcjob namespace corresponding to the PodStringVolcano
    volcano.sh/queue-nameMark the queue name corresponding to the PodStringVolcano
    volcano.sh/task-specMark the job name corresponding to the PodStringVolcano
    fault-typeMark the Pod fault handling policy
    • SubHealth
    • Separate
    Volcano
    deploy-nameMark the deployment name corresponding to the PodStringAscend Operator
    group-nameMark the group name of the acjob corresponding to the Podmindxdl.gitee.comVolcano, Ascend Operator
    job-nameMark the acjob name corresponding to the PodStringAscend Operator
    replica-indexMark the Pod index (to be deleted later)[0-{Pod Quantity-1}]Ascend Operator
    replica-typeMark the Pod Type (to be deleted later)
    • master
    • chief
    • scheduler
    • worker
    Ascend Operator
    training.kubeflow.org/job-nameMark the acjob name corresponding to the PodStringAscend Operator
    training.kubeflow.org/job-roleMark the Pod TypemasterAscend Operator
    training.kubeflow.org/operator-nameMark the operator name that created the Podascendjob-controllerAscend Operator
    training.kubeflow.org/replica-indexMark the Pod index[0-{Pod Quantity-1}]Ascend Operator
    training.kubeflow.org/replica-typeMark the Pod type
    • master
    • chief
    • scheduler
    • worker
    Ascend Operator
    super-pod-affinityAffinity scheduling policy used by SuperPoD jobs
    • soft
    • hard
    Ascend Operator, Volcano

    Pod Annotations

    Table 6 Pod Annotations used by the cluster scheduling components

    NameFunctionValueComponent

    ascend.kubectl.kubernetes.io/ascend-910-configuration

    ascend.kubectl.kubernetes.io/ascend-npu-configuration

    Data source for Ascend Operator to generate hccl.jsonString mapAscend Device Plugin, Ascend Operator
    super_pod_idProvides SuperPoD ID information for Ascend OperatorNumberAscend Operator
    hccl/rankIndexBasis for retaining the original rank ID during resumable training[0,1000]Volcano, Ascend Operator
    distributed-jobMarks the training job type
    • true: The current job is a distributed job
    • false: The current job is a single-server job
    Volcano

    huawei.com/Ascend910

    huawei.com/npu

    Basis for Ascend Device Plugin to allocate chips to Pods. The specific value corresponds to davinciX under /dev/. For the Ascend950 generation, it is the NPU ID; for previous generations, it is the physical ID.StringVolcano, Ascend Device Plugin
    huawei.com/AscendRealRecord of the actual chips allocated by Ascend Device Plugin to the PodStringVolcano, Ascend Device Plugin
    huawei.com/npu-coreMarks the physical ID and slicing template of the NPU card used by the PodStringVolcano, Ascend Device Plugin
    huawei.com/kltDevRecord of chips allocated by kubelet to the PodStringAscend Device Plugin
    huawei.com/recover_policy_pathJob rescheduling policypod: Only supports Pod-level rescheduling, will not escalate to Job level (when using vcjob, this policy needs to be configured: policies: -event:PodFailed -action:RestartTask)Volcano
    huawei.com/schedule_minAvailableMinimum number of replicas required for the job to be scheduledIntegerVolcano
    predicate-timeBasis for the order in which Ascend Device Plugin allocates chips to PodsStringVolcano, Ascend Device Plugin
    isSharedTorMarks the switch attributes corresponding to the PodIntegerVolcano
    isHealthyMarks the switch status corresponding to the PodIntegerVolcano
    scheduling.k8s.io/group-nameMarks the podGroup name corresponding to the PodStringVolcano
    volcano.sh/job-nameMarks the vcjob name corresponding to the PodStringVolcano
    volcano.sh/job-versionMarks the vcjob version corresponding to the PodStringVolcano
    volcano.sh/queue-nameMarks the queue version corresponding to the PodStringVolcano
    volcano.sh/task-specMarks the job name corresponding to the PodStringVolcano
    volcano.sh/template-uidMarks the pod-template name corresponding to the PodStringVolcano
    sharedTorIpMarks the shared switch information used by the jobStringVolcano, ClusterD
    fault-job-deleteMarks the rank information of the jobStringVolcano
    mind-cluster/hardware-type=800I-A2-xxxx indicates the on-chip memory of the current node, for example, mind-cluster/hardware-type=800I-A2-64GStringVolcano
    super-pod-rankLogical SuperPoDe rank of the jobNumberAscend Operator, Volcano
    inHotSwitchFlowMarks that the current Pod (faulty Pod and backup Pod) is in a hot switching processtrueClusterD, Ascend Operator
    backupNewPodNameMarks the name of the backup Pod created for the current faulty PodCorresponding backup Pod nameClusterD, Ascend Operator
    backupSourcePodNameMarks the original Pod name corresponding to the current backup PodCorresponding original Pod nameAscend Operator
    needOperatorOpeMarks that the current Pod needs to be processed by Ascend Operator
    • create: Ascend Operator needs to create a backup Pod based on the current Pod
    • delete: Ascend Operator needs to delete the current Pod
    ClusterD, Ascend Operator
    needVolcanoOpeMarks that the current Pod needs to be processed by Volcanodelete: Volcano needs to delete the current PodClusterD, Volcano
    podTypeMarks that the current Pod is a backup PodbackupClusterD, Ascend Operator
    huawei.com/scheduler.softShareDev.aicoreQuotaMarks the percentage of AICore required by the current Pod.[1, 100]Volcano, Ascend Device Plugin
    huawei.com/scheduler.softShareDev.hbmQuotaMarks the amount of high-bandwidth memory required by the current Pod.

    [1, maxHBM]

    maxHBM is the HBM value in HBM-Usage(MB) queried using the npu-smi info command.

    Volcano, Ascend Device Plugin
    huawei.com/scheduler.softShareDev.policyMarks the policy of the soft partitioning job executed by the current Pod.
    • fixed-share
    • elastic
    • best-effort
    Volcano, Ascend Device Plugin
    huawei.com/affinity-configConfigures the affinity level for multi-level scheduling of the job.

    level1=x,level2=y,...

    Where x, y... are the sub-job sizes for the corresponding network levels.

    This field is used to configure the affinity level for multi-level scheduling of the job.

    It must be a concatenation of strings in the format leveli=ni, separated by commas. Here, i is the network level sequence number, and ni is the number of replicas for the sub-job at that network level. For example, for a job with a total of 8 replicas, "level1=2,level2=4" means that every 2 Pods in the job are assigned to nodes with the same level1 label, and every 4 Pods are assigned to nodes with the same level2 label.

    The network level configuration must meet the following requirements:

    • When the job has more than one level, the value of level n must be an integer multiple of n-1.
    • The total number of job replicas must be an integer multiple of all levels.
    • The job level configuration must start from level1 and be consecutive in ascending order.

    Volcano
    huawei.com/schedule_policySpecifies the scheduling policy.Currently supports the configurations in Table 3 huawei.com/schedule_policy Configuration Description.Volcano

    Node Annotations

    Table 7 Node annotations used by the cluster scheduling components

    NameFunctionValueComponent
    baseDeviceInfosDisplays basic chip information, such as IP, for use during Volcano scheduling.StringVolcano
    product-serial-numberNodeD obtains the node SN through the IPMI and writes it into the annotation for use when ClusterD receives a common fault.StringClusterD
    superPodIDIndicates the ID of the SuperPoD to which this node belongs.StringClusterD
    ResetInfoDisplays information about chips that failed automatic reset by the Ascend Device Plugin, such as the chip's physical ID, Card ID, etc.StringAscend Device Plugin

    The content format of ResetInfo is as follows.

    {
        "ThirdPartyResetDevs": [
            {
                "CardId": 0,
                "DeviceId": 0,
                "AssociatedCardId": 4,
                "PhyID": 0,
                "LogicID": 0
            }
        ],
        "ManualResetDevs": [
            {
                "CardId": 1,
                "DeviceId": 0,
                "AssociatedCardId": 5,
                "PhyID": 2,
                "LogicID": 2
            }
        ]
    }

    K8s ServiceAccount

    Table 8 List of ServiceAccounts created by components in K8s

    Account NameDescription
    volcano-controllersUser created in K8s by the controller component of open-source Volcano.
    volcano-schedulerUser created in K8s by the scheduler component of open-source Volcano.

    ascend-device-plugin-sa-npu

    ascend-device-plugin-sa-910

    ascend-device-plugin-sa-310p

    ascend-device-plugin-sa-310

    When starting the service using YAML, this user will be created in K8s. The Account Name used varies for different device models.
    ascend-operator-managerWhen starting the service using YAML, this user will be created in K8s, for example: ascend-operator-v{version}.yaml.
    resilience-controllerIt is recommended to start with security hardening. Use the YAML with without-token to start the service, create and use the resilience-controller account in K8s, and grant appropriate permissions to this account.
    nodedWhen starting the service using YAML, this user will be created in K8s, for example: noded-v{version}.yaml.
    clusterdWhen starting the service using YAML, this user will be created in K8s, for example: clusterd-v{version}.yaml.
    defaultUser automatically created in K8s when deploying MindCluster components or open-source Volcano.