启动Ascend Device Plugin

约束限制

操作步骤

  1. 以root用户登录各计算节点,并执行以下命令查看镜像和版本号是否正确。

    docker images | grep k8sdeviceplugin

    示例如下:

    root@ubuntu:~# docker images|grep k8sdeviceplugin 
    ascend-k8sdeviceplugin               v5.0.RC1              29eec79eb693        About an hour ago   105MB
    • 是,执行2
    • 否,请参见制作镜像,完成镜像制作和分发。

  2. 将软件包中的yaml文件拷贝到K8s管理节点上。请注意此处需使用适配具体处理器型号的yaml文件,并且为了避免自动识别Ascend Docker Runtime功能出现异常,请勿修改yaml文件中DaemonSet.metadata.name字段,详见下表。

    表1 Ascend Device Plugin的yaml文件列表

    yaml文件列表

    说明

    device-plugin-310-v{version}.yaml

    Atlas 200/300/500 推理产品上不使用Volcano的配置文件。

    device-plugin-310P-v{version}.yaml

    Atlas 推理系列产品不使用Volcano的配置文件。

    device-plugin-910-v{version}.yaml

    Atlas 训练系列产品上不使用Volcano的配置文件。

    device-plugin-310P-1usoc-v{version}.yaml

    Atlas 200I SoC A1 核心板上不使用Volcano的配置文件。

    device-plugin-volcano-v{version}.yaml

    使用Volcano的配置文件。

    device-plugin-310-volcano-v{version}.yaml

    Atlas 200/300/500 推理产品上使用Volcano的配置文件。

    device-plugin-310P-volcano-v{version}.yaml

    Atlas 推理系列产品上使用Volcano的配置文件。

    device-plugin-310P-1usoc-volcano-v{version}.yaml

    Atlas 200I SoC A1 核心板上使用Volcano的配置文件。

  3. (可选)如不修改组件启动参数,可跳过本步骤。否则,根据实际情况修改Ascend Device Plugin的启动参数。启动参数请参见表2,可执行./device-plugin -h查看参数说明。

    • Atlas 200I SoC A1 核心板节点上,修改启动脚本“run_for_310P_1usoc.sh”中Ascend Device Plugin的启动参数。修改完后需在所有Atlas 200I SoC A1 核心板节点上重新制作镜像,或者将本节点镜像重新制作后分发到其余所有Atlas 200I Soc A1 核心板节点。
    • 其他类型节点,修改对应启动yaml文件中Ascend Device Plugin的启动参数。

  4. 在K8s管理点上执行以下命令,启动对应服务。

    • K8s集群中存在使用Atlas 200/300/500 推理产品的节点(Ascend Device Plugin独立工作,不协同Volcano使用)。
      kubectl apply -f device-plugin-310-v{version}.yaml
    • K8s集群中存在使用Atlas 推理系列产品的节点(Ascend Device Plugin独立工作,不协同Volcano使用)。
      kubectl apply -f device-plugin-310P-v{version}.yaml
    • K8s集群中存在使用Atlas 训练系列产品的节点(Ascend Device Plugin独立工作,不协同Volcano和HCCL-Controller使用)。
      kubectl apply -f device-plugin-910-v{version}.yaml
    • K8s集群中存在使用Atlas 200/300/500 推理产品
    • 的节点(协同Volcano使用)。
      kubectl apply -f device-plugin-310-volcano-v{version}.yaml
    • K8s集群中存在使用昇腾Atlas 推理系列产品的节点(协同Volcano使用)。
      kubectl apply -f device-plugin-310P-volcano-v{version}.yaml
    • K8s集群中存在使用Atlas 训练系列产品的节点(协同Volcano和HCCL-Controller使用)。
      kubectl apply -f device-plugin-volcano-v{version}.yaml
    • K8s集群中存在使用Atlas 200I SoC A1 核心板的节点(协同Volcano使用)。
      kubectl apply -f device-plugin-310P-1usoc-volcano-v{version}.yaml
    • K8s集群中存在使用Atlas 200I SoC A1 核心板的节点(Ascend Device Plugin独立工作,不协同Volcano使用)。
      kubectl apply -f device-plugin-310P-1usoc-v{version}.yaml

    如果K8s集群使用了多种类型的昇腾AI处理器,请分别执行对应命令。

    启动示例如下,出现Running表示组件启动成功:

    root@ubuntu:/home/ascend-device-plugin# kubectl apply -f device-plugin-volcano-v5.0.RC1.yaml
    serviceaccount/ascend-device-plugin-sa created
    clusterrole.rbac.authorization.K8s.io/pods-node-ascend-device-plugin-role created
    clusterrolebinding.rbac.authorization.K8s.io/pods-node-ascend-device-plugin-rolebinding created
    daemonset.apps/ascend-device-plugin-daemonset created
    root@ubuntu:/home/ascend-device-plugin# kubectl get pod -n kube-system
    NAME                                       READY   STATUS    RESTARTS   AGE
    ...
    ascend-device-plugin-daemonset-d5ctz       1/1     Running   0          11s
    ...

