容器化上云之弹性伸缩

举报
sunming 发表于 2020/03/26 17:01:44 2020/03/26
【摘要】 在考虑容器的弹性伸缩策略之前,第一步要对容器部署规格进行设计,通常最主要的参数为CPU和内存。除了从应用自身的角度评估资源需求外,还需要考虑容器平台的资源调度规则对整体资源利用率的影响。在Kubernetes中每一种资源规格包含两个参数:request(最小)和limit(最大),前者是容器调度的依据,后者是运行时的最大资源使用限制。如果request值过大会导致调度到合适的节点上更困难,降...

在考虑容器的弹性伸缩策略之前,第一步要对容器部署规格进行设计,通常最主要的参数为CPU和内存。

除了从应用自身的角度评估资源需求外,还需要考虑容器平台的资源调度规则对整体资源利用率的影响。在Kubernetes中每一种资源规格包含两个参数:request(最小)和limit(最大),前者是容器调度的依据,后者是运行时的最大资源使用限制。如果request值过大会导致调度到合适的节点上更困难,降低request值有助于提升容器在单个节点上部署的密度。limit值过大会导致容器资源占用过高,多个容器在一个节点上总的资源占用可能超出节点的总资源,将会导致容器运行不稳定,容易出现容器被频繁重启和迁移的现象。

接下来分析弹性伸缩的场景,从资源需求的角度,弹性伸缩可以分为两类场景:

l   整个集群资源充足,只在容器层面进行弹性伸缩;

l   弹性伸缩的幅度可能超过集群现有资源的总和,需要动态增加集群中的计算资源。

下面重点讨论第一类场景,第二类场景建采用事先规划和计划性扩容的方案解决。

自动弹性伸缩基于容器的监控指标与弹性伸缩规则实现,首先要选择合适的监控指标,使其最能够反映容器真实的负载情况。一类指标是系统内置的监控指标,包括CPU、内存、磁盘、网络的使用率和大小,另一类是业务自定义的监控指标。当系统内置指标不能很好的反映容器的真实负载情况时,采用业务自定义监控指标是更好的选择。

基于监控指标,可以设置弹性伸缩规则,根据触发类型不同,弹性伸缩规则主要包括以下几类:

l   定时触发:适合计划性的弹缩场景使用。

l   周期触发:适合业务负载呈周期性规律的场景使用。

l   告警触发:根据监控指标的阈值规则触发的弹性伸缩,通用性更强。

为了防止弹性伸缩规则出现冲突和不稳定,系统通过冷却时间和多周期采样来提升弹性伸缩策略的稳定性。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。