KubeEdge边缘自治设计原理

KubeEdge边缘自治设计原理

      • 问1 :KubeEdge中容器编排是通过云上的controller manager来进行编排的吗?除了下发边缘完整的api对象期望状态,边缘发送ack来实现消息一致性外,边缘容器的状态还是要上报到云端,这个一致性是如何实现的?
      • 问2:如何加入社区,参与一些工作?
      • 问3:KubeEdge云边之间的消息是如何收发的,是经过edgehub~cloudhub之间的websocket吗?是否有具体的示例?
      • 问4:如果有学术想法,如何整合自己的想法到KubeEdge中?比如Kubernetes 就提供了各种语言的Client,使得可以更好的整合自己的想法,KubeEdge有没有类似的编程接口?
      • 问5:edgecore有时候出站不稳定,该进程有时自动关闭,是什么原因?
      • 问6:边缘端edgecore重启,不会自动拉起使用configmap的pod,未使用configmap的pod可以正常启动吗?

项目地址(欢迎Star、Watch、Fork): https://github.com/kubeedge/kubeedge

11月28日视频直播了KubeEdge系列课程第三课《KubeEdge边缘自治设计原理》。

课程首先回顾了KubeEdge的云、边、端三层整体架构。再针对KubeEdge的边缘应用管理部分,分析了EdgeCore中模块间通信原理及Edgehub、MetaManager、EdgeD三个模块的设计原理,最后演示了如何利用KubeEdge管理应用及在云边网络断开、边缘节点重启等情况下如何实现边缘自治,本次课程详情见以下回放。
KubeEdge边缘自治设计原理_第1张图片
本次课程的回放地址:
https://huaweicloud.bugu.mudu.tv/watch/zmp0k8o4

问1 :KubeEdge中容器编排是通过云上的controller manager来进行编排的吗?除了下发边缘完整的api对象期望状态,边缘发送ack来实现消息一致性外,边缘容器的状态还是要上报到云端,这个一致性是如何实现的?

答1:KubeEdge构建在K8s原生的调度与编排能力之上,它负责将应用的元数据可靠的下发到边缘节点。边缘端周期性上报状态node、pod信息,会不断重试上报,因此目前还未计划实现排队及ACK校验等功能。

问2:如何加入社区,参与一些工作?

答2:如果是新人刚开始参与社区,可以做一些简单的工作,例如补齐文档、添加测试用例等,社区会有标签为“help wanted”或“good first issue”的issue,都适用于新手开发者。

如果有相关开发经验,可以参与社区Bug修复、大特性的设计与实现,社区欢迎每一位贡献者!

问3:KubeEdge云边之间的消息是如何收发的,是经过edgehub~cloudhub之间的websocket吗?是否有具体的示例?

答3:KubeEdge云边消息传递是通过EdgeHub与CloudHub间的Websocket或Quic协议的长连接传递的,具体方式可参考相应源码。

问4:如果有学术想法,如何整合自己的想法到KubeEdge中?比如Kubernetes 就提供了各种语言的Client,使得可以更好的整合自己的想法,KubeEdge有没有类似的编程接口?

答4:KubeEdge构建在K8s原生的调度与编排能力之上,与K8s的API是100%兼容的,对于K8s的API对象可以使用K8s原生的Client来操作。KubeEdge中自定义的Device CRD后续也会按K8s标准生成golang语言的Client。因此可以按照K8s原生的方式来操作KubeEdge。

问5:edgecore有时候出站不稳定,该进程有时自动关闭,是什么原因?

答5:如果出现程序自动退出、重启的问题,建议查看对应的应用日志,将问题及日志以Issue的方式提到社区解决。

问6:边缘端edgecore重启,不会自动拉起使用configmap的pod,未使用configmap的pod可以正常启动吗?

答6:首先考虑edgecore重启不会引起节点业务Pod的重启,如果是边缘节点宕机引起整个节点的重启,应该考虑该Pod是否已经迁移到其他节点。

你可能感兴趣的:(KubeEdge边缘自治设计原理)