阿里云ACP云计算备考笔记 (5)——弹性伸缩

发布于:2025-06-11 ⋅ 阅读:(51) ⋅ 点赞:(0)

目录

第一章 概述

第二章 弹性伸缩简介

1、弹性伸缩

2、垂直伸缩

3、优势

4、应用场景

① 无规律的业务量波动

② 有规律的业务量波动

③ 无明显业务量波动

④ 混合型业务

⑤ 消息通知

⑥ 生命周期挂钩

⑦ 自定义方式

⑧ 滚的升级

5、使用限制

第三章 主要定义

1、工作原理

2、基础概念

① 伸缩组

② 弹性容器实例ECI

③ 稳定实例

④ SLB负载均衡实例

⑤ 伸缩模式

⑥ 实例配置信息来源

⑦ 伸缩配置

⑧ 伸缩规则

⑨ 自动触发任务

3、常见活动

① 伸缩活动

② 期望实例数

③ 并行伸缩活动

④ 非并行伸缩任务

4、伸缩组流程

① 伸缩组流程

② 组内实例生命周期

③ 生命周期挂钩

④ 冷却时间

第四章 使用流程

1、创建伸缩组

2、创建伸缩配置

3、启用伸缩组

4、创建伸缩规则

5、创建自动伸缩任务

① 定时任务

② 报警任务

第五章 伸缩组详解

1、创建伸缩组

2、伸缩组状态

3、创建伸缩组限制

4、创建步骤

5、删除伸缩组

① 删除保护

② 删除结果

③ 强制删除

④ 非强制删除

6、伸缩组内实例状态

7、自动创建ECS实例

8、手动创建ECS实例

9、查看伸缩组实例列表

10、移除或释放实例

11、转为备用状态

12、转出备用状态

13、转为保护状态

14、转为停用状态

15、手动移出或删除实例

16、自动移除策略

① 筛选最早伸缩配置对应的实例

② 筛选最早创建的实例

③ 筛选最新创建的实例

④ 无策略

第五章 伸缩配置详解

1、创建前提

2、创建步骤

3、伸缩配置状态

第六章 伸缩规则详解

1、规则类型

① 普通规则

② 步进规则

③ 预测规则

④ 目标追踪规则

第七章 伸缩模式详解

1、模式类型

① 固定数量模式

② 健康模式

③ 定时模式

④ 动态模式

⑤ 自定义模式

⑥ 多模式并行

2、健康模式说明

3、定时模式说明

4、动态模式说明

① 系统监控报警任务

② 自定义监控报警任务

③ 报警任务支持监控项

第八章 伸缩活动

1、弹性扩容

2、弹性缩容

3、伸缩活动特点

4、伸缩活动自动创建ECS实例

5、伸缩活动自动移出实例

6、手动添加实例到伸缩组

7、手动移出伸缩组实例

8、并行/非并行伸缩活动

① 并行伸缩活动

② 非并行伸缩活动

9、冷却时间

第九章 自动化运维


第一章 概述

第二章 弹性伸缩简介

1、弹性伸缩

        根据业务实际需求和策略,自动调整计算能力(即实例数量),自动适配当前业务实际的需求,优化成本,也优化系统的稳定性。

2、垂直伸缩

        不调整实例数量,而是调整实例的规格(vCPU和内存),系统自动完成停止实例,调整实例规格,启动实例。

3、优势

4、应用场景

① 无规律的业务量波动

        利用弹性伸缩的报警任务,阿里云根据实例的运行指标自动弹性伸缩。

        报警任务支持:CPU、内存、平均负载、内外网出入流量、TCP连接总数。

② 有规律的业务量波动

        利用弹性伸缩的定时任务,自动定时执行弹性伸缩。

③ 无明显业务量波动

        健康检查模式,确保服务健康。

④ 混合型业务

        综合使用所有弹性策略。

