开启生长之旅!这是我参加「日新计划 2 月更文应战」的第 13 天,点击查看活动概况

KubeEdge 是一个开源体系,可将本机容器化的业务流程和设备办理扩展到Edge上的主机。它依据Kubernetes构建,并为网络、运用程序布置以及云与边际之间的元数据同步供给核心根底架构支撑。它还支撑MQTT,并答应开发人员编写自界说逻辑并在Edge上启用资源受限的设备通讯。KubeEdge由云部分和边际部分组成,边际和云部分现已开源。

1.KubeEdge基本原理介绍

1.1 KubeEdge架构概览

KubeEdge架构首要分为云,边,端三个部分。云上首要为KubeEdge的操控面,边为KubeEdge的边际节点,端为与边际节点衔接的端侧设备,比方摄像头和传感器等。云上对接了K8s的操控平面。KubeEdge的云上组件CloudCore首要会获取一些K8s操控面上的云数据,

再经过DeviceController做一些处理,然后再经过下边的PubHub与边端进行通讯。边端的EdgeCore会接纳PubHub传过来的数据,把云上的操控指令和用户数据拿下来。除此之外,EdgeCore首要做了边际侧运用办理和设备办理。运用办理才能对接了依据CNI规范的容器引擎。比方container d和docker,用来办理容器的生命周期。设备办理才能首要经过mapper组件完成了多设备接入办理。

KubeEdge还引进了EdgeMesh插件用来供给边际节点之间的服务互相拜访才能。

玩转KubeEdge

1.2 CloudCore组件介绍

CloudCore组件中的EdgeController和List/watch,K8s的元数据进行边际节点的办理以及运用状况元数据的边际协同。Device Controller界说了设备笼统API,比方Device的CRD。担任接入和办理边际设备。Sync Controller首要担任运用层边际协同牢靠性,保持云边数据始终共同。CSI Driver用于支撑第三方CSI插件的无缝集成。Admission Webhook首要运用于完成边际运用最佳实践,扩展API输入校验。CloudHub用于边云数据通道,担任分发与接纳音讯。

玩转KubeEdge

1.3 edgecore组件介绍

CloudCore组件中的CloudHub模块与边际节点树立数据通道,实践上便是和EdgeHub模块树立双向的衔接,它会担任供给牢靠的双向衔接同步,CloudHub和EdgeHub之间的数据通道是一条Websocket层衔接,确保了云边的一个内网穿透,云边之间的衔接也能够挑选kata作为数据通道的协议。在弱网环境下会有更好地QOS,MetaManager是EdgeCore元数据的本地化模块,用来将云上的数据保存在本地供其他模块运用,比方KubeEdge的离线自治才能运用到MetaManager的才能。MetaServer是MetaManager的子模块,是KubeEdge在1.7版别引进的新功能,能够在边际供给K8s引进的原生APi拜访,是的K8s Operator能够无差别的运行在边际节点上。Edged模块首要引用了上游K8s的Kubelet-Lite,并做了轻量化的定制,用户也能够依据自己的需求定制不同的场景需求。Edged的首要职责是与依据CNI规范的容器引擎进行对接。EventBus本质是一个MQTT客户端,它界说了一系列的设备音讯,用于和边际设备进行无感知通讯。

玩转KubeEdge

1.4 EdgeMesh 插件介绍

EdgeMesh是KubeEdge在边际场景下的网络边际多边互通的一个解决方案。EdgeMesh归于KubeEdge架构内的一部分,EdgeMesh分为EdqeMesh-Server和EdgeMesh-Agent两个组件。EdqeMesh-Server是一个协调者,一起也承担了数据中继器的角色,EdgeMesh-Agent布置在

K8s节点和边际节点,担任署理运用上的数据传输。EdgeMesh的Tunnel-Server模块首要担任与Tunnel-Agent树立衔接,帮忙P2P打洞以及为EdgeMesh-Agent 供给中继才能。EdgeMesh-Agent包含Proxier模块担任装备内核的iptables规矩,将恳求阻拦到EdgeMesh-Agent进程内。DNS模块是一个内置的DNS解析器,担任将节点内的域名恳求解析成一个服务的集群IP。Traffic模块是一个依据Go-Chassis框架的流量转发模块,担任转发运用间的流量。Controller模块经过KubeEdge的边际侧MetaServer的才能获取Services、Endpoints、Pods等元数据。Tunnel-Agent模块运用中继和打洞技术来供给跨子网通讯的才能。

玩转KubeEdge

在EdgeMesh插件布置到KubeEdge集群后,Agent与Agent之间会树立Peer衔接,经过边际侧List/watch来监听元数据的改变。proxier模块会担任装备主机的iptables阻拦规矩用来阻拦运用流量。当节点的运用运用Cluster Ip或服务域名的方法来拜访运用,EdgeMesh-Agent的DNS模块会担任将域名解析成Cluster IP,EdgeMesh-Agent再依据规矩对后端实例进行负载均衡。经过从前的地道或许中继转发的方法传递到另一端,这便是EdgeMesh-Agent的大致作业原理。

