《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.2 游戏容器化部署最佳实践(3)

简介: 《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.2 游戏容器化部署最佳实践(3)

《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.2 游戏容器化部署最佳实践(2) https://developer.aliyun.com/article/1232001?groupCode=supportservice



3. 弹性伸缩


ACK 容器服务弹性包括如下两个层面:


调度层弹性,主要是负责修改负载的调度容量变化。例如,HPA是典型的调度层弹性组件,通过HPA可以调整应用的副本数,调整的副本数会改变当前负载占用的调度容量,从而实现调度层的伸缩。


资源层弹性,主要是集群的容量规划不能满足集群调度容量时,会通过弹出

ECS或ECI等资源的方式进行调度容量的补充。两层的弹性组件与能力可以分开使用,也可以结合在一起使用,并且两者之间是通过调度层面的容量状态进行解耦。


•调度层弹性组件

image.png


HPA是k8s的workload的副本数进行自动水平扩缩容(scale)机制,其通过监控业务繁忙情况,在业务忙时,就要对workload扩容副本数;业务空闲时,缩容减少副本数。而默认进行调整的指标只有集群资源的cpu和mem使用率。


容器垂直伸缩(VPA),VPA会基于Pod的资源使用情况自动为集群设置资源占用

的限制,从而让集群将Pod调度到有足够资源的最佳节点上。VPA也会保持最初容器定义中资源request和limit的占比。但是该机制的有些功能目前是处于试验阶段,需要考虑谨慎使用。



•资源层弹性组件


image.png


除了常规的ECS实例,容器服务还提供了虚拟节点(Virtual1Node)功能,实现了Kubernetes与阿里云弹性容器实例ECI(Elastic1Container1Instance)无缝连接,让Kubernetes集群轻松获得极大的弹性能力,而不必受限于集群的节点计算容量。可以灵活动态地按需创建ECIPod,免去集群容量规划的麻烦。


image.png


•弹性伸缩


通过 Horizontal Pod Autoscaler 按指标弹性扩缩容

游戏服务随着玩家上线的多少,是存在波峰波谷的,如果设置固定的资源

Request注定在波谷时会造成资源浪费,针对这样的场景,需要通过HPA基于默认的指标(CPU,内存的利用率)来自动扩容deployment和statefulset中的Pods副本数量,实现资源使用波峰或者流量突增的时候可以自动增加业务负载的副本数量,波谷或者流量较少的时候可以自动减少业务负载的副本数量,将有效提升资源整体利用率。


通过 Vertical Pod Autoscaler 垂直扩缩容

Vertical Pod Autoscaler,以下简称 VPA,K8S Pod垂直自动扩缩,可以自动调整Pod的CPU和内存预留,用于提高集群资源利用率并释放CPU和内存供其它Pod使用。相较于水平自动伸缩功能HPA,其不需要调整pod副本数量,具有扩容速度更快,可以对有状态应用进行扩容(HPA不适合有状态的应用水平扩容)。自动伸缩特性使容器服务具有灵活的自适应能力。应对业务负载急剧飙升的情况,VPA能够在设定范围内快速扩大容器的Request。在业务负载变小的情况下,VPA可根据实际情况适当缩小Request节省计算资源。适用于需要快速扩容、有状态应用扩容等场景。


通过Cluster Autoscaler自动调整节点x数量


HPA和VPA,都是在业务负载层面的自动扩缩副本数量,以灵活应对流量的波峰波谷,提升资源利用率。但是其使用的范围是要求集群有空闲的资源,整个集群资源总数是固定的,HPA和VPA只有在集群有更足够的资源情况下才有效,当集群内整体资源不足,那么就需要Cluster1Autoscaler的组件能力来实现自动扩缩集群规模,在业务波峰自动扩容节点、业务波谷时减少集群的节点数 。


提升CA扩容节点的速率

极速模式-Qboot镜像

停机不收费

提前占位

提前占位


其中Qboot镜像基于Alibaba Cloud Kernel,并直接从内核引导虚拟机启动的定制化镜像。使用该镜像创建的ECS实例相比其它镜像创建的ECS实例,启动速度得到了极大的提升,并且默认运行时与标准镜像完全一致。


