文档首页 > > 常见问题> 边缘节点>

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

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

分享
更新时间:2021/04/23 GMT+08:00

问题描述

边缘节点纳管失败。

问题排查

边缘节点纳管失败的原因众多,大部分是因为边缘节点不满足纳管要求或网络不通导致的,请根据如下原因排查。

图1 排查思路

您可以使用edgectl检查边缘节点是否满足纳管要求,检查“/opt/edge-installer”目录下是否存在edgectl文件。

  • 如果存在,则无需下载。
  • 如果不存在,请登录IEF控制台,在总览页面右侧的“边缘运维工具”中下载对应版本工具,例如“edgectl_x.x.x_x_x86_64.tar.gz”,并解压安装包到“/opt/edge-installer”目录下。

执行如下命令检查边缘节点是否满足纳管要求。

chmod +x /opt/edge-installer/edgectl

./opt/edge-installer/edgectl diagnose installation

  • 如果边缘节点不满足要求,则返回如下信息。您可以根据错误码定位解决对应问题,详细信息请参见错误码总览
    Failed to get Docker version.
    ERROR6102: Make sure that Docker is running.
    For more information, see IEF documentation.
    
    +-------------------------------+
    | Installation diagnose failed. |
    +-------------------------------+
  • 如果边缘节点满足要求,则返回如下信息。此时您可以根据表1手动排查故障。
    +---------------------------------+
    | Installation diagnose succeed. |
    +---------------------------------+

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

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

表2 边缘节点要求

项目

规格

OS

  • x86_64架构

    Ubuntu 16.04 LTS (Xenial Xerus)、Ubuntu 18.04 LTS (Bionic Beaver) 、CentOS 7.x 和RHEL 7.x、银河麒麟4.0.2、中兴新支点v5.5、中标麒麟v7.0

  • armv7i(arm32)架构

    Raspbian GNU/Linux 9 (stretch)

  • aarch64(arm64)架构

    Ubuntu 18.04.2 LTS (Bionic Beaver)

内存

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

CPU

>= 1核

硬盘

>= 1GB

GPU(可选)

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

说明:

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

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

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

NPU(可选)

华为昇腾AI加速处理器。

说明:

当前仅支持集成了华为昇腾310、910芯片的边缘节点,如Atlas 300推理卡、 Atlas 500智能小站、Atlas 800 推理服务器

如果边缘节点使用NPU,请确保边缘节点已安装驱动(目前昇腾310仅支持1.3.x.x和1.32.x.x的固件版本,例如1.3.2.B893,可用npu-smi info命令查看固件版本)。如果没有安装驱动,请联系设备厂商获取支持。

容器引擎(使用容器应用的场景必选)

Docker版本必须高于17.06,推荐使用18.06.3版本。

(请勿使用18.09.0版本Docker,该版本存在严重bug,详见https://github.com/docker/for-linux/issues/543;如果已使用此版本,请尽快升级。Atlas 500小站预置的Docker 18.09.0.60软件版本已经修改该问题。)

须知:

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

互联网协议

必须支持IPv6协议。

glibc

版本必须高于2.17。

端口使用

边缘节点需要使用如下端口,请确保这些端口能够正常使用。

  • 8102:边缘节点日志上报至应用运维管理(Application Operations Management,AOM)服务
  • 8149:边缘节点监控上报至AOM
  • 8065:边缘节点告警上报至AOM
  • 443:边缘节点连接IEF
  • 8883:边缘节点内置MQTT broker监听端口,并需要开放该端口
  • 20004:边缘节点上报消息到DIS

时间同步

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

2、操作系统不支持

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

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

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

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

sh /opt/edge-installer/conf/script/parse_user_config.sh node_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驱动

  1. 正常安装GPU驱动。

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

  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. 拷贝驱动文件。

      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/

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

      # uname -r
      3.10.0-514.e17.x86_64

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

请执行如下命令。

df -h

lsblk

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

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

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

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

systemctl status docker

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

    systemctl restart docker

    再次查看容器引擎状态。

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

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

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

执行以下命令:

ip addr show | grep docker0

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

10、8883端口被占用

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

netstat -npl | grep 8883

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

当IEF被正常安装后,8883将被edgecore组件监听,如下图,所以务必保证8883端口未被占用。

11、8883端口被防火墙关闭

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

systemctl status firewalld

firewall-cmd --state

回显中,notrunning表示关闭,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/

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

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

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

  • ief2-placement.cn-north-4.myhuaweicloud.com(依据不同的局点,域名不同,例如北京一为ief2-placement.cn-north-1.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

查看edge_core.log会提示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”目录恢复,执行卸载操作后再重新开始纳管。请尽量避免该类操作。

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

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

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

安装命令为:

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

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

分享:

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问