文 | SuperEdge 研发团队 FabEdge 研发团队 腾讯云容器中心边缘计算团队
来源|腾讯云原生加速器首期项目-博云
背景
在边缘计算的场景下,边缘节点和云端为单向网络,从云端无法直接访问边缘节点,导致了以下的问题:
为了使用户无感知单向网络带来的差异,FabEdge 与 SuperEdge 合作,实现在云边 podIp 直通。
1
SuperEdge 介绍
1.1 什么是 SuperEdge ?
SuperEdge 是 Kubernetes 原生的边缘容器方案,它将 Kubernetes 强大的容器管理能力扩展到边缘计算场景中,针对边缘计算场景中常见的技术挑战提供了解决方案,如:单集群节点跨地域、云边网络不可靠、边缘节点位于NAT网络等。这些能力可以让应用很容易地部署到边缘计算节点上,并且可靠地运行。SuperEdge 可以很方便地把分布在各处的计算资源放到一个 Kubernetes 集群中管理,包括但不限于:边缘云计算资源、私有云资源、现场设备,打造属于您的边缘 PaaS 平台。
SuperEdge 支持所有 Kubernetes 资源类型、API接口、使用方式、运维工具,无额外的学习成本。也兼容其他云原生项目,如:Promethues,使用者可以结合其他所需的云原生项目一起使用。
1.2 项目特性
SuperEdge 具有如下特性:
2
FabEdge 介绍
2.1 架构图
FabEdge 在 SuperEdge 的基础上,建立了一个基于 IPSec 隧道的,三层的数据转发面,使能云端和边缘端 POD 通过 IP 地址直接进行通讯,包括普通的 POD 和使用了 hostnework 的 POD ,以及通过 ClusterIP 访问 Service ,不论 Service 的 Endpoint 在云端或边缘端。
FabEdge 包括三个主要组件:
以上图环境为例,一共4个节点,两个云端的节点:node1, node2, 两个边缘节点:edge1, edge2。node1 和node2 运行 Flannel ,它们之间会有一个 flannel 管理的 VXLAN 的隧道。edge1 和 edge2 由 FabEdge 管理,会建立到运行 Connector 的节点 node1 的 IPSec 的隧道。同时,edge1 和edge2 加入了同一个 FabEdge 的 Community , 因此它们之间会有一条直连的 IPSec 隧道。在边缘节点上,POD 接入一个 Linux 的网桥,获取一个全局唯一的 IP 地址。
典型的访问场景如下
3
FabEdge与SuperEdge结合实现Service互访和podIp直通方案验证
在 SuperEdge 边缘独立集群中添加4个节点,2个节点(cloud-1和cloud-2)在云端和 master 节点在同一内网,2个节点(edge-1和edge-2)在边缘端。将 cloud-1 节点作为 connector 节点,将edge-1和edge-2加入 community 。具体的搭建过程,请参照 FabEdge文档¹。
3.2.1.1 cloud-2上的pod访问边缘端edge-1上的pod
FabEdge 在 edge-1 节点的 node 资源写入 cloud-1 的节点的内网 IP 和 flannnel.1 网卡的 mac 地址,将 edge-1 伪装成 cloud-1 节点。
metadata: annotations: flannel.alpha.coreos.com/backend-data: '{"VtepMAC":"cloud-1 flannel.1 mac"}' flannel.alpha.coreos.com/backend-type: vxlan flannel.alpha.coreos.com/kube-subnet-manager: "true" flannel.alpha.coreos.com/public-ip: cloud-1 内网ip
3.2.1.2 cloud-1上的pod访问边缘端edge-1上的pod
cloud-1 上的 pod,由于不需要通过 flannel 的网络将请求转发到 cloud-1 ,因此 pod 的请求不会经过 cloud-1 的 flannel.1
3.2.2 edge-1上的pod访问edge-2上的pod
由于 edge-1 和 edge-2 在同一个 community ,FabEdge 会在节点之间建立 ipsec vpn 隧道,边缘节点 pod 之间的请求,会通过 ipsec vpn 隧道进行转发。
3.3 验证结果
3.3.1 云端访边缘端
根据以上的测试结果可以得出以下的结论:
4
展望
FabEdge 和 SuperEdge 已完成了一期的集成工作,社区有不少小伙伴对这个联合方案感兴趣。两个开源社区主要研发团队也一直在推进合作,近期博云和腾讯云建立了开源技术合作关系,并且博云加入到腾讯云原生加速器项目中,双方将会进一步加强合作,为开源社区贡献优秀的开源项目。
后续 FabEdge 和 SuperEdge 还会找更多的边缘网络场景进行互相合作,确定会进行的一些 TODO 如下:
欢迎持续关注 FabEdge 和 SuperEdge 对边缘网络方面的支持。
———— / END / ————
腾讯SaaS加速器·产业升级实战派
腾讯SaaS加速器,作为腾讯产业加速器的重要组成部分,旨在搭建腾讯与SaaS相关企业的桥梁,通过资金、技术、资源、商机等生态层面的扶持,从战略到场景落地全方位加速企业成长,从而助力产业转型升级。