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

目录

[第一章 概述](#第一章 概述)

[第二章 弹性伸缩简介](#第二章 弹性伸缩简介)

1、弹性伸缩

2、垂直伸缩

3、优势

4、应用场景

[① 无规律的业务量波动](#① 无规律的业务量波动)

[② 有规律的业务量波动](#② 有规律的业务量波动)

[③ 无明显业务量波动](#③ 无明显业务量波动)

[④ 混合型业务](#④ 混合型业务)

[⑤ 消息通知](#⑤ 消息通知)

[⑥ 生命周期挂钩](#⑥ 生命周期挂钩)

[⑦ 自定义方式](#⑦ 自定义方式)

[⑧ 滚的升级](#⑧ 滚的升级)

5、使用限制

[第三章 主要定义](#第三章 主要定义)

1、工作原理

2、基础概念

[① 伸缩组](#① 伸缩组)

[② 弹性容器实例ECI](#② 弹性容器实例ECI)

[③ 稳定实例](#③ 稳定实例)

[④ SLB负载均衡实例](#④ 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模板实现自动化运维。

相关推荐
亚图跨际7 小时前
深入偏微分方程的世界-AI云计算
人工智能·机器学习·云计算
ahhhhaaaa-15 小时前
【学习笔记】QUIC
数据库·笔记·学习·阿里云·golang·云计算
AKAMAI18 小时前
微服务架构的核心优势解析
后端·云原生·云计算
可口口可18 小时前
AWS vs 阿里云:功能、服务与性能对比指南
阿里云·云计算·aws
AKAMAI18 小时前
什么是云计算的边缘原生应用?
云原生·云计算·边缘计算
亚林瓜子1 天前
AWS中国云的定时任务(AWS EventBridge+AWS Lambda)
python·云计算·aws·lambda·定时任务·event·cron
solihawk1 天前
从阿里云域名解析异常事件看下域名解析过程
阿里云·云计算
我哪会这个啊1 天前
阿里云MaxCompute入门
阿里云·maxcompute·odps
云布道师1 天前
云服务运行安全创新标杆:阿里云飞天洛神云网络子系统“齐天”再次斩获奖项
网络·人工智能·安全·阿里云·云计算·云布道师
思绪漂移1 天前
云计算——弹性云计算器(ECS)
云计算