集群弹性伸缩是如何运作的
集群弹性伸缩是如何运作的
为大家说一说集群弹性伸缩是如何运作的的话题,具体介绍如下:
弹性伸缩 可以根据用户实际需求调整计算资源(算力)的多寡,可以说这是每个厂商必备的能力,比如腾讯云 AS、Amazon EC2 Auto Scaling、Azure Autoscale、Google MIG、阿里云 ESS 等等。
集群弹性伸缩 作用于 kubernetes 集群中,功能上与弹性伸缩保持一致,两者最大的差异是衡量资源需求量的标准。
弹性伸缩常常以实际负载作为扩缩依据,而集群弹性伸缩是以资源分配占比作为依据,为 workload 分配资源往往需要我们对自身的业务具有相对合理的认识。
CA 可以根据集群实际使用情况,为集群增加或者减少节点:
- 当有Pod由于资源不足而不可调度时,考虑扩容
- 当有节点资源利用率不高时,考虑缩容
- repo:https://github.com/alphajc/autoscaler/tree/master/cluster-autoscaler
- FAQ:https://github.com/alphajc/autoscaler/blob/master/cluster-autoscaler/FAQ.md
与 HPA、HPC 的关系
在 kubernetes 中有关 HPA 的介绍可以移步官方文档,HPA 可以根据实际负载调整 workload 的副本数,即 Pod 数量,如果调升后计算资源不足就会导致 Pod Pending,调降后资源过剩就会导致节点闲置。
尽量保证 Pending 的节点得到调度,闲置的节点得到释放,就是 CA (cluster-autoscaler 简称) 的作用。
CA + HPA 与云厂商的弹性伸缩功能大致相当。

根据负载得到的资源需求往往具有一定的滞后性,触发扩容时或多或少都已经影响到了业务,所以云厂商提供的弹性伸缩一般还具有定时伸缩的能力。
TKE 团队提供的 HPC 可以定时调整 workload 的副本数,其与 CA 配合就可以达到集群节点定时伸缩的效果了。
使用须知
- CA 一般基于云厂商提供的弹性伸缩功能实现 NodeGroup,但其伸缩机制有冲突,故不可在集群中的启用原弹性机制
- 开启集群弹性伸缩的集群中的 workload 务必指定 request
- NodeGroup 中配置的机型资源充足
- 当单节点池配置了多可用区的子网时,含可用区亲和性调度的扩容会有异常
- 不支持单节点池多规格机型
实现逻辑
CA 的代码主体是一个无限循环,通过一次次的扫描集群,根据集群当前状态决策和执行扩缩容。
具体的循环间隔通过 –scan-interval 参数控制,默认为 10s,一张图带你理解扩缩容全流程:

- 集群快照 ClusterSnapshot 中,会存储所有节点和非低优的 Pod
相关阅读
-
网站设计与制作教程 web制作网站的模板
IT袋网为大家说一说网站设计与制作教程和web制作网站的模板的IT小经验,下面来一起了解一下吧。 对于一个完整的网页来说,网页的设计与制作都同样重要。可能许多网页设计与制作的初学者
-
MySQL主从复制三种模式详细解析:原理与应用
小编为网友们解答MySQL主从复制三种模式详细解析的相关知识,下面IT袋网为您详细介绍 MySQL主从复制是一种常见的数据冗余和备份策略,主要用于提高数据的可用性和读取性能。 主从复制有三
-
开网站需要多少钱 公司网页制作流程及费用
一篇很详细的教程是关于开网站需要多少钱和公司网页制作流程及费用的相关经验,接下来IT袋带大家一起了解。 这个问题可以说是网站建设常见问题最热门的问题,也是客户咨询的最多的问
-
魔兽世界掉落查询工具 怀旧服掉落查询数据库
一篇很详细的教程是关于魔兽世界掉落查询工具和怀旧服掉落查询数据库的相关话题,接下来就是全面介绍。 raidbot是一个很好用的simc网站,一直保持代码的更新。可以装备跑分,绿字收益跑


