天翼云基于 KubeEdge 的大规模 CDN 场景落地实践

本文来源:容器魔方

作者:中国电信天翼云 阮兆银

在去年11月举办的云原生边缘计算论坛中,中国电信天翼云容器研发技术专家阮兆银发表了主题为《天翼云基于KubeEdge的大规模cdn场景落地实践》的演讲。介绍了天翼云CDN在云化过程中,如何通过KubeEdge完成CDN边缘节点纳管、CDN边缘服务自动化部署升级以及边缘服务灾备等实践活动。

8c450f7560fff24406c237dab393e8f3.png

▲阮兆银 / 中国电信天翼云容器研发技术专家

演讲主要包含以下四个方面的内容:

1)天翼云CDN云化项目背景

2)基于kubeedge的边缘节点管理

3)边缘应用服务部署

4)未来架构演进方向思考

01

天翼云CDN云化项目背景

天翼云CDN业务背景

中国电信以“2+4+31+X”的资源布局加速云网融合。“X”是接入层面,把内容和存储放到离用户最近的地方,实现网随云动、入云便捷、云间畅达,满足用户按需选择和低时延需求。天翼云虽然CDN起步较晚,但是目前基本的CDN功能已一应俱全,且资源储备丰富,支持精准调度,秉承质量优先,整体业务发展正步入快车道。

6841505518512842a57ac0a1b9c8b409.png

边缘服务容器化背景

与其他云厂商和传统的CDN厂商不同,天翼云CDN起步较晚,但也恰逢云原生理念大行其道。因此,我们选择了通过容器与k8s编排技术构建CDN PaaS平台,但是CDN 边缘服务尚未完成云原生改造。

72a53dfba3811b1cdf3c97074e0c2a27.png

存在的问题:

  • 如何纳管大规模分布在边缘的CDN节点?

  • 如何对CDN边缘服务进行可靠的部署和升级?

  • 如何构建统一、可扩展资源调度平台?

02

基于kubeedge的边缘节点管理

CDN物理节点架构

CDN提供的缓存加速服务,解决最后一公里加速问题。为了满足就近接入和快速响应, 大部分CDN节点需要部署到近用户侧,通过CDN 全局流量调度系统将用户访问接入到就近节点。通常CDN节点具有呈离散分布的特点,大部分以各地区域IDC和地市级别IDC机房资源为主,每个边缘机房根据出口带宽和服务器资源规划,搭建多个CDN服务集群。

3ae8c43f554a78dfb3b8c3df106d7250.png

边缘服务容器化技术选型

在考虑做容器化的过程中,我们前期进行了技术选型和研究,主要是三个方向:

标准K8s:边缘节点以标准worker节点加入到master,但这种方式也会存在问题,如果连接过多容易造成Relist,k8s master端负载压力大;网络波动,造成pod被驱逐,导致不必要重建

分节点接入CDN边缘节点:分集群部署K8s或K3s。这种方式的控制面与集群过多,无法构建统一的调度平台,而且每个KPI集群若按高可用方式部署也至少需要3台,会过度占用机器资源;

云边接入:通过KubEedge方式接入,按照这种方式,可以收敛边缘节点连接,接入统一的K8S集群,并且提供云边协同,边缘自治等能力,还保留了大部分K8s的原生能力。

基于KubeEdge边缘节点纳管方案

f611fd38f03d76b5a85a97462bc1a825.png

上图是我们目前架构的示意图,我们在各区域中心及数据中心建若干个K8s集群,K8s集群下面是边缘按就近规划的接入到区域的集群。

为了避免单点接入,以及单k8s集群cloudcore 负载过大的问题,在各大区建设K8s集群,用于边缘节点的接入和应用编排管理。但在社区早期1.3版本中,当时提供的高可用方案只是单组多重这种高可用方式,而实际是无法满足我们大规模纳管的性能要求,因此我们后面在社区推出多组部署方式。

这种部署方式在早期使用的过程中并没有问题,但当接入的边缘节点,还有部署的容器数量过多时,这个问题就逐渐暴露出来:

cloudcore 多副本部署连接不均衡问题

41a9d14ff2068cec7d3d50249deb3610.png

上图为hub到upstream 最终提交到apiserver的示意图。中间 upstream模块有一部分的分发,它是用单携程的方式来运行,中间upstream模块,因为只有单携程,会导致消息提交过慢,边缘节点的一些node无法及时提交给apiserver,最终引起我们部署方面的一些异常。

后面我们把cloudcore按多副本去部署,又出现了在cloudcore进行升级或者一些意外重启过程中,会发现连接不均衡的问题。为了解决这个问题,我们在多副本之前,部署了4层的lb,并在lb上配置了诸如listconnection的负载均衡策略,但实际上像 ls这种负载4层的负载平衡,它都有一些筛选的缓存机制,并不能保证连接的均衡的分配。

基于以上背景我们进行了优化:

cloudcore多副本均衡优化方案

  • cloudcore 每个实例在启动后各自 通过configmap 的方式上报实时的连接数等信息;

  • cloudcore结合本地实例与其他实例的连接数, 计算每个机器的期望连接数

  • 计算本地连接数与期望连接数的相差比例,相差比例大于最大可容忍连接数差,进入连接待释放阶段,并进入一个30s 观察周期;

  • 观察过后,进入下一个检测周期,直到连接均衡。

76a41177033f1038c612e896679c38b0.png

连接数变化示意图

d6ae334b44871d0407e29f3ea2bbc7f6.png

重启之后的均衡情况

03

边缘应用服务部署

