Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >虚拟节点轻松应对 LOL S11 百万并发流量——腾竞体育的弹性容器实践

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

作者头像
腾讯云原生
发布于 2021-12-07 08:10:07
发布于 2021-12-07 08:10:07
1.1K0
举报

刘如梦,腾竞体育研发工程师,擅长高并发、微服务治理、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/document/product/457/6759】

虚拟节点概述:

【 https://cloud.tencent.com/document/product/457/53027】

弹性集群:

【 https://cloud.tencent.com/document/product/457/39804】

VPC-CNI 模式介绍:

【https://cloud.tencent.com/document/product/457/50355】

互动赢好礼

精读文章,回答问题赢好礼

Q1:常规集群引入虚拟节点需要注意些什么?

Q2:如何有效应对瞬时突增流量过大的场景?

12月8日上午11点由作者选出回答最佳的3位读者,送超可爱蓝鹅一只~

  往期精选推荐  

点个“在看”每天学习最新技术

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云原生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TKE基于弹性网卡直连Pod的网络负载均衡
作者周宏宇,后台开发,目前负责腾讯云TKE的接入层网络组件(Ingress、Service)。在团队中负责接入层组件的技术方案、开发测试以及相关的服务技术支持。 前言 Kubernetes在集群接入层设计并提供了两种原生资源Service和Ingress,分别负责四层和七层的网络接入层配置。 传统的做法是创建Ingress或LoadBalancer类型的Service来绑定腾讯云的负载均衡将服务对外暴露。这种做法将用户流量负载到用户节点的NodePort上,通过KubeProxy组件转发到容器网络中,但这种
腾讯云原生
2022/04/14
2.5K0
TKE基于弹性网卡直连Pod的网络负载均衡
容器服务 TKE 上服务暴露的几种方式
作者刘飞鸿,腾讯游戏高级工程师,热衷于开源、云计算相关技术。目前主要负责腾讯游戏后台架构设计和运维工作。 预备知识 1. K8S 上 Service 类型 ClusterIP 通过集群的内部 IP 暴露服务,选择该值,服务只能够在集群内部可以访问,这也是默认的 ServiceType。 NodePort 通过每个 Node 上的 IP 和静态端口(NodePort)暴露服务。NodePort 服务会路由到 ClusterIP 服务,这个 ClusterIP 服务会自动创建。通过请求:,可以从集群的外部访问
腾讯云原生
2020/09/14
2.1K0
降本超30%,智聆口语通过 TKE 注册节点实现 IDC GPU 节点降本增效实践
杨豪,腾讯云研发工程师,腾讯云智聆口语评测研发骨干。目前负责腾讯云智聆口语评测整体架构优化与系统迭代,专注于降本增效与服务可靠性提升。 邓琨,腾讯云高级研发工程师,专注于微服务云原生架构探索。负责智聆口语评测自动化运维上云建设,助力业务降本增效。 背景介绍 腾讯云智聆口语评测(Smart Oral Evaluation,SOE)是腾讯云推出的中英文语音评测产品,支持从儿童到成人全年龄覆盖的语音评测,提供单词、句子、段落、自由说等多种评测模式,从发音精准度、流利度、完整度等全方位打分机制,与专家打分相似度达
腾讯云原生
2023/01/09
3.2K0
降本超30%,智聆口语通过 TKE 注册节点实现 IDC GPU 节点降本增效实践
TKE 集群组建最佳实践
作者陈鹏,腾讯工程师,负责腾讯云 TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践,为客户业务保驾护航。
腾讯云原生
2020/06/02
1.5K0
TKE 集群组建最佳实践
Nginx Ingress on TKE 部署最佳实践
开源的 Ingress Controller 的实现使用量最大的莫过于 Nginx Ingress 了,功能强大且性能极高。Nginx Ingress 有多种部署方式,本文将介绍 Nginx Ingress 在 TKE 上的一些部署方案,这几种方案的原理、各自优缺点以及一些选型和使用上的建议。
imroc
2020/08/07
1.4K0
腾讯云容器服务TKE推出新一代零损耗容器网络
随着容器技术的发展成熟,越来越多的组件迁移到容器,在技术迁移过程中,数据库,游戏,AI 这些组件对容器网络性能(时延,吞吐,稳定性)提出了更高的要求。为了得到更优的时延和吞吐表现,各大云厂商都在致力于缩短节点内容器的网络访问链路,让数据包能尽可能快地转发到容器网卡。 腾讯云容器服务TKE 借助智能网卡推出新一代容器网络方案,实现了一个 Pod 独占一张弹性网卡,不再经过节点网络协议栈(default namespace),极大缩短容器访问链路和访问时延,并使 PPS 可以达到整机上限。基于新一代容器网络方
腾讯云原生
2020/11/19
2.7K1
kubernetes 降本增效标准指南|理解弹性,应用弹性
王孝威,腾讯云容器产品经理,热衷于为客户提供高效的 Kubernetes 使用方式,为客户极致降本增效服务。 弹性伸缩在云计算领域的简述 弹性伸缩又称自动伸缩,是云计算场景下一种常见的方法,弹性伸缩可以根据服务器上的负载,按一定的规则进行弹性的扩缩容服务器。 弹性伸缩在不同场景下的含义: 对于服务运行在自建机房的公司,弹性伸缩通常意味着允许一些服务器在低负载时进入睡眠状态,从而节省电费(以及用于冷却机器的水费和电费)。 对于使用在托管于云上的机房的公司而言,自动扩展可能意味着更低的费用,因为大多数云提供
腾讯云原生
2021/05/28
3.2K0
TKE上服务暴露的几种方式
预备知识 1. K8S 上 Service 类型 平台相关基础知识 2. TKE 上四层网络流量暴露方式 3. TKE 上七层网络流量暴露方式 4. TKE 上的 VPC-CNI 5. TKE 上 CLB 直通 Pod 6. TKE 使用已有负载均衡器 7. TKE 使用内网负载均衡器 8. TKE 部署 Nginx Ingress 实际业务场景中最佳实践 1. 对集群内暴露流量 1.1 四层协议 1.2 七层协议 2. 对集群外暴露流量 2.1 七层协议 2.2 四层协议 2.3 端口段规则 2.4 使用Istio
sherlock99
2020/09/07
2K0
TKE上服务暴露的几种方式
腾讯云私有化容器平台之网络
刚开始接触容器集群的人会发现,与在单节点上使用容器相比,容器集群一个很复杂的领域就是网络。Kubernetes 作为容器编排领域的事实标准,对容器集群的网络进行了合理抽象,并开放了容器网络标准 CNI,供各公司根据自身应用场景和底层基础设施选用开源方案或者自行实现一套网络插件。本文主要介绍腾讯云容器平台针对私有化不同场景的一些网络方案实践。
腾讯云原生
2020/02/14
9.4K0
腾讯云容器月报 | 一篇带你看完优秀上新,最飒的功能用起来
最新发布 腾讯云容器服务公有云版本(TKE 公有云版) 1. TKE 公有云版上线节点池功能 借助腾讯云容器服务节点池统一机型、统一标签和Taint、节点池动态扩缩容等功能,您可以方便快捷地创建、管理和销毁节点,以及实现节点的动态扩缩容。 【适用场景】:推荐使用节点池进行节点管理,以提高集群节点管理的易用性。 【解决痛点】:规范异构节点(机型配置不同)分组管理;降低集群频繁扩缩容操作成本;通过节点池标签快速制定业务调度规则,解决集群内应用程序调度规则复杂问题;便捷管理 Kubernetes 版本升级、Do
腾讯云原生
2022/04/14
8100
腾讯云容器月报 | 一篇带你看完优秀上新,最飒的功能用起来
搬砖武士|手把手教你在容器服务 TKE 上使用 LB直通 Pod
roc,腾讯工程师,负责腾讯云TKE的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践,为客户业务保驾护航。 什么是 LB 直通 Pod Kubernetes 官方提供了 NodePort 类型的 Service,即给所有节点开一个相同端口用于暴露这个 Service,大多云上 LoadBalancer 类型 Service 的传统实现也都基于 NodePort,即 LB 后端绑各节点的 NodePort,LB 接收外界流量,转发到其中一个节点的 NodePort 上,再通过 Kubern
腾讯云原生
2020/09/24
8560
腾讯云原生混合云-第三方集群弹EKS应对突发流量的利器
何鹏飞,腾讯云专家产品经理,曾作为容器私有云、TKEStack的产品经理兼架构师,参与腾讯云内部业务、外部客户容器化改造方案设计,目前负责云原生混合云产品方案设计工作。 胡晓亮,腾讯云专家工程师,专注云原生领域。目前负责开源社区TKEStack和混合云项目的设计和开发工作。 前言 混合云是一种部署形态,一方面企业可从资产利旧、成本控制、控制风险减少锁定等角度选择混合云。另一方面企业也可以通过混合业务部署获得不同云服务商的相对优势能力,以及让不同云服务商的能力差异形成互补。 而容器和混合云是天作之合,基于容
腾讯云原生
2021/05/21
2.1K0
像管理 Pod 一样管理 Node | TKE 节点池全面上线
晏子怡,腾讯云产品经理,目前负责TKE集群、网络及调度模块。 从 K8s 的声明式设计理念谈起 Pod 模板 K8s 最优雅精妙的一个设计理念在于声明式  API  的运用,而 Deployment 又是其中的集大成者。 如果没有 Deployment ,我们需要管理上万的单独 Pod, 为每一个 Pod 设置合适的资源需求,容器镜像版本,Label,Taints 等属性。同时,我们还需要保证每一个业务对应的 Pod 数量在合适的值,来适应流量波动并达到负载均衡。而通过 Deployment 提供的 Po
腾讯云原生
2020/12/21
1.2K0
最佳案例 | 日 PV 超百亿级的游戏营销服务云原生容器化之路
曹鑫,腾讯业务运维工程师,擅长大规模K8s集群运营和容器化,目前就职于 IEG 增值服务部 营销基础平台中心,现负责腾讯游戏数据营销服务上云和营销基础平台建设。 背景 游戏营销服务通过分析玩家在游戏内的行为数据,精准发起运营活动,实现拉新、拉活跃、拉付费、拉回流等效果,使游戏获得更大的收益。服务有如下特点: 节奏快,比如五五开黑节,九九战斗之夜,周年庆,活动仅持续数日 数量多,平均每天都会有几十个活动上线,而且活动种类繁多 访问量无法精准预估,很难精准的预测一次活动的访问量,玩家参与度经常超预期 访问量
腾讯云原生
2021/12/02
1.3K0
使用腾讯云容器服务TKE VS 自建k8s 集群
TKE(Tencent Kubernetes Engine) 是腾讯云提供的容器服务PAAS 平台,基于kubernetes, 集成了腾讯云vpc网络,负载均衡,存储等IAAS 资源,提供容器调度、日志、监控、镜像仓库,Helm编排,自动弹性伸缩,微服务治理,DevOps 等功能,为客户提供完整的企业级容器服务。
caryguo
2019/04/11
6.8K10
使用腾讯云容器服务TKE VS 自建k8s 集群
Kubernetes容器云平台实践
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。伴随着云原生技术的迅速崛起,如今Kubernetes 事实上已经成为应用容器化平台的标准,越来越受到企业的青睐,在生产中也应用的也越来越广泛。 我们的容器平台建设从2016年开始,大致经历了探索预研、体系建设和平台落地这样三个阶段。
孙杰
2019/10/29
2.9K0
Kubernetes容器云平台实践
kubernetes指南--弹性伸缩
弹性伸缩这种功能,不是很多系统都已经实现了,我们直接用就行了吗,为什么还需要个指南呢。 因为。。。。我们先来看看都有哪些相关知识点吧。。。
仙人技术
2020/04/29
3.5K0
kubernetes指南--弹性伸缩
玩转tke的混合网络模式
tke上腾讯云有提供2中网络模式,分别是Global Router(下面我们简称GR)和vpc-cni,这2种网络模式的优劣,如何选型可以参考https://cloud.tencent.com/document/product/457/44966,那么什么是tke的混合网络模式呢,首先我们看看tke的网络模式有哪几种。
聂伟星
2021/02/05
1.9K0
在腾讯云容器服务 TKE 中利用 HPA 实现业务的弹性伸缩
jokey,腾讯云容器产品工程师,热衷于云原生领域。目前主要负责腾讯云TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践。 概述 Kubernetes Pod 水平自动扩缩(Horizontal Pod Autoscaler,以下简称 HPA)可以基于 CPU 利用率、内存利用率和其他自定义的度量指标自动扩缩 Pod 的副本数量,以使得工作负载服务的整体度量水平与用户所设定的目标值匹配。本文将介绍和使用腾讯云容器服务 TKE 的 HPA 功能实现 Pod 自动水平扩缩容。 使用场景 H
腾讯云原生
2020/12/03
2.8K0
【大数据云原生系列】大数据系统云原生渐进式演进最佳实践
王玉君,腾讯云后台工程师,拥有多年大规模Kubernetes集群的开发运维经验。目前负责腾讯云TKE大规模Kubernetes集群的大数据应用托管服务。 谭春强,腾讯云后台工程师,拥有两年大数据EMR集群管控运维经验,目前负责腾讯云大数据EMR组件的容器化方向。 1.引言 随着云原生概念的兴起,越来越多的企业投身于云原生转型的浪潮,以解决传统应用面临的弹性能力不足、资源利用率较低、迭代周期较长等问题。通过云原生技术(如容器,不可变基础设施和声明式API等),使得企业在公有云、私有云和混合云等云环境构建和运
腾讯云原生
2020/09/22
4.1K0
推荐阅读
相关推荐
TKE基于弹性网卡直连Pod的网络负载均衡
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档