通过虚拟节点获得 Serverless 能力

虚拟节点并不是节点,而是一种调度能力,可以将Kubernetes集群中的应用

Pod调度到集群节点之外的资源中,而该资源不需要免客户维护的。阿里云容器服务基于虚拟节点和ECI提供了这种Serverless Container产品形态,ACK on ECI,可以在ACK集群中通过组件管理页面部署ack-virtual-node组件,Virtual Node Controller默认被托管,提供免运维、强隔离、快速启动的容器运行环境。使用ECI无需购买和管理底层ECS服务器,可以关注在容器应用而非底层基础设施的维护工作,有效提升计算弹性效率。


弹性负载-Elastic Workload

综上所述,在Kubernetes中,弹性包括调度层弹性(Pod)和资源层弹性(Node)两个层次,通常会通过HPA、VPA等模型进行Pod的弹性伸缩,再通过cluster-autoscaler或者virtual-kubelet进行资源层的弹性伸缩。两层之间通过Pod进行解耦,这样设计的好处是两层职责明确,坏处是解耦后相互结合的策略过于简单,无法实现更精细的调度策略,在Kubernetes中最小的生命周期管理单元是一个Pod,而传统的Kubernetes负载控制器(例如:Deployment、StatefulSet)管理的Pod是共享相同的调度策略的。因此,如果想要控制一个负载在不同资源上的细粒度分配时,可以通过elastic-workload来实现。



《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.2 游戏容器化部署最佳实践(4) https://developer.aliyun.com/article/1231998?groupCode=supportservice

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
11天前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
|
12天前
|
人工智能 Cloud Native 调度
阿里云容器服务在AI智算场景的创新与实践
本文源自张凯在2024云栖大会的演讲,介绍了阿里云容器服务在AI智算领域的创新与实践。从2018年推出首个开源GPU容器共享调度方案至今,阿里云容器服务不断推进云原生AI的发展,包括增强GPU可观测性、实现多集群跨地域统一调度、优化大模型推理引擎部署、提供灵活的弹性伸缩策略等,旨在为客户提供高效、低成本的云原生AI解决方案。
|
12天前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
阿里云容器服务ACK提供强大的产品能力,支持弹性、调度、可观测、成本治理和安全合规。针对拥有IDC或三方资源的企业,ACK One分布式云容器平台能够有效解决资源管理、多云多集群管理及边缘计算等挑战,实现云上云下统一管理,提升业务效率与稳定性。
|
11天前
|
Kubernetes 算法 调度
阿里云 ACK FinOps成本优化最佳实践
本文源自2024云栖大会梁成昊演讲,讨论了成本优化策略的选择与实施。文章首先介绍了成本优化的基本思路,包括优化购买方式、调整资源配置等基础策略,以及使用弹性、资源混部等高级策略。接着,文章详细探讨了集群优化和应用优化的具体方法,如使用抢占式实例降低成本、通过资源画像识别并优化资源配置,以及利用智能应用弹性策略提高资源利用效率。
|
11天前
|
Kubernetes 容灾 调度
阿里云 ACK 高可用稳定性最佳实践
本文整理自2024云栖大会刘佳旭的演讲,主题为《ACK高可用稳定性最佳实践》。文章探讨了云原生高可用架构的重要性,通过Kubernetes的高可用案例分析,介绍了ACK在单集群高可用架构设计、产品能力和最佳实践方面的方法,包括控制面和数据面的高可用策略、工作负载高可用配置、企业版容器镜像服务高可用配置等内容,旨在帮助企业构建更加可靠和高效的应用运行环境。
|
22天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
54 7
|
26天前
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
24天前
|
安全 持续交付 Docker
深入理解并实践容器化技术——Docker 深度解析
深入理解并实践容器化技术——Docker 深度解析
43 2
|
1月前
|
Kubernetes 监控 API
深入解析Kubernetes及其在生产环境中的最佳实践
深入解析Kubernetes及其在生产环境中的最佳实践
47 1
|
1月前
|
Kubernetes 持续交付 开发者
探索并实践Kubernetes集群管理与自动化部署
探索并实践Kubernetes集群管理与自动化部署
44 1