CDN加速服务整体流程

CDN它主要分为两大核心系统:调度系统和缓存系统。调度系统会实时采集全网的CDN链路情况,实时的节点的情况,以及节点的带宽成本的情况,从而决策出最优调度的覆盖数据,将这个数据推给Local Dns或302或hds的一个的调度器。

Local Dns拿到最优数据后,来进行 Dns的解析响应,用户端通过解析响应可就近接入到边缘集群,边缘集群因为涉及到缓存,有可能涉及到miss,如果miss后,它会回到上一层的缓存,一般会有两层或者三层的中转的缓存,最终回到原状。如果中转的缓存也没有,数据会再回到云站,这是CDN服务的整体流程。

7f03c0180482429c35d3f9245dd0026f.png

在缓存系统,一般不同产品的缓存会使用不同的服务,比如面向直播的流媒体的加速服务和一些静态的加速会有一些区别。这也给开发和维护造成了一些成本,后面它们的融合可能也是一个趋势。

CDN缓存服务的特点

  • 资源独占:缓存服务是要最大利用存储,机器上的存储和带宽的资源的一个服务,所以说它需要独占

  • 大规模高服用:规模很大,覆盖广,同个软件或同一台机器的缓存服务,可能要承接上万个域名,甚至10万域名

  • 容灾分区故障:容忍组内小部分节点的缓存丢失,或者是全局有少量的节点缓存失效,缓存过多会造成击穿,反之击穿就回到上层的缓存,造成访问延迟变大,最终引起服务异常。

  • 高可用:4/7层LB具备实时探测和切流、引流能力;L4 LB保证组内主机间的流量均衡;L7 LB通过一致性哈希尽量保证让每个url在组内只存一份副本

从以上的特征,我们看到CDN在部署中,要解决以下问题:

  • 如何让节点容器有序和可控的升级?

  • 如何进行版本的A/B 测试?

  • 如何对升级过程进行校验?

我们的升级部署方案包括:

分批升级与组内升级并发控制:

  • 创建分批升级任务

  • 控制器按指定机器进行升级

细粒度版本设置:

  • 创建主机粒度版本映射

  • 控制器增加pod 版本选择逻辑

优雅升级:

  • 通过lifecycle的 prestop/postStart 实现常规切流与恢复

  • 特殊场景联动GSLB进行切流

升级校验:Controller与监控系统联动,升级过程发现服务异常,及时终止与回滚

编排安全防护:Workload 粒度与pod粒度通过Adminsion Webhook增加校验是否符合期望修改与删除

3de1f11871541ad20f457396fe533139.png

基于kubeedge CDN边缘容器容灾与迁移

迁移步骤:

1)备份etcd,在新集群中restore;

2)切换接入DNS;

3)重启cloudcore 断开云边hub连接;

73864939892fd81433bd64d51e668856.png

优点:

  • 成本低,由于KubeEdge的边缘自治特性,边缘容器无重建,服务无中断;

  • 流程简单,可控,服务安全性高;

CDN大规模文件分发

需求场景:

  • CDN边缘服务配置

  • GSLB调度决策数据

  • 容器镜像预热任务

430f21deca75847e10d3c71750a0b019.png

04

未来架构演进方向思考

边缘计算挑战

资源管理:分布广泛,种类多,架构、规格不统一

网络时延、可靠:异构网络,移动网络等弱网环境,带宽受限,稳定性不足

安全:边缘服务更难形成统一的安全防护体系

业务多样:场景、业务种类多样

基于CDN的边缘计算平台基础能力

资源:

  • CDN节点覆盖广、潮汐特性特性资源冗余;

  • 通过Kubeedge提供了云边协同;

  • 可延伸端侧,具有异构资源部署与管理能力;

调度与网络:

  • 专用EDNS支持地市级精准调度 , 实现真正就近接入;

  • CDN服务与边缘计算服务统一调度;

  • 云边专用网络,管理通道、数据回传、动态加速网络更可靠;

  • 大规模V6支持

安全能力:

  • CDN Waf 抗D、流量清洗、近源拦截等;

  • 证书加速与安全,SSL硬件卸载、keyless无私钥方案,提供边缘安全接入;

网关:

  • 边缘调度与丰富的负载均衡能力;

  • 通用协议处理能力,常规流媒体协议,满足大多互联网加速场景

CDN边缘计算演进

边缘基础设施建设

  • 节点扩展边缘计算与CDN混合节点

  • 节点粒度的service mesh网络

  • 完善容器隔离与安全

  • CDN网关ingress 化、通用化

  • CDN边缘资源虚拟化

  • 构建边缘serverless 容器平台

  • 构建CDN调度与容器统一资源调度平台

业务探索

  • 离线计算类、视频编转码、视频渲染

  • 批量作业

  • 拨测、压测类

最后,欢迎大家加入KubeEdge社区,一起让边缘计算的生态更加繁荣!

边缘计算社区:促进边缘计算领域知识传播,中立,客观,如果您关注边缘计算、5G、物联网、云原生等领域请关注我们。

9ffdcc31ff64a17c47ef80adba565df2.gif

b01cd8764ac2a23853617eea8257b58f.gif


戳阅读原文,观看演讲视频!

原文链接:https://blog.csdn.net/weixin_41033724/article/details/122335098?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165934458816781683963646%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165934458816781683963646&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-19-122335098-null-null.nonecase&utm_term=%E8%87%AA%E5%BB%BAcdn

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/5687

(1)
上一篇 2022年10月1日 11:09
下一篇 2022年10月1日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml