作者

刘如梦,腾竞体育研发工程师,擅长高并发、微服务治理、DevOps,首要担任电竞服务渠道架构规划和基础设施建设。

詹雪娇,腾讯云弹性容器服务EKS产品经理,首要担任 EKS 虚拟节点、容器实例相关的产品策划。

事务介绍

自 2019 年,腾竞整个电竞赛事数据服务完全由腾讯云 TKE 容器服务承载。腾竞赛事数据敞开渠道现在首要供给职业赛事数据的授权与查询,随着斗鱼、虎牙、企鹅、掌盟、微信直播、微博等渠道的相继接入,渠道全体流量有了爆发式的增加。

此前 2021英雄联盟全球总决赛(以下简称 S11) 期间更是创下了渠道流量新高,达到了百万级 QPS、百亿级调用量。面临电竞赛事此类周期性强、并发高的事务场景,有用快速的主动扩缩容、提高资源利用率,是满意事务高速开展、合理操控本钱的关键所在。

这儿将介绍 LOL S11 赛事期间,腾竞赛事数据敞开渠道如何通过 虚拟节点弹性调度+VPC-CNI 架构,轻松应对爆发的百万流量。

事务特性

电竞赛事具有显着的事务特性,其对服务的主动弹性才能有十分高的要求。

  • 周期性

电竞赛事具有显着的周期性,比赛时段是流量高峰期,其余时刻流量骤减,流量相差数百倍,需求通过弹性扩缩才能,削减波谷时的冗余资源,降低本钱。

  • 高并发

比赛期间,服务需求承载百万级 QPS,需求快速的扩容时刻、及库存充足的资源池。

  • 突增快

比赛开端时,玩家开端大量涌入直播间,需求保证服务稳定性,防止突增流量过大引发集群雪崩。

架构介绍

全体架构

集群选用 Istio 作为服务网格框架进行微服务治理,流量经由多条 CLB(处理单条 CLB 带宽上限)进入 Istio Ingress(直连Pod)后进行流量分发,依托于 Istio 的 Sidecar 形式,能够对各服务之间进行十分精细化的流量办理,例如:灰度、限流、熔断等等。

虚拟节点轻松应对 LOL S11 百万并发流量——腾竞体育的弹性容器实践

一般节点+虚拟节点

敞开 VPC-CNI 选用直连 Pod 形式后,集群不再受 NodePort 网络转发才能的约束,少量常规节点应对事务日常低负载场景,利用虚拟节点弹性扩缩容才能应对赛事期间事务超高负载场景。

虚拟节点轻松应对 LOL S11 百万并发流量——腾竞体育的弹性容器实践

DevOps

依据 Docker 的 CI/CD 服务,支持多环境(云端、本地)、多集群编排服务,满意事务的不同布置需求。

虚拟节点轻松应对 LOL S11 百万并发流量——腾竞体育的弹性容器实践

弹性扩容计划演变

依据上述的事务特性,针对弹性扩容的计划,经历了【手动扩容=>节点池=>虚拟节点】的一系列演变进程,现在的弹性扩容计划能够完美满意事务需求。

事务初期:手动扩容

事务初期,负载较低,依据事务特征,手动扩缩容根本能够满意需求。

因为手动扩缩容需求必定的时刻窗口,因此需求放置必定数量的冗余资源应对突增流量,资源利用率较低,只有6%左右。

事务开展中:节点池

随着事务开展,周期性的高低峰流量特征愈发显着,面临高频的扩缩容需求时,手动扩缩容不仅人力本钱较高,而且无法防止人为失误。

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

事务高速开展:虚拟节点,秒级扩容,节省30%本钱

事务高速开展阶段,高低峰流量相差悬殊、并发逐步增高、突增流量时刻达到秒级,节点池的扩容速度不足以满意事务需求,还有置办服务器时库存不足的风险。

