
# 边缘节点纳管失败如何处理？
#### 问题描述
边缘节点纳管失败。
#### 问题排查
边缘节点纳管失败的原因众多，大部分是因为边缘节点不满足纳管要求或网络不通导致的，请根据如下原因排查。
图1排查思路   
![](https://support.huaweicloud.com/ief_faq/zh-cn_image_0286824020.png "点击放大")
您可以使用edgectl检查边缘节点是否满足纳管要求，检查"/opt/edge-installer"目录下是否存在edgectl文件。
执行如下命令检查边缘节点是否满足纳管要求。
**chmod +x /opt/edge-installer/edgectl**
**/opt/edge-installer/edgectl diagnose installation**
- 如果边缘节点不满足要求，则返回如下信息。您可以根据错误码定位解决对应问题，详细信息请参见[错误码总览](https://support.huaweicloud.com/tg-ief/errorcode.html)。
  ```
  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排查思路 
| 可能原因        | 处理措施                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|
| 边缘节点不满足纳管要求 | [1、边缘节点不满足纳管要求] [2、操作系统不支持] [3、操作系统内核版本过低，部分命令不存在而导致边缘节点安装失败] [4、获取边缘节点操作系统失败] [5、AI加速卡类型的边缘节点未安装NPU驱动] [6、GPU类型边缘节点未安装GPU驱动] [7、目录磁盘满导致安装失败] |
| Docker相关问题  | [8、容器引擎未安装或未启动] [9、边缘节点存在多个docker0网桥地址]                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 网络相关问题      | [10、8883端口被占用] [11、8883端口被防火墙关闭] [12、边缘节点无法连接IEF] [13、边缘节点域名解析异常]                                                                                                                                                                                                                                                                            |
| 其他问题        | [14、同一个证书重复在多个边缘节点使用] [15、同一边缘节点多次进行纳管] [16、纳管边缘节点的命令没有在对应目录下执行]                                                                                                                                                                                                                                                                                                                                                        |
   
 #### 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）、openEuler 23.09 Edge   - armv7i（arm32）架构 Raspbian GNU/Linux (stretch)   - aarch64（arm64）架构 Ubuntu LTS (Xenial Xerus)、Ubuntu LTS (Bionic Beaver) 、CentOS、EulerOS、RHEL、银河麒麟、中兴新支点、中标麒麟、openEuler、uos（Unity Operating System）、ol（Oracle Linux）、hce（Huawei Cloud Euler）、openEuler 23.09 Edge 说明： 推荐使用面向边缘计算场景的openEuler 23.09 Edge操作系统。    |
| 内存      | 边缘软件开销约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推理服务器。同时支持昇腾310、昇腾310B。 如果边缘节点使用NPU，请确保边缘节点已安装驱动（目前昇腾310仅支持1.3.x.x和1.32.x.x的固件版本，例如1.3.2.B893，可用npu-smi info命令查看固件版本）（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？](https://support.huaweicloud.com/ief_faq/ief_faq_0063.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| glibc   | 版本必须高于2.17。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 端口使用    | 边缘节点需要使用8883端口，8883端口用于边缘节点内置MQTT broker监听端口，请确保该端口能够正常使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 时间同步    | 边缘节点时间需要与UTC标准时间保持一致，否则会导致边缘节点的监控数据、日志上传出现偏差。您可以选择合适的NTP服务器进行时间同步，从而保持时间一致。详细配置方法请参见[如何同步NTP服务器？](https://support.huaweicloud.com/ief_faq/ief_faq_0053.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
 #### 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](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端口未被占用。
![](https://support.huaweicloud.com/ief_faq/zh-cn_image_0227648324.png "点击放大")
 #### 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域名，不同区域地址不同，请参考[专业版服务实例域名](https://support.huaweicloud.com/ief_faq/ief_faq_0056.html#ief_faq_0056__section178741883179)或[企业版服务实例域名](https://support.huaweicloud.com/ief_faq/ief_faq_0056.html#ief_faq_0056__section6882152901713)获取。
如果一直没有回显，则说明边缘节点与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（依据不同的区域、不同的服务实例，域名不同，请参考[专业版服务实例域名](https://support.huaweicloud.com/ief_faq/ief_faq_0056.html#ief_faq_0056__section178741883179)或[企业版服务实例域名](https://support.huaweicloud.com/ief_faq/ief_faq_0056.html#ief_faq_0056__section6882152901713)获取）
确认命令：
```
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已被占用，说明重复使用证书。如下图所示。
![](https://support.huaweicloud.com/ief_faq/zh-cn_image_0281247820.png "点击放大")
 #### 15、同一边缘节点多次进行纳管
- 之前纳管后未正确执行卸载操作（边缘节点以前纳管过，在IEF界面删除边缘节点后，未在边缘节点上卸载） 执行以下命令确认节点上以下组件是否处于运行状态：
  **systemctl status edgecore**
  **systemctl status edgemonitor**
  **systemctl status edgelogger**
  如果边缘节点纳管失败，但执行以上命令发现组件仍然处于运行状态，说明之前纳管的组件未正常卸载，请执行以下命令卸载。
  **cd /opt/edge-installer; sudo ./installer -op=uninstall**
  ![](https://support.huaweicloud.com/ief_faq/public_sys-resources/caution_3.0-zh-cn.png)
  存在以下错误情况：
  重新纳管边缘节点时，直接将原来的节点的"/opt"目录变为"/opt_old"目录，新建"/opt"目录，后按照IEF提供的指导进行纳管。纳管失败后，执行卸载操作，提示卸载成功，但实际上执行以上命令发现对应组件仍然处于运行状态。这是因为在执行以上卸载操作时，卸载的不是"/opt_old"中安装的IEF组件。如遇该种情况，请先将"/opt"目录恢复，执行卸载操作后再重新开始纳管。请尽量避免该类操作。
  
- 卸载完清理残留文件，执行以下命令删除之前纳管的组件、生成的日志和下载的配置文件。
  图2/opt路径下文件   
  ![](https://support.huaweicloud.com/ief_faq/zh-cn_image_0000001349998120.png "点击放大")
  删除红框所示之前纳管的组件：**rm -rf /opt/edge-installer** 、**rm -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目录下执行。