参数说明

表2 Ascend Device Plugin启动参数

参数

类型

默认值

说明

-mode

string

指定Ascend Device Plugin运行模式,不指定该参数会根据NPU芯片类型自动指定。自动获取运行模式时,如果没查询到以下模式中的任意一种,则插件启动失败。

  • ascend310:以Atlas 200/300/500 推理产品的模式运行。
  • ascend310P:以Atlas 推理系列产品的模式运行。
  • ascend910:以Atlas 训练系列产品的模式运行。
说明:

MindX 5.0.RC1只支持自动获取运行模式,不接受指定,如果获取失败,则插件启动失败。

-fdFlag

bool

false

边缘场景标志,是否使用FusionDirector系统来管理设备。

-edgeLogFile

string

/var/alog/AtlasEdge_log/devicePlugin.log

边缘场景日志文件。fdFlag设置为true时生效。

说明:

单个日志文件超过20 MB时会触发自动转储功能,文件大小上限不支持修改。

-useAscendDocker

bool

true

默认为true,容器引擎是否使用Ascend Docker Runtime。开启K8s的CPU绑核功能时,需要卸载Ascend Docker Runtime并重启容器引擎。

说明:

MindX 5.0.RC1只支持自动获取运行模式,不接受指定。

-use310PMixedInsert

bool

false

是否使用Atlas 推理系列产品混插模式。

说明:
  • 仅支持服务器混插Atlas 300I Pro 推理卡Atlas 300V 视频解析卡Atlas 300V Pro 视频解析卡
  • 服务器混插模式下不支持Volcano调度模式。
  • 服务器混插模式不支持虚拟化实例。
  • 服务器混插模式不支持故障重调度场景。
  • 服务器混插模式不支持Ascend Docker Runtime。
  • 非混插模式Atlas 推理系列产品上报给K8s资源名称不变。
    • 非混插模式上报的资源名称格式为huawei.com/Ascend310P。
    • 混插模式上报的资源名称格式为:huawei.com/Ascend310P-V、huawei.com/Ascend310P-VPro和huawei.com/Ascend310P-IPro。

-volcanoType

bool

false

是否使用Volcano进行调度。

-presetVirtualDevice

bool

true

静态虚拟化实例功能开关,目前支持Atlas 训练系列产品

Atlas 推理系列产品且值只能为true。

-version

bool

false

查看当前device-plugin的版本号。

-listWatchPeriod

int

5

设置健康状态检查周期,取值范围为[3,60],单位为秒。

-autoStowing

bool

true

是否自动纳管已修复设备,volcanoType为true时生效。

  • true表示会自动纳管。
  • false表示不会自动纳管。
说明:

设备故障后,会自动从K8s里面隔离。如果设备恢复正常,默认会自动加入K8s集群资源池。如果设备不稳定,可以设置为false,此时需要手动纳管。

  • 用户可以使用以下命令,将健康状态由unhealthy恢复为healthy的芯片重新放入资源池。
    kubectl label nodes node_name huawei.com/Ascend910-Recover-
  • 用户可以使用以下命令,将参数面网络健康状态由unhealthy恢复为healthy的芯片重新放入资源池。
    kubectl label nodes node_name huawei.com/Ascend910-NetworkRecover-

-logLevel

int

0

日志级别:

  • -1:debug。
  • 0:info。
  • 1:warning。
  • 2:error。
  • 3:critical。

-maxAge

int

7

日志备份时间限制,取值范围为[7, 700],单位为天。

-logFile

string

/var/log/mindx-dl/devicePlugin/devicePlugin.log

非边缘场景日志文件。fdFlag设置为false时生效。

说明:

单个日志文件超过20 MB时会触发自动转储功能,文件大小上限不支持修改。

-hotReset

int

-1

设备复位功能参数。开启此功能,芯片发生故障后,会进行热复位操作,让芯片恢复健康。
  • -1:关闭芯片复位功能
  • 0:开启推理设备复位功能
  • 1:开启训练设备复位功能(预留值,目前无实际功能)
该参数支持的推理设备:
  • Atlas 300I Pro 推理卡
  • Atlas 300V 视频解析卡
  • Atlas 300V Pro 视频解析卡
  • Atlas 300I Duo 推理卡
  • Atlas 300I 推理卡(型号 3000)(整卡)
  • Atlas 300I 推理卡(型号 3010)
    说明:

    针对Atlas 300I Duo 推理卡形态硬件,仅支持按卡复位,即两颗芯片会同时复位。

-maxBackups

int

30

转储后日志文件保留个数上限,取值范围为(0,30],单位为个。

-h或者-help

不涉及

显示帮助信息。