玩转KubeEdge

玩转KubeEdge

2.KubeEdge环境建立与运用

KubeEdge环境建立与运用这一章节首要从运用华为云CCE服务创立K8s集群,运用OSC建立KubeEdge环境,依据KubeEdge开发边际运用来介绍。

2.1 运用华为云CCE服务创立K8s集群

登录华为云账号,进入华为云CCE服务操控台

华为云CCE服务操控台链接:www.huaweicloud.com/s/JWNjZSU

点击立即运用

玩转KubeEdge

点击创立CCE集群

玩转KubeEdge

依据业务所在位置挑选合适位置,输入集群称号,挑选集群项目和版别。能够依据实践情况进行挑选

玩转KubeEdge

点击创立节点

玩转KubeEdge

按需挑选后点击下一步装置插件

玩转KubeEdge

然后点击承认装备,并进行提交付出

玩转KubeEdge

大概等待8分钟CCE集群能够创立完毕

玩转KubeEdge

下面一步要创立结点池,为了确保运用的可用性,节点数量尽量挑选大于等于2个,当然,在实践业务中要依据特定需求去挑选节点的规格,操作体系。

网络装备依据需求进行装备

玩转KubeEdge

承认信息无误后进行提交,等待3-5分钟节点创立完成。

创立完成后咱们对节点按照下图操作进行装备,若没有弹性公网IP还需求单独购买。

一起安全组需求将20004-20008放开。

玩转KubeEdge

2.1 建立KubeEdge环境

这一节咱们首要解说如何运用华为云建立KubeEdge环境。

翻开浏览器,进入OSC操控台:console.huaweicloud.com/osc

玩转KubeEdge

首先订阅CloudCore,点击创立CloudCore服务,区域与之前挑选保持共同,服务称号能够挑选默许。

玩转KubeEdge

在实例参数这一列填写咱们之前绑定的公网IP,在nodeName填写咱们之前填写的节点称号。完成后点击提交。使命提交之后实例会进行装置,需求等待3-5分钟。

玩转KubeEdge

在作业负载界面能够看到CloudCore已经创立。点击Cloudshell进入终端界面。

咱们能够经过下列指令去操作集群。

kubege get nodes

玩转KubeEdge

CloudCore装置完成后能够运用keadm纳管边际节点。

翻开github进入kubeedge挑选对应版别边际节点装置包进行下载。

将下载解压好的压缩包放入体系根目录下。

运用keadm join 命令进行增加操作

玩转KubeEdge

咱们回到CCE界面,翻开Cloudshell,输入kubecli nodes,能够看到咱们的边际节点已经被归入到边际节点中。

玩转KubeEdge

在CloudShell界面,咱们需求修正clusterDNS和clusterDomain参数,这是为了咱们后续能够阻拦DNS恳求。装备完成后进行保存。

输入systemmctl restart edgecore对体系进行重启。

玩转KubeEdge

最后,咱们需求创立EdgeMesh服务实例,点击订阅并创立实例,其余过程同CloudCore装备。

玩转KubeEdge

2.3 依据KubeEdge开发边际运用

边际运用有许多实践操作场景,咱们依托KubeEdge example作为一个解说。

KubeEdge example链接:www.github.kubeedge/example

咱们首要运用KubeEdge Counter Demo,其首要运用架构如下图,其首要分为两部分,云上有一个web Controller用于操控并下发指令到边际,边际有一个Counter接纳云上指令,将状况改为云上的期望值。

玩转KubeEdge

咱们首先将example仓库克隆到本地,登录到开发机(引荐运用linux体系),克隆example体系。

玩转KubeEdge

进入到CRD目录,将app的yaml进行修正,将image改成hw的镜像地址

玩转KubeEdge

回到顶层目录将crd进行打包,并进行上传到Cloudshell中。

玩转KubeEdge

上创后还需求进行解压操作,接下来创立Controller运用和边际运用

玩转KubeEdge

接下来咱们挑选创立节点拜访类型service对其进行公网IP和端口拜访该计数器demo。

玩转KubeEdge

web展示情况如图所示。点击后边际计数器就会开端计数。

玩转KubeEdge

3.总结

本文首要解说了KubeEdge基本原理和怎样经过华为云布置建立KubeEdge运用。跟着5G通讯的商用,万物互联年代快速到来,网络边际的设备数量、产生的数据迸发增长,集中式的数据中心(包含公有云服务)将面对实时性、带宽、能耗、数据隐私的应战,越来越多的场景需求运用边际核算。在K8s上,能够经过K3s、Microk8s、KubeEdge三种架构完成边际核算,KubeEdge以边云协同、边际侧的轻量和边际自治才能而取得更多运用。