乐趣区

关于腾讯云:虚拟节点轻松应对-LOL-S11-百万并发流量腾竞体育的弹性容器实践

作者

刘如梦,腾竞体育研发工程师,善于高并发、微服务治理、DevOps,次要负责电竞服务平台架构设计和基础设施建设。

詹雪娇,腾讯云弹性容器服务 EKS 产品经理,次要负责 EKS 虚构节点、容器实例相干的产品策划。

业务介绍

自 2019 年,腾竞整个电比赛事数据服务齐全由腾讯云 TKE 容器服务承载。腾比赛事数据开放平台目前次要提供职业赛事数据的受权与查问,随着斗鱼、虎牙、企鹅、掌盟、微信直播、微博等平台的相继接入,平台整体流量有了爆发式的增长。

此前 2021 英雄联盟寰球总决赛(以下简称 S11)期间更是创下了平台流量新高,达到了百万级 QPS、百亿级调用量。面对电比赛事此类周期性强、并发高的业务场景,无效疾速的主动扩缩容、晋升资源利用率,是满足业务高速倒退、正当管制老本的关键所在。

这里将介绍 LOL S11 赛事期间,腾比赛事数据开放平台如何通过 虚构节点弹性调度 +VPC-CNI 架构,轻松应答暴发的百万流量。

业务个性

电比赛事具备显著的业务个性,其对服务的主动伸缩能力有十分高的要求。

  • 周期性

电比赛事具备显著的周期性,较量时段是流量高峰期,其余工夫流量骤减,流量相差数百倍,须要通过弹性扩缩能力,缩小波谷时的冗余资源,降低成本。

  • 高并发

较量期间,服务须要承载百万级 QPS,须要疾速的扩容工夫、及库存短缺的资源池。

  • 突增快

    较量开始时,玩家开始大量涌入直播间,须要保障服务稳定性,防止突增流量过大引发集群雪崩。

架构介绍

整体架构

集群采纳 Istio 作为服务网格框架进行微服务治理,流量经由多条 CLB(解决单条 CLB 带宽下限)进入 Istio Ingress(直连 Pod)后进行流量散发,依靠于 Istio 的 Sidecar 模式,可能对各服务之间进行十分精细化的流量治理,例如:灰度、限流、熔断等等。

一般节点 + 虚构节点

开启 VPC-CNI 采纳直连 Pod 模式后,集群不再受 NodePort 网络转发能力的限度,大量惯例节点应答业务日常低负载场景,利用虚构节点弹性扩缩容能力应答赛事期间业务超高负载场景。

DevOps

基于 Docker 的 CI/CD 服务,反对多环境(云端、本地)、多集群编排服务,满足业务的不同部署需要。

弹性扩容计划演变

基于上述的业务个性,针对弹性扩容的计划,经验了【手动扩容 => 节点池 => 虚构节点】的一系列演变历程,目前的弹性扩容计划能够完满满足业务需要。

业务初期:手动扩容

业务初期,负载较低,依据业务特色,手动扩缩容根本能够满足需要。

因为手动扩缩容须要肯定的工夫窗口,因而须要搁置肯定数量的冗余资源应答突增流量,资源利用率较低,只有 6% 左右。

业务倒退中:节点池

随着业务倒退,周期性的高下峰流量特色愈发显著,面对高频的扩缩容需要时,手动扩缩容不仅人力老本较高,而且无奈防止人为失误。

在突增流量速度较慢的场景下,节点池能够较好满足业务需要,不过需配置服务器,扩容速度较慢,冗余资源仍存在,资源利用率较低。另外,缩容时对节点进行封闭、驱赶等操作,不利于服务的稳定性。

业务高速倒退:虚构节点,秒级扩容,节俭 30% 老本

业务高速倒退阶段,高下峰流量相差悬殊、并发逐步增高、突增流量工夫达到秒级,节点池的扩容速度不足以满足业务需要,还有购买服务器时库存有余的危险。

