(可选)配置节点硬件故障级别
在制作NodeD镜像时,会将故障级别配置文件NodeDConfiguration.json内置在镜像中,启动NodeD时会读取该文件的默认配置,作为当前故障处理依据。
如果用户想要自定义故障级别,可以在集群中创建ConfigMap文件(mindx-dl-node-fault-config)。
- 如果NodeD启动时,集群中已经存在该mindx-dl-node-fault-config,NodeD会优先按照已存在的mindx-dl-node-fault-config中配置的内容,作为当前故障处理依据。
- 如果重新安装NodeD后,集群中已经存在mindx-dl-node-fault-config,NodeD的默认NodeDConfiguration.json将不会生效,使用集群中已经存在的mindx-dl-node-fault-config。若想要使用NodeDConfiguration.json的默认配置,可以删除mindx-dl-node-fault-config,使NodeD读取默认的NodeDConfiguration.json文件。
- 如果mindx-dl-node-fault-config内容存在格式错误等问题,NodeD会默认读取镜像中内置的NodeDConfiguration.json文件的内容,作为当前故障处理依据。
操作步骤
以故障码0100001D为例,将当前故障的处理策略NotHandleFault(无需处理)修改为PreSeparateFault(该节点上有任务则不处理,后续不调度任务到该节点)的操作示例如下。
- 登录环境,进入NodeD解压目录。
- 执行以下命令,创建动态配置故障级别所需ConfigMap文件(mindx-dl-node-fault-config)。
kubectl create cm mindx-dl-node-fault-config -n mindx-dl --from-file=./NodeDConfiguration.json
回显示例如下:1
configmap/mindx-dl-node-fault-config created
表1 参数说明 参数名称
说明
mindx-dl-node-fault-config
创建的ConfigMap文件名称,不能修改该文件名称。
mindx-dl
命名空间名称,不能修改该命名空间。
NodeDConfiguration.json
用于配置故障码以及对应的故障级别,必须与NodeDConfiguration.json文件名称保持一致。
- 执行以下命令,编辑mindx-dl-node-fault-config文件。
kubectl edit cm -n mindx-dl mindx-dl-node-fault-config
- 在mindx-dl-node-fault-config文件中,找到故障码0100001D。
"FaultTypeCode": { "NotHandleFaultCodes":[ "0100001D","03000009","03000013","0300000D","03000011" ], ... ], ...
自定义故障级别时,若不小心导致出现以下问题,则本次修改无效,NodeD将会使用上一次保存的配置进行处理。- 文件格式异常或故障码取值错误,故障码只能为8位的包含数字和字母的字符串。
- 同一故障码同时配置在多个故障级别中。
- 将故障码0100001D在NotHandleFaultCodes中删除,并添加到PreSeparateFaultCodes中。
"FaultTypeCode": { "NotHandleFaultCodes":[ "03000009","03000013","0300000D","03000011" ], "PreSeparateFaultCodes":[ "28000037","00000011", "0100001D" ... ], ...
- 修改完成后,按“Esc”键,输入:wq!保存并退出。
- 等mindx-dl-node-fault-config文件更新后,查看操作是否成功。
- 执行以下命令,查询NodeD组件日志名称。
kubectl get pods -A | grep noded
回显示例如下:1
mindx-dl noded-c5f52 1/1 Running 0 2m16s
- 通过查询到的组件日志名称,查询NodeD的组件日志信息。
kubectl logs noded-c5f52 -n mindx-dl -f
若日志出现“update fault config success”,表示动态配置故障码操作成功。
- 执行以下命令,查询NodeD组件日志名称。
父主题: 节点硬件故障