作者|浙江大学 SEL 实验室:晋晨、博云:耿浩涛

审核&校对:海珠

编辑&排版:雯燕

背景

在近几年的产业环境下,传统云计算能力已无法支撑起规模日趋庞大且异地分散的数据处理与计算需求,基于此,边缘计算应势而起。尤其是在 5G、物联网等新技术的持续推动下,边缘计算产业已然走向大风口。尽管目前边缘计算发展已经进入实践阶段,但仍然存在一些问题,尤其是网络成为边缘计算落地的一个痛点。这是因为边缘网络和数据中心网络有本质的不同:

  • 边缘环境一般是弱网环境,使用 5G,WiFi 等无线连接,延时大,丢包率高,不稳定。

  • 边缘节点一般没有固定的公网地址,只能发起连接,不能接收连接。

  • 边缘网络一般会使用的 Internet,它本身是一个不安全的网络。

OpenYurt 是业界首个非侵入的边缘计算云原生开源项目,架构中的 Yurt-Tunnel 主要解决控制面的运维监控流量的云边通信。然而,OpenYurt 不准备自行解决跨公网的云边,边边的数据面通信的问题,希望可以和开源社区云原生网络相关的成熟解决方案合作(比如 FabEdge 社区),共同推动边缘计算云原生生态建设。

FabEdge 是一个专门针对边缘计算场景设计的,基于 Kubernetes 的容器网络方案,它符合 CNI 规范,可以无缝集成任何 Kubernetes 环境,解决边缘计算场景下云边协同,边边协同等跨地域通讯的难题。

背景介绍 OpenYurt 与 FabEdge 集成

1)OpenYurt 搭建准备

阿里云 ECS 服务节点

两个云端节点(master,cloud-node,操作系统:CentOS Linux release 7.9.2009 (Core)),处于同一个内网中,在云端部署 Flannel(v0.14.0) 网络插件。OpenYurt 集群组件:Yurt-Tunnel-Server,Yurt-Controllor-Manager。

两个边缘节点(edge-node1,edge-node2,操作系统同上)。OpenYurt 集群组件:Yurt-Tunnel-Agent,Yurt-Hub。

2)OpenYurt 与 FabEdge 集成部署

OpenYurt(v0.5.0) 部署参考:

OpenYurt 手动部署:

https://github.com/openyurtio/openyurt/blob/master/docs/tutorial/manually-setup.md

Kubernetes 一键转换 OpenYurt:

https://github.com/openyurtio/openyurt/releases

OpenYurt 部署注意事项:

  • 在部署 Yurt-Tunnel-Server 时,因为 Tunnel-Server 证书认证的 IP 默认为私网 IP,因此需要将 tunnel-server 中的 args 加入参数--cert-ips=tunnel-server,即 tunnel-server 所在节点的公网 IP;

  • 相同的,在部署 Yurt-Tunnel-Agent 时,因为 Tunnel-Agent 需要和 Tunnel-Server 建立连接,因此需要在 Tunnel-Agent 中 args 加入参数--tunnelserver-addr,即 Tunnel-Server 所在节点的公网 IP 加上暴露的端口。

FabEdge 与 OpenYurt 集成参考:

https://github.com/FabEdge/fabedge/blob/main/docs/integrate-with-openyurt.md

FabEdge 验证测试

集成环境总体分为两种情况:云端 Pod 访问边缘 Pod 以及边缘 Service,边缘 Pod 访问云端 Pod 以及 Service。

同时,我们考虑到 hostNetwork 网络类型 Pod 对集群环境有着很大的依赖,故将 Pod 分为 hostNetwork 类型以及正常容器网络类型两种场景。

说明:在 Pod 访问 Service 时,将其 Endpoint 中的 Pod 分为 hostNetwork 类型和正常容器类型 Pod。

总结

  • 目前仅对跨公网的云边通信进行测试,功能基本满足需求。后续会根据实际业务需求再展开跨公网的边边测试。

  • FabEdge 对边缘环境中现存的容器网络方案(如 flannel,calico)进行接管,同时云端又需要部署完整的容器网络方案,对存量用户的升级可能带来影响。

这里,立即了解 OpenYurt 项目!

