EdgeHub & MetaManager

EdgeHub

image.png

EdgeHub中有两类client,分别是httpclient以及websocket/quic client,前者用于与EdgeCore与CloudCore通信所需证书的申请,后者负责与CloudCore的日常通信(资源下发、状态上传等)
当EdgeHub启动时,其先从CloudCore申请证书(若正确配置本地证书,则直接使用本地证书)
初始化与CloudCore通信的websocket/quic client,成功连接之后将成功连接的信息传给其他组件(MetaGroup、TwinGroup、BusGroup),分别启动三个goroutine不断的进行云到边以及边到云的消息分发(单纯分发,不做任何封装或改变)、健康状态上报。当云边传送消息过程中出现错误时,则边缘端重新init相应的websocket/quic client,与云端重新建立连接。

MetaManager

当metamanager模块启动时,会开启两个goroutine,一个用于定时(默认60s)给自己发送消息通知进行边到云的podstatus数据同步;一个用于edgehub与edged/edgemesh的数据处理。
到达memanager的数据来源于两部分,一是edgehub,此时是云到边的数据,记为①;二是edged,此时是边到云的数据,记为②。
处理的消息类型:
Insert①
Update①②
Delete①
Query
根据云边连接状态以及资源类型的不同,查询的具体方式如下图所示:

image.png
  • Response
  • NodeConnection(edgehub->其他modules)
  • MetaSync(podstatus边到云的同步)

处理的资源类型:

  • secret
  • configmap
  • service
  • podlist
  • endpoints
  • node
  • podstatus
  • servicelist
  • pod
  • nodestatus
    Note: service/servicelist/endpoints进一步发送给edgemesh供服务发现,其余发给edged进行应用管理
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容