文档首页> 智能边缘平台 IEF> 常见问题> 边缘节点> 边缘节点纳管失败如何处理?
更新时间:2024-01-19 GMT+08:00

边缘节点纳管失败如何处理?

问题描述

边缘节点纳管失败。

1、边缘节点不满足纳管要求

目前在边缘节点安装Edge Agent对系统有一定的要求,请检查是否满足表2所示要求。

表2 边缘节点要求

项目

规格

OS

操作系统语言必须切换至英文

  • x86_64架构

    Ubuntu LTS (Xenial Xerus)、Ubuntu LTS (Bionic Beaver) 、CentOS、EulerOS、RHEL、银河麒麟、中兴新支点、中标麒麟、openEuler、uos(Unity Operating System)、ol(Oracle Linux)、hce(Huawei Cloud Euler)

  • armv7i(arm32)架构

    Raspbian GNU/Linux (stretch)

  • aarch64(arm64)架构

    Ubuntu LTS (Bionic Beaver)、CentOS、EulerOS、openEuler、uos(Unity Operating System)、ol(Oracle Linux)、hce(Huawei Cloud Euler)

内存

边缘软件开销约128MB,为保证业务的正常运行,建议边缘节点的内存大于256MB。

CPU

>= 1核

硬盘

>= 1GB

GPU(可选)

同一个边缘节点上的GPU型号必须相同。

说明:

当前支持Nvidia Tesla系列P4、P40、T4等型号GPU。

含有GPU硬件的机器,作为边缘节点的时候可以不使用GPU。

如果边缘节点使用GPU,您需要在纳管前安装GPU驱动。

目前只有使用x86架构的GPU节点才能纳管到IEF中使用。

NPU(可选)

华为昇腾AI加速处理器。

说明:

当前支持集成了华为昇腾处理器的边缘节点,如Atlas 300推理卡、Atlas 800推理服务器。

如果边缘节点使用NPU,请确保边缘节点已安装驱动(NPU驱动需不小于22.0.4版本,进入驱动所在路径如“/usr/local/Ascend/driver”,执行cat version.info命令查看)。如果没有安装驱动,请联系设备厂商获取支持。

容器引擎

Docker版本必须高于17.06。使用高于或等于1.23版本的docker时,需设置docker cgroupfs版本为1,不支持docker HTTP API v2。

