云服务器内容精选

  • 操作场景 IEF支持从云端SystemREST下发消息到边缘节点的SystemEventBus(MQTT broker)。 通过调用开放在公网的IEF云端的REST Gateway接口,结合节点ID和自定义Topic,向边缘节点中的SystemEventBus发送消息。您的终端设备可以通过订阅对应的自定义Topic进行消息接收,实现自定义Topic的从云到边的消息下发。 使用方法主要分如下三个步骤。 创建消息路由 发送消息 接收消息
  • 接收消息 登录边缘节点。 使用MQTT客户端接收消息。 当前边缘节点MQTT支持两种模式。 一种是内置的MQTT broker(使用8883端口),需要使用节点证书认证,然后订阅对应Topic接收消息,具体使用方式请参见使用证书进行安全认证。 另外一种是使用外置的MQTT broker(使用1883端口),需要先安装第三方MQTT broker,然后订阅对应Topic接收消息。 这里介绍使用外置的MQTT broker的方式,外置的MQTT broker需要先安装MQTT broker,例如安装Mosquitto,步骤如下。 对于Ubuntu操作系统,可以使用如下命令安装mosquitto: apt-get install mosquitto systemctl start mosquitto systemctl enable mosquitto 对于CentOS操作系统,使用如下命令安装mosquitto: yum install epel-release yum install mosquitto systemctl start mosquitto systemctl enable mosquitto 安装完成后,使用订阅命令订阅,订阅后如果有消息发送,就会收到消息,如下所示。其中#表示订阅任何主题,可以替换为指定的主题,如/aaa、/bbb等。 [root@ief-node ~]# mosquitto_sub -t '#' -d Client mosq-m02iwjsp4j2ISMw6rw sending CONNECT Client mosq-m02iwjsp4j2ISMw6rw received CONNACK (0) Client mosq-m02iwjsp4j2ISMw6rw sending SUBSCRIBE (Mid: 1, Topic: #, QoS: 0, Options: 0x00) Client mosq-m02iwjsp4j2ISMw6rw received SUBACK Subscribed (mid: 1): 0 Client mosq-m02iwjsp4j2ISMw6rw received PUBLISH (d0, q0, rQ, mQ, '/aaa', ... (31 bytes)) { "test-key": "test-value" }
  • 接收消息 登录边缘节点。 使用MQTT客户端接收消息。 当前边缘节点MQTT支持两种模式。 一种是内置的MQTT broker(使用8883端口),需要使用节点证书认证,然后订阅对应Topic接收消息,具体使用方式请参见使用证书进行安全认证。 另外一种是使用外置的MQTT broker(使用1883端口),需要先安装第三方MQTT broker,然后订阅对应Topic接收消息。 这里介绍使用外置的MQTT broker的方式,外置的MQTT broker需要先安装MQTT broker,例如安装Mosquitto,步骤如下。 对于Ubuntu操作系统,可以使用如下命令安装mosquitto: apt-get install mosquitto systemctl start mosquitto systemctl enable mosquitto 对于CentOS操作系统,使用如下命令安装mosquitto: yum install epel-release yum install mosquitto systemctl start mosquitto systemctl enable mosquitto 安装完成后,使用订阅命令订阅,订阅后如果有消息发送,就会收到消息,如下所示。其中#表示订阅任何主题,可以替换为指定的主题,如/aaa、/bbb等。 [root@ief-node ~]# mosquitto_sub -t '#' -d Client mosq-m02iwjsp4j2ISMw6rw sending CONNECT Client mosq-m02iwjsp4j2ISMw6rw received CONNACK (0) Client mosq-m02iwjsp4j2ISMw6rw sending SUBSCRIBE (Mid: 1, Topic: #, QoS: 0, Options: 0x00) Client mosq-m02iwjsp4j2ISMw6rw received SUBACK Subscribed (mid: 1): 0 Client mosq-m02iwjsp4j2ISMw6rw received PUBLISH (d0, q0, rQ, mQ, '/aaa', ... (31 bytes)) { "test-key": "test-value" }
  • 操作场景 IEF支持从云端SystemREST下发消息到边缘节点的SystemEventBus(MQTT broker)或ServiceBus两种场景,本章节是以前者为例。 通过调用开放在公网的IEF云端的REST Gateway接口,结合节点ID和自定义Topic,向边缘节点中的SystemEventBus发送消息。您的终端设备可以通过订阅对应的自定义Topic进行消息接收,实现自定义Topic的从云到边的消息下发。 使用方法主要分如下三个步骤。 创建消息路由 发送消息 接收消息
  • 排查思路 容器镜像拉取失败主要原因如图1所示,在此基础上,您可以根据表1逐步排查。 图1 排查思路 表1 排查思路 可能原因 处理措施 镜像地址错误 镜像地址错误 没有镜像拉取权限 没有镜像拉取权限 边缘节点无法解析SWR和OBS 域名 边缘节点无法解析SWR和OBS的域名 边缘节点无法连接SWR 边缘节点无法连接SWR 磁盘空间不足 磁盘空间不足 镜像过大而带宽不足 镜像过大而带宽不足 容器引擎异常 容器引擎异常
  • 边缘节点无法解析SWR和OBS的域名 检查SWR和OBS的域名是否能解析。SWR镜像拉取不仅要可以访问SWR,同时也要可以访问OBS,因为SWR镜像实际存储在OBS中。 请确认您的节点是否可以解析SWR和OBS的域名,如果域名无法解析,将会导致镜像拉取失败。 验证方案1: 在边缘节点上查看日志: cat /var/IEF/sys/log/edge_core.log| grep lookup 验证方案2: 在边缘节点上执行如下命令: ping swr.cn-north-4.myhuaweicloud.com ping obs.cn-north-4.myhuaweicloud.com 看是否可以解析出IP,看是否可以解析域名,如果在边缘节点上域名可以解析,但是登录SWR镜像仓库一直卡住,请确认您的容器引擎的域名解析方式如何配置的。如果无法解析出IP,请执行如下步骤查看域名解析服务器配置是否被修改。 如果配置了本地hosts的做域名与IP地址的映射,请检查配置是否正确。 cat /etc/hosts | grep swr cat /etc/hosts | grep obs 请在环境正确的机器上解析出正确IP后配置,若配置错误会导致域名解析错误。 如果您是通过/etc/resolv.conf文件配置的域名解析服务器来解析域名,请确认配置的域名解析服务器是否正确,该域名解析服务器是否可以解析这两个域名。 注意:如果通过公网访问IEF和容器引擎,中国大陆DNS解析服务器一般设置为114.114.114.114。并且确认您的域名解析服务器配置正确,可以在有效时间内解析到域名。 如果配置 多个域名 解析服务器(其中包含114.114.114.114),但容器引擎仍然无法解析域名,建议注释其他域名解析服务器,只留114.114.114.114尝试。 是否配置了代理,代理服务器是否可以解析这两个域名。 为边缘节点同时开两个终端。 在一个终端上保持:ping swr.cn-north-4.myhuaweicloud.com 在另外一个终端抓包:tcpdump -nn -i eth0 udp port 53 确认使用域名解析服务器的顺序,域名解析情况,最终通过那个域名解析服务器解析出域名(如果配置了hosts文件,不会进行域名解析)。 在一个终端上保持:docker login XXX(在SWR复制的临时登录命令) 在另外一个界面抓包:tcpdump -nn -i eth0 udp port 53 确认使用域名解析服务器的顺序,域名解析情况,最终通过那个域名解析服务器解析出域名(如果配置了hosts文件,不会进行域名解析) 确认上面两步域名解析服务器使用是否一致,域名是否可以解析,请保证您的机器可以在有效时间内解析SWR和OBS的域名,您可以修改/etc/resolv.conf文件并配置hosts文件。
  • 边缘节点无法连接SWR 检查边缘节点到SWR的网络是否能连接。 在边缘节点上: curl -i -k -v swr.cn-north-4.myhuaweicloud.com curl -i -k -v obs.cn-north-4.myhuaweicloud.com 不同区域域名不同。 看边缘节点网络是否连通,如果网络不通,请确认您的网络策略,是否可以连接外网。如果边缘节点测试网络连通,但是执行docker login命令会卡住,请再次依据边缘节点无法解析SWR和OBS的域名确认SWR的域名解析问题。 如果您确认域名可以解析,请依据您为边缘节点设定的访问外网方式,确认您的容器可以访问外网。确认以下问题: 确认是否为节点配置了代理 env| grep proxy env| grep PROXY 确认是否为容器引擎配置了代理 systemctl show --property=Environment docker 如果使用代理访问外网,请确认节点和容器引擎的代理配置正确。 尝试再次登录并下载镜像。 如果显示鉴权失败,请提交工单。
  • 使用示例 检查节点GPU设备: edgectl check gpu 检查成功返回结果: +-----------------------+ | NVIDIA check succeed. | +-----------------------+ 检查失败返回结果: ERROR6201: Confirm that this node has NVIDIA devices. For more information, see IEF documentation. +----------------------+ | NVIDIA check failed. | +----------------------+ 检查失败时,会打印错误码,用户可以根据错误码在所提供的文档链接中获取相应的帮忙。
  • 使用示例 排查节点故障原因: edgectl diagnose node-fault 检查成功返回结果: +------------------------+ | Node diagnose succeed. | +------------------------+ 检查失败返回结果: Failed to get Docker version. ERROR6102: Make sure that Docker is running. For more information, see IEF documentation. +-----------------------+ | Node diagnose failed. | +-----------------------+ 检查失败时,会打印错误码,用户可以根据错误码在所提供的文档链接中获取相应的帮忙。
  • 使用示例 检查节点NPU设备: edgectl check npu 示例执行结果: ERROR6301: please confirm that this node has npu device. npu device check failed. npu check failed. 检查成功返回结果: +--------------------+ | NPU check succeed. | +--------------------+ 检查失败返回结果: ERROR6301: Confirm that this node has NPU devices. For more information, see IEF documentation. +-------------------+ | NPU check failed. | +-------------------+ 检查失败时,会打印错误码,用户可以根据错误码在所提供的文档链接中获取相应的帮忙。
  • 参数说明 表1 参数说明 参数名称 是否必选 简写 描述 CHECKITEMS 否 不涉及 检查项目清单。当前支持输入项及意义如下 default:检查硬件架构、cpu、内存、硬盘、域名解析、网络连通性、docker arch:检查硬件架构IEF是否支持 cpu:检查cpu 是否满足IEF的要求 mem或memory:检查内存是否满足IEF的要求 disk:检查硬盘是否满足IEF的要求 dns:检查域名解析功能是否正常 network:检查节点是否能与IEF连接 docker:检查docker是否正常运行 gpu或nvidia:检查gpu设备是否存在且驱动正常运行 npu:检查npu设备是否存在 CHECKITEMS以英文的逗号“,”分割,如下所示: edgectl diag install [params] cpu,disk 同时CHECKITEMS也支持删减检查项,删减的检查项前添加“-”,如下所示: edgectl diag install [params] default,-docker --domain-name 否 无 检查节点域名解析功能是否正常时,尝试解析的域名。 默认使用华南区广州IEF云上域名:ief-edgeaccess.cn-south-1.myhuaweicloud.com 其他区域的域名请参见IEF云上端点。 --edge-hub-url 否 无 检查节点与IEF云上是否连通时,使用的IEF云上端点地址。 默认使用华南广州IEF云上地址:https://ief-edgeaccess.cn-south-1.myhuaweicloud.com:443 其他区域的域名请参见IEF云上端点。 --node-id 否 无 节点ID。默认为fake-node-id。 --project-id 否 无 项目ID。默认为fake-project-id。 --detail 否 -x 是否打印内部日志输出。
  • 使用示例 检查IEF安装项是否满足要求: edgectl diagnose installation 检查成功返回结果: +---------------------------------+ | Installation diagnose succeed. | +---------------------------------+ 检查失败返回结果: Failed to get Docker version. ERROR6102: Make sure that Docker is running. For more information, see IEF documentation. +-------------------------------+ | Installation diagnose failed. | +-------------------------------+ 检查失败时,会打印错误码,用户可以根据错误码在所提供的文档链接中获取相应的帮助。
  • 使用示例 诊断应用异常原因: Edgectl diagnose pod edge-cs 检查成功返回结果: table `meta` already exists, skip Pod edge-cs-759d46f887-p9kgf is Ready. +-----------------------+ | Pod diagnose succeed. | +-----------------------+ 检查失败返回结果: table `meta` already exists, skip Failed to get Docker version. ERROR6102: Make sure that Docker is running. For more information, see IEF documentation. +----------------------+ | Pod diagnose failed. | +---------------------- 检查失败时,会打印错误码,用户可以根据错误码在所提供的文档链接中获取相应的帮忙。
  • 操作步骤 创建VPC。 创建VPC的方法请参见创建虚拟私有云和子网。 您也可以使用已有VPC。 VPC网段不能与IDC的网段重复。 使用DC或VPN连接VPC。 具体连接方法请参见如下链接。 VPN:https://support.huaweicloud.com/qs-vpn/vpn_qs_00003.html DC:https://support.huaweicloud.com/qs-dc/zh-cn_topic_0145790541.html 创建IEF终端节点,使得边缘节点能够与IEF连接。 共需要创建三个终端节点,分别为ief-placement、ief-edgeaccess和ief-telemetry。具体创建步骤如下。 登录VPCEP控制台,单击右上角的“购买终端节点”。 选择IEF的终端节点和虚拟私有云。 图2 创建IEF终端节点 单击“立即购买”,确认信息无误后单击“提交”,完成创建。 创建SWR终端节点,使得边缘节点能够从SWR拉取容器镜像。 创建方法与创建IEF终端节点相同。 图3 创建SWR终端节点 创建DNS和OBS终端节点,使得边缘节点能够访问OBS。 具体方法请参见访问OBS。 给边缘节点添加hosts配置。 查询IEF和SWR的终端节点IP地址,共4个IP地址,配置到边缘节点的“/etc/hosts”文件中。 图4 查询终端节点IP地址 打开“/etc/hosts”文件,在文件末尾加入如下配置,使得访问IEF和SWR的域名指向终端节点的IP地址。 此处IP地址和域名需要根据实际情况修改,IP地址为上面步骤查询到的地址,不同区域的域名不相同,具体请参见域名地址。 192.168.2.20 ief2-placement.cn-north-1.myhuaweicloud.com 192.168.2.142 ief2-edgeaccess.cn-north-1.myhuaweicloud.com 192.168.2.106 ief2-telemetry.cn-north-1.myhuaweicloud.com 192.168.2.118 swr.cn-north-1.myhuaweicloud.com 注册并纳管边缘节点,具体步骤请参见边缘节点概述。
  • 连接方案说明 纳管边缘节点部署应用时,需要能够与IEF、SWR、OBS通信,在无法通过公网连接的情况下,可以先通过VPN或专线(DC)与华为云VPC连接,然后通过 VPC终端节点 服务,让VPC能够在内网访问IEF、SWR和OBS,具体连接方案如图1所示。 与IEF连接需要创建三个终端节点,分别为如下三个。 ief-placement:用于边缘节点的纳管和升级。 ief-edgeaccess:用于边缘节点与IEF发送边 云消息 。 ief-telemetry:边缘节点上传监控和日志数据。 与SWR连接需要创建一个终端节点,与OBS通信需要创建OBS和DNS两个终端节点(OBS只能通过域名访问,需要通过DNS动态解析OBS的地址才能访问到)。 图1 通过专线或VPN连接IEF