⑤ 消息通知

        伸缩成功、失败、拒绝之后都可以通知信息,支持消息通知(短信、站内信、邮件)和事件通知(发送至云监控事件或者消息服务(MNS主题和MNS队列)

⑥ 生命周期挂钩

        触发弹性伸缩的时候,设置挂钩可以让实例处于挂起中状态,可以有一段自定义操作的时间,支持OOS模板

⑦ 自定义方式

        手动向伸缩组添加或者移除ECS实例。

⑧ 滚的升级

        通过任务形式批量修改ECS实例,可以为伸缩组内处理服务中的实例批量更换镜像,执行脚本、安装OOS软件包。

5、使用限制

        部署在ECS实例上的应用必须是无状态的并且支持横向扩展

        伸缩组内的ECS可能会自动释放,所以不适合保存会话记录、应用数据、日志等信息。这些信息推荐使用独立的状态实例,数据保存到RDS、日志保存到日志服务;

        不支持自动将实例添加到Memcache实例的访问白名单,需要手动添加。

        如果伸缩组关联的RDS、ALB、CLB、SLB实例的后端服务器被删除了,伸缩组自动解雇关联关系。

        如果伸缩组自动触发连续失败30天就不搞了,通知用户。

第三章 主要定义

1、工作原理

2、基础概念

① 伸缩组

        具有相同应用场景,相同实例类型的集合。伸缩组定义了组内可容纳的实例数的最大最小值、关联的负载均衡实例,关联RDS实例等属性。

② 弹性容器实例ECI

        阿里云结合容器和Serverless提供的容器运行服务。

③ 稳定实例

        特指在伸缩组中处于服务中、保护中、备用中状态的ECS实例

④ SLB负载均衡实例

        对流量进行按需分发,流量分发到不同的实例处理,提供系统整体吞吐量。

⑤ 伸缩模式

        对应不同的增加、减少实例的操作,包含:定时模式、动态模式、固定数量模式、自定义模式、健康模式、多模式并行

⑥ 实例配置信息来源

        需要指定伸缩的ECS到底要用什么配置来初始化创建ECS,支持伸缩模板和实例启动模板

⑦ 伸缩配置

        组内实例的配置信息,在创建实例的时候用到。

⑧ 伸缩规则

        步进规则、目标追踪规则、简单规则用于触发伸缩时控制增加或者减少实例的具体数量

        预测规则可以基于历史变更数据智能规定实例的数量边界值;

⑨ 自动触发任务

        分为定时任务、报警任务触发;定时任务可以指定该时间扩缩容,报警任务是根据监控到的异常指标决定是否扩缩容。

3、常见活动

① 伸缩活动

        用于记录伸缩组内实例数、伸缩组边界值、期望实例数等数量变化情况执行伸缩规则、修改边界值、修改期望实例数等操作都会触发伸缩活动

② 期望实例数

        开启期望实例数后,伸缩组会自动将实例的数量维持在期望数,无需人工干预。当然能用的前提是创建伸缩组的时候开启这个功能,开启之后可以修改的

③ 并行伸缩活动

        并且伸缩任务执行的时候可以执行其他并行任务。当以下方式触发伸缩活动就是并行伸缩活动:

        手动执行伸缩规则、定时任务执行伸缩规则;

        手动添加ECS实例,移除ECS实例;

        期望实例数检查任务、实例健康检查任务、最大最小检查任务;

④ 非并行伸缩任务

        具有排他性,不开启期望实例数功能,所有都是非并行伸缩任务

4、伸缩组流程

① 伸缩组流程

        指的是可以手动暂停、恢复的流程,包括:扩容流程、缩容流程、健康检查、定时任务、报警任务等用于更精细的控制伸缩组流程级别的动作。

② 组内实例生命周期

        指ECS在伸缩组内从创建到释放的过程。如果由伸缩组自动创建就由伸缩组管理,手动创建的ECS实例可以托管给伸缩组,也可以不托管自己管理

③ 生命周期挂钩

        伸缩组创建或者释放实例的收,不立即执行,流出一定时间给自定义操作。

④ 冷却时间

        伸缩活动后锁定一定时间不再被云监控触发伸缩活动请求,避免频繁触发。

第四章 使用流程

        必须配置并且启用伸缩组、以及组内实例配置来源。其他组件可以按需配置。

1、创建伸缩组

        使用弹性伸缩管理业务所用的ECS实例时,伸缩组是基本的管理单元。伸缩组用于管理有相同应用场景的ECS实例,并支持关联多个负载均衡实例和RDS实例。伸缩组关联负载均衡实例和RDS实例后,ECS实例加入伸缩组时会自动添加为负载均衡实例的后端服务器,其内网IP会自动加入RDS实例的访问白名单。

2、创建伸缩配置

        伸缩配置是弹性伸缩自动创建ECS实例时所使用的实例模板。一个伸缩组支持创建多个伸缩配置,但同一时间只允许一个伸缩配置处于生效状态。(如果您在创建伸缩组时,选择启动模板或者已有实例作为配置信息来源,则不用手动创建伸缩配置,可以直接启用伸缩组。)

3、启用伸缩组

        首次创建伸缩配置后,会自动提示启用伸缩组。您也可以在伸缩组列表自行启用伸缩组。

4、创建伸缩规则

        伸缩规则用于指定扩缩容ECS实例的数量等信息或者智能地设置伸缩组边界值,您可以根据业务需要创建对应类型的伸缩规则。

5、创建自动伸缩任务

        创建伸缩规则后,您可以通过自动伸缩任务自动执行伸缩规则,实现自动扩缩容。自动伸缩任务支持以下类型:

① 定时任务

        如果您可以预测业务量波动的时间,使用定时任务在指定时间自动扩缩容即可。定时任务支持设置重复周期,满足周期性自动扩缩容的需求。

② 报警任务

        如果您需要基于ECS实例的运行指标自动扩缩容,可以使用报警任务。报警任务基于云监控的监控项动态管理伸缩组内ECS实例。

第五章 伸缩组详解

1、创建伸缩组

        如果弹性伸缩的ECS无法加入RDS或者SLB访问白名单,自动创建的实例回回滚和释放,手动创建的实例则会保留下来

        一个实例只能加入一个伸缩组,并且一定要在同一个地域

2、伸缩组状态

        可以看到API中只有三种:

3、创建伸缩组限制

        同一个地域下,伸缩组的熟练有限制;

        创建的时候需要执行实例数量的边界值,最大最小值,也可以指定期望数。

        如果没有配置期望数,并且最小值大于0并且实际实例数小于最小值就自动扩容一次;如果配置了期望数,并且期望数大于0并且实际实例数不一致,就自动触发扩容一次

4、创建步骤

        登录控制台;

        顶部菜单选择地域;

        左侧导航栏选择伸缩组;

        左上角创建,完成配置后确认;

5、删除伸缩组

① 删除保护

        如果开启删除保护,就不可以通过控制台或者API删除伸缩组了。

② 删除结果

        会同时删除组内的伸缩配置和伸缩规则。

        如果有运行中的实例,会先停止实例,然后移出手动创建的实例,释放所有自动创建的实例

③ 强制删除

        先停止伸缩组,拒绝新的伸缩活动,等待已有的伸缩活动完成,移出手动,释放自动。

④ 非强制删除

        当伸缩组没有任何伸缩活动并且实例为0就可以停止伸缩组,然后删除伸缩组。

6、伸缩组内实例状态

        从加入到移出伸缩组,状态有:加入中 、加入挂起中、服务中、备用中、保护中、移出中、移出挂起中、停用中

7、自动创建ECS实例

        配置全部相同

        如果指定了RDS,系统自动将ECS的IP加入到RDS的访问白名单

        如果指定了负载均衡,系统自动将ECS加入负载均衡的后端服务器中

8、手动创建ECS实例

        实例和伸缩组必须同地域

        没有加入其他伸缩组

        实例必须运行中

        实例和伸缩组的网络类型必须一致

        伸缩组必须启用状态

        伸缩组不存在执行中的伸缩活动

        如果将手动创建的ECS托管生命周期给伸缩组,移除的时候也会释放实例,特殊的是支持将包年包月的实例添加,单不能托管

9、查看伸缩组实例列表

        登录控制台;

        左侧菜单栏点击伸缩组管理;

        选择地域;

        对伸缩组查看详情;

        实例列表页签;

        查看ECS实例;

10、移除或释放实例

        无论自动或者手动创建的实例,都可以转为备用状态、转入转出保护状态。

        如果是自动创建的实例,并且被检测出不健康了,会自动释放实例,并且另起一个健康实例替换

        如果是手动创建的时候,被检测没有运行中就会被判定不健康,自动移除伸缩组,是否释放根据是否生命周期托管决定,托管了就释放,没托管就只是移除而不释放

11、转为备用状态

       如果配置了负载均衡,备用状态后负载均衡的权重归0

        一直保持备用直到移出

        不再自动管理备用的实例的生命周期,手动维护;

        伸缩活动的时候,不会移出备用的实例

        备用的时候停止或者重启,不会更新健康检查状态

        需要先移出备用状态ECS才能释放;

        如果伸缩组删除了,备用实例会被移出并且自动解除备用状态

12、转出备用状态

        实例恢复服务;

        如果有负载均衡实例,实例会重新加入负载均衡,权重默认50

        ECS实例停止或者重启,会更新健康检查状态;

        如果发生伸缩活动,实例可以正常被移除;

13、转为保护状态

        如果配置了负载均衡实例,不会影响实例的权重

        一直保持状态直到被移出保护状态;

        伸缩活动不会移出保护状态的实例,需要手动移出才能释放;

        实例停止或者重启,不会更新健康检查状态;

14、转为停用状态

        不再提供服务,部分资源不再收费;只有EIP和云盘还要继续收费

15、手动移出或删除实例

        伸缩组启用状态,并且不存在执行中的伸缩活动,就可以移出或者删除实例

        手动操作可以绕过冷却时间直接执行

        如果删除后实例数小于边界最小值,会失败

16、自动移除策略

        支持两段设置先筛选再从结果中移出,不支持两段设置相同的选项,如果筛选后还有多个实例则随机选择

① 筛选最早伸缩配置对应的实例

        但是不会先把手动的选出来,只有移除不够数的时候才用手动的实例

② 筛选最早创建的实例

③ 筛选最新创建的实例

④ 无策略

        表示不进行第二段筛选。

第五章 伸缩配置详解

1、创建前提

        必须先创建伸缩组,如果要使用智能配置,网络类型必须是VPC。

        必须创建安全组。

2、创建步骤

        控制台-伸缩组管理-选择地域;

        选择伸缩组,打开详情;

        点击 实例配置来源 页签;

        创建伸缩组配置;

        完成基础:付费模式(按量,抢占)、配置方式(规格、智能)、镜像(公共、自定义、公共、社区)、存储、公网IP、安全组、IPv6;

        完成系统配置:标签、资源组、登录凭证(不支持创建时设置密码,SSH密钥对可以)、实例名称、主机名、RAM角色(仅VPC)、自定义数据(仅VPC)、私有池容量、专有宿主机:

        填写伸缩配置名称;

        启用配置;

3、伸缩配置状态

        Active:生效状态

        Inactive:失效状态

        Deleting:删除中

第六章 伸缩规则详解

1、规则类型

① 普通规则

        用于触发伸缩活动,增加或者减少指定数量的实例,或者将实例调整到指定数量;如果是报警任务触发的则需要等到冷却完成之后才能生效了。

② 步进规则

        基于云监控告警和分段扩缩容,通过一组策略更加精细的控制扩缩容。

③ 预测规则

        智能设置伸缩组边界,通过分析至少24小时的活动,通过机器学习预测未来48小时的监控指标

④ 目标追踪规则

        选择一个云监控指标,指定目标值。伸缩组根据目标指标自动创建报警任务,删除规则后伸缩组会同步删除自动生成的报警任务

第七章 伸缩模式详解

1、模式类型

① 固定数量模式

        由伸缩组的最大、最小实例数,或者期望实例数。

② 健康模式

        需要开始实例中的健康检查配置。

③ 定时模式

        由定时任务决定、多个定时任务时执行最早触发的一个。

④ 动态模式

        伸缩效果由报警任务决定。

⑤ 自定义模式

        需要手动添加、移出、删除实例,或者手动触发伸缩规则。

⑥ 多模式并行

        多种模式一起生效,配置也要全部都有。

2、健康模式说明

        开启健康模式后,伸缩组会定时检查实例的运行状态,如果发现一台实例位处于运行中,判定实例不健康并移出,创建新的实例加入伸缩组。

3、定时模式说明

        是一种预设任务,可以指定时间执行伸缩规则。

        如果没有设置重复周期,那么只会执行一次。

        伸缩方式可以选择已有的伸缩规则,也可以直接设置实例的最大最小值或者期望数。

        重试过期时间:为了避免定时任务执行失败,在设置的重启过期时间内会重试定时任务。

        可以在控制台操作修改或者删除定时任务、启用停用定时任务。

4、动态模式说明

        适用于没有规律的波动需求。

        需要利用云监控服务CMS,监控特定的指标,对数据指标进行实时统计,当统计值满足指定的报警条件时,触发报警任务并指定伸缩活动

        报警任务分为两类:系统监控报警和自定义报警任务。

        如果有其他非并行的伸缩活动时,报警任务触发的伸缩活动就不生效

        冷却时间内不生效。

        报警任务默认沉默时间是一分钟,一分钟内不会重复触发报警任务伸缩。

① 系统监控报警任务

        伸缩组会给组内所有实例都安装云监控客户端,GPU监控需要单独安装GPU驱动程序。

② 自定义监控报警任务

        需要主动将特定业务的监控指标上报给云监控。

③ 报警任务支持监控项

        CPU使用率、内存、系统平均负载、内外网出入流量、TCP总连接数和已建立数、系统盘读写BPS和IOPS、内网网卡收包和发包数,GPU使用率、GPU内存空闲率和使用率

第八章 伸缩活动

1、弹性扩容

2、弹性缩容

3、伸缩活动特点

        无法强行终止

        ECS实例级别的事务完整性

        有冷却时间

        可进行实例生命周期托管;

        可进行实例释放保护;

        同一个伸缩组内,统一时间只能有一个伸缩活动

4、伸缩活动自动创建ECS实例

        判断伸缩组的健康状态和边界条件;

        分配伸缩活动ID并执行活动;

        创建ECS实例;

        修改伸缩组的实例数;

        为ECS分配IP;

        将实例添加到RDS白名单;

        启动ECS实例;

        将实例添加到SLB的后端服务器组,权重就是配置的权重。

        伸缩活动完成,启动冷却。

5、伸缩活动自动移出实例

        判断申诉组健康状态;

        分配伸缩活动ID并执行活动;

        从SLB后端服务器组移出实例;

        停止实例;

        从RDS白名单移出实例;

        释放实例;

        修改伸缩组数量;

        活动完成,启动冷却。

6、手动添加实例到伸缩组

        判断伸缩组的健康状态、边界条件和实例的状态以及类型;

        分配伸缩ID并执行伸缩活动;

        将实例添加到伸缩组;

        修改伸缩组实例数;

        添加到RDS白名单;

        将实例添加到SLB的后端服务器组;

        伸缩完成,启动冷却。

7、手动移出伸缩组实例

        判断申诉组健康状态;

        分配伸缩活动ID并执行活动;

        停止SLB向实例转发流量;

        等待60S从SLB后端服务器组移出实例;

        从RDS白名单移出实例;

        修改伸缩组数量;

        移出实例;

        活动完成,启动冷却。

8、并行/非并行伸缩活动

        已设置期望实例数的伸缩组可以执行并行伸缩活动、但是不支持同时有并行和非并行伸缩活动

        未设置期望数的伸缩组不可以执行并行伸缩组。

① 并行伸缩活动

        存在执行中的并行伸缩活动时,可以执行其他并行伸缩活动。包括通过以下方式触发的伸缩活动:

  • 手动执行伸缩规则、通过定时任务执行伸缩规则。

  • 手动添加实例、手动移出实例。

  • 系统自动进行的期望实例数检查任务、实例健康检查任务、最大最小值检查任务。

② 非并行伸缩活动

        存在执行中的非并行伸缩活动时,不能执行其他伸缩活动。并行伸缩活动以外的伸缩活动均属于非并行伸缩活动。包括但不限于通过以下方式触发的伸缩活动:

  • 系统通过报警任务自动执行伸缩规则。

  • 手动在实例列表页签中执行再均衡分布。

  • 系统自动执行抢占式实例补偿任务。

9、冷却时间

        多台实例加入或者移出伸缩组,以最后一台实例为基准计算冷却时间。

        如果是停用后的再启用伸缩组,首次伸缩活动可以立即执行,不需要CD。

        非报警任务触发的伸缩活动不需要CD。

第九章 自动化运维

        通过生命周期挂钩和OOS模板实现自动化运维。


网站公告

今日签到

点亮在社区的每一天
去签到