(请勿使用18.09.0版本Docker,该版本存在严重bug,详见https://github.com/docker/for-linux/issues/543;如果已使用此版本,请尽快升级。)

须知:

Docker安装完成后,请将Docker进程配置为开机启动,避免系统重启后Docker进程未启动引起的系统异常。

Docker Cgroup Driver必须设置为cgroupfs。详细配置方法请参考在边缘节点安装Docker后,如何设置Docker Cgroup Driver?

glibc

版本必须高于2.17。

端口使用

边缘节点需要使用8883端口,8883端口用于边缘节点内置MQTT broker监听端口,请确保该端口能够正常使用。

时间同步

边缘节点时间需要与UTC标准时间保持一致,否则会导致边缘节点的监控数据、日志上传出现偏差。您可以选择合适的NTP服务器进行时间同步,从而保持时间一致。详细配置方法请参见如何同步NTP服务器?

2、操作系统不支持

请参见表2查看您的操作系统是否为IEF支持操作系统,注意不要使用中文版的Linux操作系统。

3、操作系统内核版本过低,部分命令不存在而导致边缘节点安装失败

首先,请参照表2中对边缘节点的要求,查看您的操作系统及内核版本是否符合要求。

执行以下命令确认是否存在操作系统内核版本过低情况:

sh /opt/edge-installer/conf/script/parse_user_config.sh node_id

其中,node_id为边缘节点ID。

如果命令报错,则说明操作系统内核版本过低,请升级您的内核版本或重装新版操作系统后再重新纳管边缘节点。

4、获取边缘节点操作系统失败

查看安装输出日志,如下最后一行,os字段如果为空,说明获取操作系统信息失败。

2020-01-11 17:00:46.341 +08:00 DEBUG :0 init logger...
2020-01-11 17:00:46.341 +08:00 INFO config/config.go:45 New file source added for configuration: /opt/edge-installer/conf/config.yaml
2020-01-11 17:00:46.341 +08:00 INFO config/config.go:45 New file source added for configuration: /opt/edge-installer/conf/logging.yaml
2020-01-11 17:00:46.351 +08:00 INFO pkg/installer.go:24 start to install
2020-01-11 17:00:46.386 +08:00 INFO placementclient/placementclient.go:61 http_proxy:ProxyNotSet, https_proxy:ProxyNotSet
2020-01-11 17:00:46.437 +08:00 INFO httpclient/httpsclient.go:182 https_proxy:
2020-01-11 17:00:46.479 +08:00 INFO util/util.go:446 system cert file[/opt/IEF/Cert/system/sys_private_cert_crypto.crt] and system key file[/opt/IEF/Cert
/system/sys_private_cert_crypto.key] have been inited
2020-01-11 17:00:46.479 +08:00 INFO pkg/installer.go:46 ------------------install---------------
2020-01-11 17:00:46.479 +08:00 INFO deploy/bootstrap.go:48 install precheck success.
2020-01-11 17:00:46.479 +08:00 INFO deploy/bootstrap.go:54 install preprocess start
2020-01-11 17:00:46.479 +08:00 INFO deploy/deploy.go:39 install preprocess start
2020-01-11 17:00:46.501 +08:00 INFO util/util.go:192 get arch success
2020-01-11 17:00:46.502 +08:00 INFO util/util.go:216 os type is:"euleros"
2020-01-11 17:00:46.502 +08:00 INFO util/util.go:432 installer version [1.0.6]
2020-01-11 17:00:46.516 +08:00 INFO placementclient/placementclient.go:113 body : {"arch":"x86_64","installer_version":"1.0.6","os":"euleros"}

5、AI加速卡类型的边缘节点未安装NPU驱动

如果您在注册边缘节点时选了AI加速卡类型的边缘节点,边缘节点必须支持NPU,并且确保您安装了NPU驱动。

在您的边缘节点执行以下命令:

ls /dev/davinci_manager /dev/hisi_hdc /dev/davinci*

如果文件不存在,说明您没有安装NPU驱动,请前往安装NPU驱动。

6、GPU类型边缘节点未安装GPU驱动

如果边缘节点使用GPU,您需要在纳管前安装GPU驱动。IEF当前支持Nvidia Tesla系列P4、P40、T4等型号GPU,支持CUDA Toolkit 8.0至11.0版本对应的驱动。

  1. 安装GPU驱动。

    IEF当前支持Nvidia Tesla系列P4、P40、T4等型号GPU,支持CUDA Toolkit 8.0至11.0版本对应的驱动。

    1. 下载GPU驱动,推荐驱动链接:

      https://www.nvidia.com/content/DriverDownload-March2009/confirmation.php?url=/tesla/440.33.01/NVIDIA-Linux-x86_64-440.33.01.run&lang=us&type=Tesla

    2. 执行如下安装驱动命令。

      bash NVIDIA-Linux-x86_64-440.33.01.run

    3. 执行如下命令检查GPU驱动安装状态。

      nvidia-smi

  2. 拷贝GPU驱动文件到指定目录。

    1. 以root用户登录边缘节点。
    2. 执行如下命令。

      nvidia-modprobe -c0 -u

    3. 创建文件夹。

      mkdir -p /var/IEF/nvidia/drivers /var/IEF/nvidia/bin /var/IEF/nvidia/lib64

    4. 拷贝驱动文件。
      • 对于CentOS,依次执行如下命令拷贝驱动文件:

        cp /lib/modules/{当前环境内核版本号}/kernel/drivers/video/nvi* /var/IEF/nvidia/drivers/

        cp /usr/bin/nvidia-* /var/IEF/nvidia/bin/

        cp -rd /usr/lib64/libcuda* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/libEG* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/libGL* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/libnv* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/libOpen* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/libvdpau_nvidia* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib64/vdpau /var/IEF/nvidia/lib64/

      • 对于Ubuntu,依次执行如下命令拷贝驱动文件:

        cp /lib/modules/{当前环境内核版本号}/kernel/drivers/video/nvi* /var/IEF/nvidia/drivers/

        cp /usr/bin/nvidia-* /var/IEF/nvidia/bin/

        cp -rd /usr/lib/x86_64-linux-gnu/libcuda* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/libEG* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/libGL* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/libnv* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/libOpen* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/libvdpau_nvidia* /var/IEF/nvidia/lib64/

        cp -rd /usr/lib/x86_64-linux-gnu/vdpau /var/IEF/nvidia/lib64/

      其中,当前环境内核版本号可以使用uname -r命令查看获取,如下所示,请替换为实际取值。

      # uname -r
      3.10.0-514.e17.x86_64
    5. 执行以下命令修改目录权限。

      chmod -R 755 /var/IEF

7、目录磁盘满导致安装失败

请执行如下命令。

df -h

lsblk

确保如下目录磁盘使用率未接近100%。磁盘大小要求请参见表2

  • /opt/IEF
  • /opt/edge-installer
  • /opt/IEFpack
  • /var/IEF

8、容器引擎未安装或未启动

执行以下命令确认容器引擎是否启动。

systemctl status docker

  • 如果没有容器引擎的信息,说明容器引擎未安装,请参考表2中的要求安装容器引擎。
  • 如果容器引擎未启动,执行以下命令尝试启动容器引擎。

    systemctl restart docker

    再次查看容器引擎状态。

    • 如果容器引擎启动正常(状态为active),请重新纳管边缘节点。
    • 如果容器引擎无法正常启动,请优先恢复容器引擎,或者重新安装容器引擎。

9、边缘节点存在多个docker0网桥地址

使用了容器引擎图形化界面的容器后,产生了两个docker0网桥地址,导致IEF服务纳管过程中docker0网桥注册失败,进而导致纳管失败,删除多余的docker0网桥后重新纳管可解决问题。

执行以下命令:

ip addr show | grep docker0

如果出现多个IP,说明存在多个docker0网桥,请保留172开头的IP,删除多余的docker0网桥地址。

10、8883端口被占用

执行以下命令查看8883端口是否被占用。

netstat -npl | grep 8883

如果端口被占用,将会导致IEF核心组件edgecore安装失败,因为edgecore正常运行依赖该端口。

当边缘节点被正常纳管后,8883将被edgecore组件监听,如下图,所以务必保证8883端口未被占用。

11、8883端口被防火墙关闭

检查边缘节点防火墙状态。

systemctl status firewalld

firewall-cmd --state

回显中,not running表示关闭,running表示开启。

如果防火墙开启,您需要打开8883端口,或关闭防火墙。

  • 打开8883端口。

    firewall-cmd --add-port=8883/tcp --permanent

    systemctl restart firewalld

  • 关闭防火墙。

    systemctl disable firewalld

    systemctl stop firewalld

12、边缘节点无法连接IEF

执行如下命令,确认边缘节点是否能连接IEF。

curl -i -k -v https://ief2-edgeaccess.cn-north-4.myhuaweicloud.com:443/

其中,ief2-edgeaccess.cn-north-4.myhuaweicloud.com为服务实例的edgeaccess域名,不同区域地址不同,请参考专业版服务实例域名铂金版服务实例域名获取。

如果一直没有回显,则说明边缘节点与IEF网络不通,请确保边缘节点能连接IEF。

13、边缘节点域名解析异常

请确保您的边缘节点可以解析以下域名:

  • ief2-placement.cn-north-4.myhuaweicloud.com(依据不同的区域,域名不同,例如“华东-上海一”为ief-placement.cn-east-3.myhuaweicloud.com,可以通过cat /opt/IEF/Cert/user_config来查找对应的域名)
  • ief2-edgeaccess.cn-north-4.myhuaweicloud.com(依据不同的区域、不同的服务实例,域名不同,请参考专业版服务实例域名铂金版服务实例域名获取)

确认命令:

ping ief2-edgeaccess.cn-north-4.myhuaweicloud.com
ping ief2-placement.cn-north-4.myhuaweicloud.com

如果域名无法解析请配置合适的域名解析服务器,建议配置“114.114.114.114”

14、同一个证书重复在多个边缘节点使用

同一个证书重复在多台机器纳管(同一套证书在不同的边缘节点上注册,且有一台边缘节点处于正常运行状态)。

在IEF界面注册的边缘节点和实际的边缘节点一一对应,请避免只在IEF界面创建一个边缘节点,下载安装包和证书后,重复在多个边缘节点上纳管时使用。

执行如下命令查看是否重复使用证书:

cat /var/IEF/sys/log/edge_core.log | grep websocket

若提示node_id已被占用,说明重复使用证书。如下图所示。

15、同一边缘节点多次进行纳管

  • 之前纳管后未正确执行卸载操作(边缘节点以前纳管过,在IEF界面删除边缘节点后,未在边缘节点上卸载)

    执行以下命令确认节点上以下组件是否处于运行状态:

    systemctl status edgecore

    systemctl status edgemonitor

    systemctl status edgelogger

    如果边缘节点纳管失败,但执行以上命令发现组件仍然处于运行状态,说明之前纳管的组件未正常卸载,请执行以下命令卸载。

    cd /opt/edge-installer; sudo ./installer -op=uninstall

    存在以下错误情况:

    重新纳管边缘节点时,直接将原来的节点的“/opt”目录变为“/opt_old”目录,新建“/opt”目录,后按照IEF提供的指导进行纳管。纳管失败后,执行卸载操作,提示卸载成功,但实际上执行以上命令发现对应组件仍然处于运行状态。这是因为在执行以上卸载操作时,卸载的不是“/opt_old”中安装的IEF组件。如遇该种情况,请先将“/opt”目录恢复,执行卸载操作后再重新开始纳管。请尽量避免该类操作。

  • 卸载完清理残留文件,执行以下命令删除之前纳管的组件、生成的日志和下载的配置文件。
    图2 /opt路径下文件

    删除红框所示之前纳管的组件:rm -rf /opt/edge-installerrm -rf /opt/IEF rm -rf /opt/IEF_firmware rm -rf /opt/IEFpack rm -rf /opt/material

    删除日志:rm -rf /var/IEF

    删除配置文件:rm -rf edge-installer_1.0.10_x86_64.tar.gz ief-node.tar.gz

  • 之前纳管的组件卸载不干净

    如果您确认卸载完成,但纳管仍然失败,请重启边缘节点后重试纳管。

16、纳管边缘节点的命令没有在对应目录下执行

安装命令为:

cd /opt/edge-installer; sudo ./installer -op=install

请注意不要忽略cd /opt/edge-installer;命令,确保执行安装命令是在edge-installer目录下执行。