在制作Ascend Device Plugin镜像时,会将故障级别配置文件faultCode.json或SwitchFaultCode.json(当设备为超节点时,配置文件为SwitchFaultCode.json)内置在镜像中,启动Ascend Device Plugin时会读取这两个文件的默认配置,作为当前故障处理依据。
如果用户想要自定义故障级别或者优雅容错相关配置,可以在集群中创建ConfigMap文件(mindx-dl-fault-config)。
以灵衢总线设备故障码[0x00f1ff09,155913,cpu,na]为例。该故障码由四部分组成:[告警ID,故障ID,对端设备类型,端口号
以灵衢总线设备超节点故障码0000002d为例。将当前故障的处理策略NotHandleFaultCodes(无需处理)修改为SeparateFaultCodes(隔离设备,进行任务重调度)的操作示例如下。
kubectl describe cm -n kube-system mindx-dl-fault-config
kubectl create cm mindx-dl-fault-config -n kube-system --from-file=./faultCode.json --from-file=./SwitchFaultCode.json --from-literal="PollInterval=300"
configmap/mindx-dl-fault-config created
参数名 |
是否必选 |
说明 |
---|---|---|
mindx-dl-fault-config |
是 |
动态配置故障码所需的ConfigMap文件名称,不能修改该文件名称。 |
kube-system |
是 |
mindx-dl-fault-config所在命令空间,不能修改该命名空间名称。 |
SwitchFaultCode.json |
是 |
用于保存故障码,必须与SwitchFaultCode.json文件名称保持一致。 |
kubectl edit cm -n kube-system mindx-dl-fault-config
Data ==== SwitchFaultCode.json: ---- {"NotHandleFaultCodes":[0x00f1ff09,155913,cpu,na], ...
Data ==== SwitchFaultCode.json: ---- {"NotHandleFaultCodes":[],
... "SeparateFaultCodes":["0x00f1ff09,155913,cpu,na","[0x00f103b0,155907,na,na]"…] }
kubectl get pods -A | grep ascend-device-plugin
kube-system ascend-device-plugin-daemonset-910-jmlf5 1/1 Running 0 6h34m
kubectl logs -n kube-system ascend-device-plugin-daemonset-910-jmlf5
若日志出现“load switch fault code from configmap success”,表示手动配置故障码操作成功。