OpenYurt 与 FabEdge 集成验证——云边数据面通信初试的更多相关文章

  1. 使用 Iceberg on Kubernetes 打造新一代云原生数据湖

    背景 大数据发展至今,按照 Google 2003年发布的<The Google File System>第一篇论文算起,已走过17个年头.可惜的是 Google 当时并没有开源其技术,& ...

  2. 英特尔® 至强® 平台集成 AI 加速构建数据中心智慧网络

    英特尔 至强 平台集成 AI 加速构建数据中心智慧网络 SNA 通过 AI 方法来实时感知网络状态,基于网络数据分析来实现自动化部署和风险预测,从而让企业网络能更智能.更高效地为最终用户业务提供支撑. ...

  3. spring boot集成阿里云短信发送接收短信回复功能

    1.集成阿里云通信发送短信: 在pom.xml文件里添加依赖 <!--阿里短信服务--> <dependency> <groupId>com.aliyun</ ...

  4. 阿里云智能数据构建与管理 Dataphin公测,助力企业数据中台建设

    阿里云智能数据构建与管理 Dataphin (下简称“Dataphin”)近日重磅上线公共云,开启智能研发版本的公共云公测!在此之前,Dataphin以独立部署方式输出并服务线下客户,已助力多家大型客 ...

  5. django之集成阿里云通信(发送手机短信验证码)

    python3 + django2.0 集成 "阿里云通信" 服务: (SDK文档地址:https://help.aliyun.com/document_detail/55491. ...

  6. 基于Apache Hudi在Google云构建数据湖平台

    自从计算机出现以来,我们一直在尝试寻找计算机存储一些信息的方法,存储在计算机上的信息(也称为数据)有多种形式,数据变得如此重要,以至于信息现在已成为触手可及的商品.多年来数据以多种方式存储在计算机中, ...

  7. atitit.数据验证--db数据库数据验证约束

    atitit.数据验证--db数据库数据验证约束 1. 为了加强账户数据金额的安全性,需要增加验证字段..1 2. 创建帐户1 3. 更改账户2 4. ---code3 5. --fini4 1. 为 ...

  8. Pycharm集成码云,图文手把手教学!

    Pycharm集成码云 码云(http://gitee.com)是开源中国推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管 可以通过码云保管你的代码,每次修改完代码提交,就是一个版 ...

  9. Fluid + GooseFS 助力云原生数据编排与加速快速落地

    前言 Fluid 作为基于 Kubernetes 开发的面向云原生存算分离场景下的数据调度和编排加速框架,已于近期完成了 v0.6.0 版本的正式发布.腾讯云容器 TKE 团队一直致力于参与 Flui ...

随机推荐

  1. P4332-[SHOI2014]三叉神经树【LCT】

    正题 题目链接:https://www.luogu.com.cn/problem/P4332 题目大意 给出\(n\)个点的一棵有根三叉树,保证每个点的儿子个数为\(3\)或者\(0\),每个叶子有一 ...

  2. P5631-最小mex生成树【线段树,并查集】

    正题 题目链接:https://www.luogu.com.cn/problem/P5631 题目大意 \(n\)个点\(m\)条边的一张图,求\(mex\)值最小的一棵生成树. 解题思路 考虑比较暴 ...

  3. Jmeter压测学习1—第一个项目:登录

    我用的是我们公司的测试环境练习的 网址:http://****:9000/login.html  账号是admin 密码:123456 一.打开Jmeter 找到安装目录:bin->Jmeter ...

  4. 关于国密HTTPS 的那些事(一)

    关于国密HTTPS 的那些事(一) 随着<密码法>密码法的颁布与实施,国密的应用及推广终于有法可依.而对于应用国密其中的一个重要组成部分----国密HTTPS通信也应运而生.为了大家更好的 ...

  5. WPF实现统计图(饼图仿LiveCharts)

    WPF开发者QQ群: 340500857  | 微信群 -> 进入公众号主页 加入组织 每日一笑 下班和实习生一起回家,公交站等车,一乞丐把碗推向实习生乞讨.这时,实习生不慌不忙的说了句:&qu ...

  6. 如何通过云效Flow完成自动化构建—构建集群

    如何通过云效Flow完成自动化构建-构建集群,云效流水线Flow是持续交付的载体,通过构建自动化.集成自动化.验证自动化.部署自动化,完成从开发到上线过程的持续交付.通过持续向团队提供及时反馈,让交付 ...

  7. 微信小程序的登录流程

    一.背景 传统的web开发实现登陆功能,一般的做法是输入账号密码.或者输入手机号及短信验证码进行登录 服务端校验用户信息通过之后,下发一个代表登录态的 token 给客户端,以便进行后续的交互,每当t ...

  8. Codeforces Round #748 (Div. 3)

    Codeforces Round #748 (Div. 3) A. Elections 思路分析: 令当前值比最大值大即可,如果最大值是它自己,就输出\(0\) 代码 #include <bit ...

  9. 锚点布局anchorlayout在kv中的引用

    from kivy.app import App from kivy.uix.anchorlayout import AnchorLayout from kivy.uix.button import ...

  10. Java:ConcurrentHashMap类小记-1(概述)

    Java:ConcurrentHashMap类小记-1(概述) 对 Java 中的 ConcurrentHashMap类,做一个微不足道的小小小小记,分三篇博客: Java:ConcurrentHas ...