什么是边缘计算
首先和大家讨论下什么是边缘计算?对于边缘计算有明确的官方定义吗?这里我也不粘贴百度上的概念定义了,在这里就畅所欲言和大家讨论下。
首先面对当今的服务运行方式,基本都是云端(单机或者分布式)部署,所有的决策以及存储都在云端存储。当然还有另外一种方式,我们称之为离线运行(私有化部署),就是说服务运行在需要服务的局域网内,这样服务不需要公网,只要保证局域网内的网络通畅就可以了。当然这两种部署方式各有优劣势,云端集中部署的优势是集中化易于服务的维护以及扩容;反之私有化部署的优势是安全,并且减少对网络的依赖,试想下无人驾驶的场景,如果探测到前方有车,然后通过网络回传到云端,等待云端判定,而此时正好网络存在异常,等到网络恢复之后,车早已撞上了。我们思考下,有没有一种服务运行于云端部署以及私有化部署之间?类似于我们尝尝讨论的混合云的思路?也就是说让服务集两者的优势于一体。这就提出了边缘计算的方式。
在场景的临近点部署服务,具有独立运行的能力和存储。云端部署与服务相匹配的服务。当云端的服务与比临近点部署的服务保证网络通畅时,可以无障碍的进行数据交互。当网络异常时,不影响临近点服务正常的工作。因为临近点服务具有运算以及存储能力,可以保证服务的正常运行;当网络恢复后,临近节点服务与云端服务恢复通讯,将数据从断开点恢复同步,这也就是其他文章里所有的云边协同的概念。说到这如果了解K8S,云端和临近点的工作是否有点像k8s里的master和node之间的关系,顺着这个思路,如果我们临近点服务部署就作为k8s里的一个node节点,这样对我们用k8s管理服务方便很多。但是这里有一个问题,K8S的master管理node时,前提是网络是保证OK的,一旦网络异常,master会认为node异常,会重启分配服务的。而我们上面说过云边协同的整个工作机制是在网络不可靠的情况,不改变服务的正常运行状态的。
这就是kubeedge的提出。他是基于k8s,做了一个开源的边缘管理的框架。
通过上面的图,大家应该能够理解他的大概工作流程。
这里提一点,kubeedge也是基于容器化部署的,与K8S可完美的结合,但是因为硬件资源有限,将kubelet进行了裁剪以及重写,可以认为是一个简化版的kubelet,以保证在低配置的硬件资源上可以运行。