阿里云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模板实现自动化运维。

相关推荐
翼龙云_cloud2 小时前
阿里云渠道商:如何使用弹性伸缩来实现计算资源的弹性配置?
服务器·阿里云·云计算
落笔画忧愁e6 小时前
实测:利用腾讯云锐驰型 200M 带宽,搭建无门槛高清视频分发系统
云计算·腾讯云
冬天的风滚草8 小时前
揭秘云原生混布资源调度器Koordinator (十五)GPU 信息采集与上报机制
云计算
冬天的风滚草8 小时前
揭秘云原生混布资源调度器Koordinator (十三)GPU 资源管理总览
云计算
冬天的风滚草8 小时前
揭秘云原生混布资源调度器Koordinator (十四)DeviceShare 调度插件详解
云计算
CodeCaptain10 小时前
配置Nginx反向代理来实现负载均衡,续阿里云ECS配置Nginx反向代理
nginx·阿里云·负载均衡
Bin Watson10 小时前
Ubuntu安装Docker记录(基于阿里云)
ubuntu·阿里云·docker
CodeCaptain11 小时前
阿里云ECS上配置Nginx的反向代理
nginx·阿里云·云计算
有谁看见我的剑了?20 小时前
VMware OVF Tool 工具安装学习
云计算
无我19871 天前
专业的厌氧池清淤哪家酷
阿里云