K8s原生对象说明
Service label
表 1 集群调度对Service的使用说明
| 名称 | 作用 | 取值 | 使用组件 |
|---|---|---|---|
| group-name | 标记Pod对应的acjob的group名称 | mindxdl.gitee.com | Volcano、Ascend Operator |
| job-name | 标记Pod对应的acjob名称 | 字符串 | Ascend Operator |
| replica-index | 标记Pod序号(后续将删除) | [0-{Pod数量-1}] | Ascend Operator |
| replica-type | 标记Pod类型(后续将删除) |
|
Ascend Operator |
| training.kubeflow.org/job-name | 标记Pod对应的acjob名称 | 字符串 | Ascend Operator |
| training.kubeflow.org/operator-name | 标记创建Pod的operator名称 | ascendjob-controller | Ascend Operator |
| training.kubeflow.org/replica-index | 标记Pod序号 | [0-{Pod数量-1}] | Ascend Operator |
| training.kubeflow.org/replica-type | 标记Pod类型 |
|
Ascend Operator |
Job label
表 2 集群调度对Job label使用说明
| Job label名称 | 作用 | 取值 | 使用组件 |
|---|---|---|---|
| mind-cluster/scaling-rule: scaling-rule | 标记扩缩容规则对应的ConfigMap名称。 | 字符串 | Ascend Operator |
| mind-cluster/group-name: group0 | 标记扩缩容规则中对应的group名称。 | 字符串 | Ascend Operator |
Job annotation
表 3 集群调度对Job annotation使用说明
| Job annotation名称 | 作用 | 取值 | 使用组件 |
|---|---|---|---|
| huawei.com/schedule.filter.faultCode | 配置任务需要静默的故障码和时间窗。
|
取值示例:"8C1F8608:30, 80E01801",表示在30秒时间窗内,静默8C1F8608故障;在60秒时间窗内,静默80E01801故障。 若未配置时间窗,则默认为60,取值范围为0~86400,单位为秒。 |
ClusterD |
| huawei.com/schedule.filter.faultLevel | 配置任务需要静默的故障级别和时间窗。
|
取值示例:"RestartRequest:30, RestartBusiness",表示在30秒时间窗内,静默所有RestartRequest级别的故障;在60秒时间窗内,静默所有RestartBusiness级别的故障。 若未配置时间窗,则默认为60,取值范围为0~86400,单位为秒。 |
ClusterD |
Node label
表 4 集群调度对Node label使用说明
| node label名称 | 作用 | 取值 | 使用组件 |
|---|---|---|---|
| accelerator | 标识节点的处理芯片 |
|
Ascend Device Plugin |
| host-arch | 标识节点的CPU架构 |
|
Volcano |
| masterselector | 标识MindCluster的管理节点 | dls-master-node | Volcano、Ascend Operator、Resilience Controller、ClusterD |
| node.kubernetes.io/npu.chip.name | 上报当前芯片的具体类型 |
|
Ascend Device Plugin [!NOTE] 说明 下文的{xxx}即取“910”字符作为芯片型号数值。 |
| nodeDEnable | NodeD节点启动的开关 | on | Volcano、Resilience Controller [!NOTE] 说明
|
| workerselector | 标识MindCluster的计算节点 | dls-worker-node | Ascend Device Plugin、NodeD、NPU Exporter |
| accelerator-type | 标识Atlas服务器类型 |
|
Ascend Device Plugin、Volcano |
| servertype | 设备类型 |
|
Volcano、Ascend Device Plugin |
huawei.com/Ascend910-Recover huawei.com/npu-Recover |
Atlas 训练系列产品故障恢复标识 | 故障芯片ID | Ascend Device Plugin |
huawei.com/Ascend910-NetworkRecover huawei.com/npu-NetworkRecover |
Atlas 训练系列产品网络故障恢复标识 | 故障芯片ID | Ascend Device Plugin |
| infer-card-type | 由Ascend Device Plugin写入,表明节点推理卡类型。 | card-300i-duo | Volcano |
| mind-cluster/npu-chip-memory | 芯片片上内存 | mind-cluster/npu-chip-memory=64G | Volcano、Ascend Device Plugin |
| huawei.com/scheduler.chip1softsharedev.enable | 表示节点是否支持软切分虚拟化功能 |
|
Volcano、Ascend Device Plugin [!NOTE] 说明
|
| huawei.com/topotree.rackid | 标识节点的机框ID | 节点所属机框ID | Volcano |
| huawei.com/topotree.superpodid | 标识节点的超节点ID | 节点所属超节点ID | Volcano |
| huawei.com/topotree.groupid | 标识节点的Pod组ID | 节点所属Pod组ID | Volcano |
| huawei.com/topotree | 标识节点的网络拓扑树ID | 节点所属网络拓扑树ID | Volcano |
Pod label
表 5 集群调度组件对Pod label使用说明
| 名称 | 作用 | 取值 | 使用组件 |
|---|---|---|---|
| ring-controller.atlas | 标识Atlas的Pod | Ascend Device Plugin | |
| vnpu-dvpp | 标记Pod设置的DVPP | Volcano | |
| vnpu-level | 标记选择虚拟化实例模板的等级 | Volcano | |
| version | 标记Pod的版本 | 字符串 | Ascend Operator |
| volcano.sh/job-name | 标记Pod对应vcjob名称 | 字符串 | Volcano |
| volcano.sh/job-namespace | 标记Pod对应vcjob命名空间 | 字符串 | Volcano |
| volcano.sh/queue-name | 标记Pod对应queue名称 | 字符串 | Volcano |
| volcano.sh/task-spec | 标记Pod对应task名称 | 字符串 | Volcano |
| fault-type | 标记Pod故障处理策略 |
|
Volcano |
| deploy-name | 标记Pod对应的deployment名称 | 字符串 | Ascend Operator |
| group-name | 标记Pod对应的acjob的group名称 | mindxdl.gitee.com | Volcano、Ascend Operator |
| job-name | 标记Pod对应的acjob名称 | 字符串 | Ascend Operator |
| replica-index | 标记Pod序号(后续将删除) | [0-{Pod数量-1}] | Ascend Operator |
| replica-type | 标记Pod类型(后续将删除) |
|
Ascend Operator |
| training.kubeflow.org/job-name | 标记Pod对应的acjob名称 | 字符串 | Ascend Operator |
| training.kubeflow.org/job-role | 标记Pod类型 | master | Ascend Operator |
| training.kubeflow.org/operator-name | 标记创建Pod的operator名称 | ascendjob-controller | Ascend Operator |
| training.kubeflow.org/replica-index | 标记Pod序号 | [0-{Pod数量-1}] | Ascend Operator |
| training.kubeflow.org/replica-type | 标记Pod类型 |
|
Ascend Operator |
| super-pod-affinity | 超节点任务使用的亲和性调度策略 |
|
Ascend Operator、Volcano |
Pod annotation
表 6 集群调度组件对Pod annotation使用说明
| 名称 | 作用 | 取值 | 使用组件 |
|---|---|---|---|
ascend.kubectl.kubernetes.io/ascend-910-configuration ascend.kubectl.kubernetes.io/ascend-npu-configuration |
Ascend Operator生成hccl.json的数据来源 | 字符串map | Ascend Device Plugin、Ascend Operator |
| super_pod_id | 为Ascend Operator提供超节点ID信息 | 数字 | Ascend Operator |
| hccl/rankIndex | 断点续训中保持原rankId的依据 | [0,1000] | Volcano、Ascend Operator |
| distributed-job | 标记训练任务类型 |
|
Volcano |
huawei.com/Ascend910 huawei.com/npu |
Ascend Device Plugin为Pod分配芯片的依据 | 字符串 | Volcano、Ascend Device Plugin |
| huawei.com/AscendReal | Ascend Device Plugin为Pod实际分配芯片的记录 | 字符串 | Volcano、Ascend Device Plugin |
| huawei.com/npu-core | 标记Pod使用的npu卡物理ID及切分模板 | 字符串 | Volcano、Ascend Device Plugin |
| huawei.com/kltDev | kubelet为Pod分配芯片的记录 | 字符串 | Ascend Device Plugin |
| huawei.com/recover_policy_path | 任务重调度策略 | pod:只支持Pod级重调度,不升级为Job级别(当使用vcjob时,需要配置该策略:policies: -event:PodFailed -action:RestartTask) | Volcano |
| huawei.com/schedule_minAvailable | 任务能够调度的最小副本数 | 整数 | Volcano |
| predicate-time | Ascend Device Plugin为Pod分配芯片的顺序依据 | 字符串 | Volcano、Ascend Device Plugin |
| isSharedTor | 标记Pod对应的交换机属性 | 整数 | Volcano |
| isHealthy | 标记Pod对应的交换机状态 | 整数 | Volcano |
| scheduling.k8s.io/group-name | 标记Pod对应podGroup名称 | 字符串 | Volcano |
| volcano.sh/job-name | 标记Pod对应的vcjob名称 | 字符串 | Volcano |
| volcano.sh/job-version | 标记Pod对应的vcjob版本 | 字符串 | Volcano |
| volcano.sh/queue-name | 标记Pod对应的queue版本 | 字符串 | Volcano |
| volcano.sh/task-spec | 标记Pod对应task名称 | 字符串 | Volcano |
| volcano.sh/template-uid | 标记Pod对应pod-template名称 | 字符串 | Volcano |
| sharedTorIp | 标记任务使用的共享交换机信息 | 字符串 | Volcano、ClusterD |
| fault-job-delete | 标记job的rank信息 | 字符串 | Volcano |
| mind-cluster/hardware-type=800I-A2-xx | xx表示当前节点的片上内存,例如mind-cluster/hardware-type=800I-A2-64G | 字符串 | Volcano |
| super-pod-rank | 任务的逻辑超节点rank | 数字 | Ascend Operator、Volcano |
| inHotSwitchFlow | 标记当前Pod(故障Pod和备份Pod)处于亚健康热切流程中 | true | ClusterD、Ascend Operator |
| backupNewPodName | 标记当前故障Pod拉起的备份Pod名称 | 对应的备份Pod名称 | ClusterD、Ascend Operator |
| backupSourcePodName | 标记当前备份Pod对应的原Pod名称 | 对应的原Pod名称 | Ascend Operator |
| needOperatorOpe | 标记当前Pod需要Ascend Operator进行处理 |
|
ClusterD、Ascend Operator |
| needVolcanoOpe | 标记当前Pod需要Volcano进行处理 | delete:需要Volcano删除当前Pod | ClusterD、Volcano |
| podType | 标记当前Pod是备份Pod | backup | ClusterD、Ascend Operator |
| huawei.com/scheduler.softShareDev.aicoreQuota | 标记当前Pod需要的AICore百分比。 | [1, 100] | Volcano、Ascend Device Plugin |
| huawei.com/scheduler.softShareDev.hbmQuota | 标记当前Pod需要的高带宽内存量。 | [1, maxHBM] maxHBM为通过npu-smi info命令查询出的HBM-Usage(MB)中HBM的值。 |
Volcano、Ascend Device Plugin |
| huawei.com/scheduler.softShareDev.policy | 标记当前Pod执行的软切分任务的策略。 |
|
Volcano、Ascend Device Plugin |
| huawei.com/affinity-config | 配置任务的多级调度的亲和性层级。 | level1=x,level2=y,... 其中x,y...为对应的网络层级子任务大小。 该字段用于配置任务的多级调度的亲和性层级。 要求满足格式为leveli=ni样式的字符串的拼接,中间使用英文逗号分隔。其中,i为网络层级序号,ni为该网络层级子任务的副本数量。例如,对于总副本数量为8的任务“level1=2,level2=4”,表示任务Pod中每2个Pod分配到有相同level1标签的节点上,每4个Pod分配到有相同level2标签的节点上。 网络层级配置需要满足以下要求:
|
Volcano |
| huawei.com/schedule_policy | 指定调度策略。 | 目前支持表3 huawei.com/schedule_policy配置说明中的配置。 | Volcano |
Node annotation
表 7 集群调度组件对Node annotation使用说明
| 名称 | 作用 | 取值 | 使用组件 |
|---|---|---|---|
| baseDeviceInfos | 展示芯片的基础信息,例如IP,供Volcano调度时使用 | 字符串 | Volcano |
| product-serial-number | NodeD通过IPMI接口获取节点SN号并写入annotation,供ClusterD接收公共故障时使用。 | 字符串 | ClusterD |
| superPodID | 表示该节点所属的超节点的ID。 | 字符串 | ClusterD |
| ResetInfo | 展示Ascend Device Plugin自动复位失败的芯片信息,如芯片的物理ID、Card ID等。 | 字符串 | Ascend Device Plugin |
ResetInfo的内容格式如下所示。
{
"ThirdPartyResetDevs": [
{
"CardId": 0,
"DeviceId": 0,
"AssociatedCardId": 4,
"PhyID": 0,
"LogicID": 0
}
],
"ManualResetDevs": [
{
"CardId": 1,
"DeviceId": 0,
"AssociatedCardId": 5,
"PhyID": 2,
"LogicID": 2
}
]
}
K8s的ServiceAccount
表 8 组件在K8s中创建的ServiceAccount列表
| 账号名 | 说明 |
|---|---|
| volcano-controllers | 开源Volcano的controller组件在K8s中创建的用户。 |
| volcano-scheduler | 开源Volcano的scheduler组件在K8s中创建的用户。 |
ascend-device-plugin-sa-npu ascend-device-plugin-sa-910 ascend-device-plugin-sa-310p ascend-device-plugin-sa-310 |
使用YAML启动服务,将会在K8s中创建该用户,不同型号的设备使用的账号名不同。 |
| ascend-operator-manager | 使用YAML启动服务,将会在K8s中创建该用户,如:ascend-operator-v{version}.yaml。 |
| resilience-controller | 建议安全加固启动,使用带without-token的YAML启动服务,在K8s中创建并使用resilience-controller账号,同时为该账号授予适当权限。 |
| noded | 使用YAML启动服务,将会在K8s中创建该用户,如:noded-v{version}.yaml。 |
| clusterd | 使用YAML启动服务,将会在K8s中创建该用户,如:clusterd-v{version}.yaml。 |
| default | MindCluster组件或开源Volcano部署时会在K8s中自动创建的用户。 |