华为云用户手册

  • 排查思路 容器镜像拉取失败主要原因如图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文件。
  • 路由管理中的消息端点是什么? 消息端点指发送或接收消息的一方,可以是终端设备、云服务等。 IEF提供如下默认消息端点: SystemEventBus:边缘节点上的MQTT,代表节点通信,可以作为源端点向云上发数据,也可以作为目的端点,接收云上消息。端点资源为边缘节点MQTT Topic。 SystemREST:云端的REST网关接口,可以作为源端点,向边缘侧发送REST请求。端点资源为REST请求的路径。 父主题: 边 云消息
  • 使用智能边缘平台能带来哪些收益? 智能边缘提供系列化的端云协同服务,包括远程端侧终端设备管理、流处理等一系列服务,为客户在时延敏感型业务、带宽敏感型业务、安全性和合规性要求高的业务等场景下遇到的问题,提供完善解决方案。 时延敏感型业务 针对时延敏感型业务,智能边缘提供就近的数据处理、应用智能等服务,能够快速响应业务实时性要求。 带宽敏感型业务 针对带宽敏感型业务,如业务端侧数据量大的业务,智能边缘平台可以提供数据预处理功能,避免大量数据传递到云端,降低带宽等IT设施投资。 安全性和合规性要求高的业务 安全性及合规性要求高的业务,要求端侧数据不能传递到云端,智能边缘平台提供本地数据处理功能、分析等功能,满足客户在 安全与合规 性等方面的需求。 父主题: 基本概念
  • 消息路由是什么? 将指定消息从源端点转发到目的端点的转发路径。 目前支持如下几种消息转发路径: SystemREST到Service Bus:通过调用云端的REST Gateway接口,获取边缘节点上的文件服务。需配合边缘市场中的边缘文件服务应用一起使用。 SystemREST到SystemEventBus:通过调用云端的REST Gateway接口,向边缘节点中的SystemEventBus(MQTT broker)发送消息。 SystemEventBus到DIS/APIG服务:您可以将终端设备数据发送到边缘节点SystemEventBus(MQTT broker)的自定义Topic中,IEF会将这些数据转发到DIS通道或APIG后端地址。数据转发到DIS通道或者APIG后端地址后,您可以提取这些数据,并对数据进行处理分析。这条路径需要在创建消息路由时自定义MQTT Topic。 父主题: 边云消息
  • 操作步骤 登录边缘节点。 执行以下命令,编辑ntp.conf文件。 vim /etc/ntp.conf 添加以下语句,配置NTP服务器。 server NTP服务器域名 其中,NTP服务器域名请参考“华为云有没有提供NTP服务器,怎样安装?”获取。 示例: server ntp.myhuaweicloud.com 执行以下命令,系统重新启动时启动服务。 对于SUSE操作系统: service ntpd restart 对于CentOS操作系统: systemctl restart ntpd 请根据边缘节点实际使用的操作系统,选择具体的命令进行重启。 执行以下命令,检查与NTP服务器是否时钟同步成功。 ntpq -p 如果出现“*”,则表示时钟同步成功。 首次进行NTP时钟同步需要一定时间,请等待几分钟再进行检查。 执行以下命令,设置NTP服务开机自启动。 如果是SUSE操作系统: chkconfig ntp on 如果是CentOS操作系统: chkconfig ntpd on
  • IEF欠费后,之前下发的应用还能用吗? 账号欠费后,应用将会被冻结,账号被冻结后将进入保留期(不同账号保留期不同,具体请在费用中心查询), 保留期内可在控制台查看到应用但无法执行任何操作。保留期结束后,应用将会被强制删除。 例如: 假如账号于2019年12月10号开始欠费,将进入保留期(例如15天),因此从2019年12月10号开始,停止计费,在保留期内可看到应用但无法操作。 2019年12月25号保留期结束,如果账号仍然欠费,会强制删除账号下所有应用。 父主题: 其他
  • 应用GPU资源调度方式 IEF支持多应用共享的方式使用GPU显卡。 IEF支持单个应用使用多个GPU显卡。 GPU资源调度基于GPU显存容量,调度采用GPU显存预分配方式而非实时GPU显存资源。 当应用需要使用的GPU显存资源小于单个GPU卡显存时,支持以共享方式进行资源调度,对现有GPU卡剩余资源从小到大进行排序,从中找到第一个满足资源需求的显卡进行部署。例如有三个显卡a、b、c,每个显卡显存资源是8G,剩余显存资源是2G、4G、6G,有应用A 需要显存3G,则会调度到b显卡上。 当应用需要使用的GPU显存资源大于单个GPU卡显存时,支持以多显卡方式进行资源调度,调度时会占用完整显卡资源(剩余部分不能分给其他容器)。例如有三个显卡a、b、c,每个显卡显存资源是8G,剩余显存资源是8G、8G、6G,有应用B 需要显存14G,则会调度到a和b显卡上,并且其他应用无法调度到a和b显卡上。 父主题: 边缘应用
  • 如何选择区域? 选择区域时,您需要考虑以下几个因素: 地理位置 一般情况下,建议就近选择靠近您或者您的目标用户的区域,这样可以减少网络时延,提高访问速度。 在除中国大陆以外的亚太地区有业务的用户,可以选择“中国-香港”、“亚太-曼谷”或“亚太-新加坡”区域。 在非洲地区有业务的用户,可以选择“非洲-约翰内斯堡”区域。 在拉丁美洲地区有业务的用户,可以选择“拉美-圣地亚哥”区域。 “拉美-圣地亚哥”区域位于智利。 资源的价格 不同区域的资源价格可能有差异,请参见华为云服务价格详情。
  • 什么是区域、可用区? 区域和可用区用来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 图1阐明了区域和可用区之间的关系。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。更多信息请参见华为云全球站点。
  • 8、容器引擎未安装或未启动 执行以下命令确认容器引擎是否启动。 systemctl status docker 如果没有容器引擎的信息,说明容器引擎未安装,请参考表2中的要求安装容器引擎。 如果容器引擎未启动,执行以下命令尝试启动容器引擎。 systemctl restart docker 再次查看容器引擎状态。 如果容器引擎启动正常(状态为active),请重新纳管边缘节点。 如果容器引擎无法正常启动,请优先恢复容器引擎,或者重新安装容器引擎。
  • 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
  • 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-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 之前纳管的组件卸载不干净 如果您确认卸载完成,但纳管仍然失败,请重启边缘节点后重试纳管。
  • 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。
  • 9、边缘节点存在多个docker0网桥地址 使用了容器引擎图形化界面的容器后,产生了两个docker0网桥地址,导致IEF服务纳管过程中docker0网桥注册失败,进而导致纳管失败,删除多余的docker0网桥后重新纳管可解决问题。 执行以下命令: ip addr show | grep docker0 如果出现多个IP,说明存在多个docker0网桥,请保留172开头的IP,删除多余的docker0网桥地址。
  • 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.comping 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已被占用,说明重复使用证书。如下图所示。
  • 问题排查 边缘节点纳管失败的原因众多,大部分是因为边缘节点不满足纳管要求或网络不通导致的,请根据如下原因排查。 图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 排查思路 可能原因 处理措施 边缘节点不满足纳管要求 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、纳管边缘节点的命令没有在对应目录下执行
  • 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.yaml2020-01-11 17:00:46.341 +08:00 INFO config/config.go:45 New file source added for configuration: /opt/edge-installer/conf/logging.yaml2020-01-11 17:00:46.351 +08:00 INFO pkg/installer.go:24 start to install2020-01-11 17:00:46.386 +08:00 INFO placementclient/placementclient.go:61 http_proxy:ProxyNotSet, https_proxy:ProxyNotSet2020-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 inited2020-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 start2020-01-11 17:00:46.479 +08:00 INFO deploy/deploy.go:39 install preprocess start2020-01-11 17:00:46.501 +08:00 INFO util/util.go:192 get arch success2020-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"}
  • 6、GPU类型边缘节点未安装GPU驱动 如果边缘节点使用GPU,您需要在纳管前安装GPU驱动。IEF当前支持Nvidia Tesla系列P4、P40、T4等型号GPU,支持CUDA Toolkit 8.0至11.0版本对应的驱动。 安装GPU驱动。 IEF当前支持Nvidia Tesla系列P4、P40、T4等型号GPU,支持CUDA Toolkit 8.0至11.0版本对应的驱动。 下载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 执行如下安装驱动命令。 bash NVIDIA-Linux-x86_64-440.33.01.run 执行如下命令检查GPU驱动安装状态。 nvidia-smi 拷贝GPU驱动文件到指定目录。 以root用户登录边缘节点。 执行如下命令。 nvidia-modprobe -c0 -u 创建文件夹。 mkdir -p /var/IEF/nvidia/drivers /var/IEF/nvidia/bin /var/IEF/nvidia/lib64 拷贝驱动文件。 对于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 -r3.10.0-514.e17.x86_64 执行以下命令修改目录权限。 chmod -R 755 /var/IEF
  • 在边缘节点安装Docker后,如何设置Docker Cgroup Driver? 在边缘节点安装Docker后,Docker Cgroup Driver必须设置为cgroupfs,一般Docker默认的就是cgroupfs,如需重新设置参考如下操作步骤: 可以使用docker info查看Cgroup Driver配置,如果不是cgroupfs,需要修改Docker的Cgroup Driver为cgroupfs。 ...Logging Driver: json-fileCgroup Driver: cgroupfsHugetlb Pagesize: 2MB, 1GB (default is 2MB)Plugins: Volume: local Network: bridge host macvlan null overlay... 使用vim /etc/docker/daemon.json编辑Docker的配置文件,如果不存在就创建。 在配置文件中添加如下内容: { "exec-opts": ["native.cgroupdriver=cgroupfs"]} 如果上面一行还有内容,需要在上面一行加上英文逗号。 重新加载配置文件并重启Docker:systemctl daemon-reload && systemctl restart docker。 父主题: 边缘节点
  • 解决方法 通过实名认证 未通过实名认证的账号,会在控制台顶部提示用户,根据指导完成实名认证即可。 也可单击右上角账号名的“基本信息”,进入“账号中心”,单击左边菜单栏“实名认证”,按照指导完成实名认证。 账号充值 单击控制台上方“费用中心”,查看现金余额是否小于0,单击“充值”,为您的账号进行余额充值。 账号解冻 单击右上角账号名的“基本信息”,进入“账号中心”,查看基本信息或控制台顶部是否提示账号已冻结。如果账号被冻结,请联系人工客服解冻账号。 授予IEF权限 创建用户组、用户并授予IEF权限,具体请参考创建用户并授权使用IEF。
  • 解决方法 NPU应用创建失败: 应用如果需要申请NPU资源,只能部署到启用昇腾AI加速卡的节点上。未在注册节点时启用昇腾AI加速卡的节点,部署申请NPU资源的应用会提示创建失败。 如下图,请在注册边缘节点时根据型号选择“昇腾AI加速卡”。 启用昇腾AI加速卡的节点,在节点详情页可以查看到AI加速卡的信息,确认健康芯片列表。 NPU应用运行状态异常: 确定当前应用申请的昇腾AI加速卡个数不大于节点的健康芯片数量,否则应用会调度失败。 在容器应用详情页面“更新升级”页签中确认: 登录边缘节点,查看npu插件是否异常。 docker ps -a |grep npu-plugin 如果容器状态异常,则重启容器。 docker restart $containerID 如果以上步骤仍未解决问题,请根据下发应用到边缘节点失败和容器应用在边缘节点启动失败继续排查。
  • 注意事项 为了让您的边缘节点应用更稳定可靠的运行,IEF不会主动升级您的边缘节点上的EdgeCore,需要由您在业务影响最小的时间窗内进行节点升级,以减轻对您业务的影响。 处于维护周期中的版本升级,边缘节点上的应用业务不会中断,如果您有使用消息路由功能,可能会有短暂影响。 处于维护周期外的版本升级,可能会因为容器重启引起业务的短暂中断。 请勿在节点升级过程中变更节点配置,比如重启Docker、安装卸载GPU/NPU驱动、OS内核升级、变更网络配置等,这些操作会增大节点升级失败风险。
  • 配置项的使用 您可以在创建容器应用高级配置中选择数据存储时使用ConfigMap。 图2 使用ConfigMap ConfigMap挂载到容器后,会根据ConfigMap的内容在挂载目录下创建文件,每条配置数据(属性名-属性值)为一个文件,其中属性名即文件的名称,属性值为文件的内容。例如ConfigMap的属性名为“key”,属性值为“value”,这条ConfigMap挂载到/tmp0目录下,那么挂载成功后,在/tmp0目录下就存在一个名为“key”的文件,其内容为“value”。
  • 使用证书 证书用于终端设备与MQTT broker通信时鉴权。 下面是Go语言代码样例和Java语言代码样例,演示了如何使用证书做鉴权。 客户端不需要校验服务端证书,单向认证即可。 内置MQTT broker默认开启8883端口。 样例中的Go语言MQTT Client引用了github.com/eclipse/paho.mqtt.golang开源库。 客户端需要处理断连事件,实现掉线重连机制,提高连接可靠性。
  • Go语言代码样例 package mainimport ("crypto/tls""crypto/x509""fmt""math/rand""sync""time"MQTT "github.com/eclipse/paho.mqtt.golang")func main() {subClient := InitMqttClient(onSubConnectionLost)pubClient := InitMqttClient(onPubConnectionLost)wait := sync.WaitGroup{}wait.Add(1)go func() {for {time.Sleep(1*time.Second)pubClient.Publish("topic", 0, false, "hello world")}}()subClient.Subscribe("topic", 0, onReceived)wait.Wait()}func InitMqttClient(onConnectionLost MQTT.ConnectionLostHandler) MQTT.Client {pool := x509.NewCertPool()cert, err := tls.LoadX509KeyPair("/tmp/example_cert.crt", "/tmp/example_cert.key")if err != nil {panic(err)}tlsConfig := &tls.Config{RootCAs: pool,Certificates: []tls.Certificate{cert},// 单向认证,client不校验服务端证书InsecureSkipVerify: true,} // 使用tls或者ssl协议,连接8883端口opts := MQTT.NewClientOptions().AddBroker("tls://127.0.0.1:8883").SetClientID(fmt.Sprintf("%f",rand.Float64()))opts.SetTLSConfig(tlsConfig)opts.OnConnect = onConnectopts.AutoReconnect = false// 回调函数,客户端与服务端断连后立刻被触发opts.OnConnectionLost = onConnectionLostclient := MQTT.NewClient(opts)loopConnect(client)return client}func onReceived(client MQTT.Client, message MQTT.Message) {fmt.Printf("Receive topic: %s, payload: %s \n", message.Topic(), string(message.Payload()))}// sub客户端与服务端断连后,触发重连机制func onSubConnectionLost(client MQTT.Client, err error) {fmt.Println("on sub connect lost, try to reconnect")loopConnect(client)client.Subscribe("topic", 0, onReceived)}// pub客户端与服务端断连后,触发重连机制func onPubConnectionLost(client MQTT.Client, err error) {fmt.Println("on pub connect lost, try to reconnect")loopConnect(client)}func onConnect(client MQTT.Client) {fmt.Println("on connect")}func loopConnect(client MQTT.Client) {for {token := client.Connect()if rs, err := CheckClientToken(token); !rs {fmt.Printf("connect error: %s\n", err.Error())} else {break}time.Sleep(1 * time.Second)}}func CheckClientToken(token MQTT.Token) (bool, error) {if token.Wait() && token.Error() != nil {return false, token.Error()}return true, nil}
  • 约束与限制 证书与边缘节点绑定,在一个边缘节点下申请的证书只能用来访问该边缘节点的MQTT broker,如果访问其他边缘节点的MQTT broker,会导致认证失败。 一个边缘节点最多只能申请10份证书。 证书的有效期为5年。 MQTT使用限制 表1 MQTT使用限制 描述 限制 支持的MQTT协议版本 3.1.1 与标准MQTT协议的区别 支持QoS 0 支持Topic自定义 不支持QoS 1和QoS 2 不支持will、retain msg MQ TTS 支持的安全等级 采用TCP通道基础 + TLS协议(TLSV1.2 版本)
  • 边缘节点概述 边缘节点是您自己的边缘计算机器,用于运行边缘应用,处理您的数据,并安全、便捷地和云端应用进行协同。您可以通过智能边缘平台部署系统应用来延伸云服务能力到边缘节点,或者通过部署您自己的应用来构建您自己的边缘计算能力。 为了使智能边缘平台能够管理您的边缘节点,您需要做如下步骤: 准备边缘节点,边缘节点需要满足一定的规格要求,具体请参见配置边缘节点环境。 在IEF中创建边缘节点,获取边缘节点的安装工具和配置文件,具体请参见注册边缘节点。 使用上一步获取的安装工具和配置文件纳管边缘节点,具体请参见纳管边缘节点。 图1 使用流程 父主题: 节点管理
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全