虚构节点是 TKE 提供的一种弹性调度能力,提供了近乎有限资源的扩容能力,能够间接将 Pod 调度至弹性容器服务 EKS 保护的云上资源中,无需扩容节点。相比节点池,虚构节点的扩容、缩容流程简化了购买、初始化、退还服务器的流程,大大晋升了弹性的速度,尽可能升高在扩容流程中可能呈现的失败,使得弹性更快、更高效、更节省成本。

在弹性效率层面,虚构节点可在数十秒内启动数以百计的 Pod,可能很好的应答 S11 这类高暴发业务场景。在老本层面,防止了一般节点因为无奈完满调配 Pod 申请的资源而产生的 buffer 资源,节俭了资源老本。

在此基础上,咱们联合业务侧数据,采取自动化资源预热的形式应答高频的突增流量场景;经营类业务场景则须要和经营部门紧密结合做好手动扩容的筹备。

网络转发计划优化

存在的问题

集群提供公网拜访入口时,默认状况下内部流量经由集群节点 NodePort 转发至集群外部,当虚构节点中部署的 Pod 数量较少,集群整体负载较低时,该模式不会有网络转发性能瓶颈。不过随着部署在虚构节点中的 Pod 数量增大,集群整体负载升高,就须要增加更多的节点用于网络转发,这与主动伸缩、疾速扩容、降低成本的指标背道而 驰。

优化计划

开启 VPC-CNI 后采纳直连 Pod 模式,容器与节点散布在同一网络立体,每个 Pod 调配有固定 IP,网络间接由 CLB 转入 Istio Ingress,不再经由 NodePort 转发,进步了网络转发效率,集群也不在须要网络转发节点,大大提高了集群的扩容能力。该模式下,集群扩容下限受到集群所调配网段可用 IP 数的限度,因而须要提前做好布局,防止集群扩容受限。

最终成果

通过虚构节点和 VPC-CNI 模式下直连 Pod 的联合,目前集群整体承载能力有了很大的晋升,在老本管制方面也有了长足的提高。

秒级扩缩容

通过虚构节点 +K8s HPA 能力,集群可在数十秒内启动数以百计的承载百万级流量的 Pod,能够轻松应答疾速扩缩容需要。再联合业务侧数据,自动化进行资源预热,晋升集群抗突增流量能力。缩容时也不再须要对节点进行封闭、驱赶等操作,进步了服务的稳定性。

百万承载

VPC-CNI 直连 Pod 解决了 NodePort 流量转发瓶颈的问题,加上虚构节点近乎有限资源的扩容能力大大提高了集群程度扩容的下限,像腾比赛事数据开放平台这样大量读的场景能 轻松扩容至百万乃至千万级 QPS

降低成本

虚构节点的高效扩缩容,配合 K8s 的 HPA 主动伸缩机制,缩小了资源的筹备和闲置工夫,防止一般节点中的碎片化资源问题,无效的进步了资源利用率,最终 为业务节俭了 30% 的老本

参考文档

容器服务 TKE:
https://cloud.tencent.com/doc…

虚构节点概述:
https://cloud.tencent.com/doc…

弹性集群:
https://cloud.tencent.com/doc…

VPC-CNI 模式介绍:
https://cloud.tencent.com/doc…

对于咱们

更多对于云原生的案例和常识,可关注同名【腾讯云原生】公众号~

福利:

①公众号后盾回复【手册】,可取得《腾讯云原生路线图手册》&《腾讯云原生最佳实际》~

②公众号后盾回复【系列】,可取得《15 个系列 100+ 篇超实用云原生原创干货合集》,蕴含 Kubernetes 降本增效、K8s 性能优化实际、最佳实际等系列。

③公众号后盾回复【白皮书】,可取得《腾讯云容器平安白皮书》&《降本之源 - 云原生老本治理白皮书 v1.0》

【腾讯云原生】云说新品、云研新术、云游新活、云赏资讯,扫码关注同名公众号,及时获取更多干货!!

退出移动版