虚拟节点是 TKE 供给的一种弹性调度才能,供给了近乎无限资源的扩容才能,能够直接将 Pod 调度至弹性容器服务 EKS 维护的云上资源中,无需扩容节点。比较节点池,虚拟节点的扩容、缩容流程简化了购买、初始化、退还服务器的流程,大大提高了弹性的速度,尽或许降低在扩容流程中或许出现的失利,使得弹性更快、更高效、更节省本钱。

在弹性功率层面,虚拟节点可在数十秒内发动数以百计的 Pod,能够很好的应对 S11 这类高爆发事务场景。在本钱层面,防止了一般节点因为无法完美分配 Pod 申请的资源而发生的 buffer 资源,节省了资源本钱。

在此基础上,咱们结合事务侧数据,采取主动化资源预热的方式应对高频的突增流量场景;运营类事务场景则需求和运营部门紧密结合做好手动扩容的预备。

网络转发计划优化

存在的问题

集群供给公网拜访入口时,默认情况下外部流量经由集群节点 NodePort 转发至集群内部,当虚拟节点中布置的 Pod 数量较少,集群全体负载较低时,该形式不会有网络转发功能瓶颈。不过随着布置在虚拟节点中的Pod数量增大,集群全体负载升高,就需求添加更多的节点用于网络转发,这与主动弹性、快速扩容、降低本钱的目标背道而 驰。

虚拟节点轻松应对 LOL S11 百万并发流量——腾竞体育的弹性容器实践

优化计划

敞开 VPC-CNI 后选用直连 Pod 形式,容器与节点散布在同一网络平面,每个 Pod 分配有固定 IP,网络直接由 CLB 转入 Istio Ingress,不再经由 NodePort 转发,提高了网络转发功率,集群也不在需求网络转发节点,大大提高了集群的扩容才能。该形式下,集群扩容上限遭到集群所分配网段可用 IP 数的约束,因此需求提早做好规划,防止集群扩容受限。

虚拟节点轻松应对 LOL S11 百万并发流量——腾竞体育的弹性容器实践

终究效果

通过虚拟节点和 VPC-CNI 形式下直连 Pod 的结合,现在集群全体承载才能有了很大的提高,在本钱操控方面也有了长足的进步。

秒级扩缩容

通过虚拟节点+K8s HPA 才能,集群可在数十秒内发动数以百计的承载百万级流量的Pod,能够轻松应对快速扩缩容需求。再结合事务侧数据,主动化进行资源预热,提高集群抗突增流量才能。缩容时也不再需求对节点进行封锁、驱赶等操作,提高了服务的稳定性。

百万承载

VPC-CNI 直连 Pod 处理了 NodePort 流量转发瓶颈的问题,加上虚拟节点近乎无限资源的扩容才能大大提高了集群水平扩容的上限,像腾竞赛事数据敞开渠道这样大量读的场景能轻松扩容至百万甚至千万级 QPS

降低本钱

虚拟节点的高效扩缩容,合作 K8s 的 HPA 主动弹性机制,削减了资源的预备和闲置时刻,防止一般节点中的碎片化资源问题,有用的提高了资源利用率,终究为事务节省了30%的本钱

参阅文档

容器服务 TKE: cloud.tencent.com/document/pr…

虚拟节点概述: cloud.tencent.com/document/pr…

弹性集群: cloud.tencent.com/document/pr…

VPC-CNI 形式介绍: cloud.tencent.com/document/pr…

关于咱们

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

福利:

①大众号后台回复【手册】,可获得《腾讯云原生路线图手册》&《腾讯云原生最佳实践》~

②大众号后台回复【系列】,可获得《15个系列100+篇超实用云原生原创干货合集》,包含Kubernetes 降本增效、K8s 功能优化实践、最佳实践等系列。

③大众号后台回复【白皮书】,可获得《腾讯云容器安全白皮书》&《降本之源-云原生本钱办理白皮书v1.0》