本文描述了如何使用阿里云的 ECI 快速配置弹性伸缩,来实现 FizzGate 节点的弹性伸缩支撑业务并且节省费用。 我们即将使用到的阿里云产品有三类:
- 容器镜像服务
- 传统型负载均衡 CLB (原 SLB)
- 弹性容器实例 ECI
除此之外,ECI 后台界面中链接的弹性伸缩功能也是我们的这次需要配置的功能之一。
准备好镜像
步骤一:创建镜像仓库
步骤二:选择仓库
此处记得勾选海外机器构建,因为镜像的构建涉及到 docker 镜像和 maven 相关编译工具包下载
步骤三:构建镜像
点击建好的仓库选择点击已经创建的仓库,选择 Tab 构建中的构建规则设置。
选择对应的分支并且填写版本号,点击构建即可。
设置负载均衡 SLB
使用集群时候,我们需要通过的 SLB 的虚拟服务器组将弹性建立的实例加入组中。所以我们需要创建一个对应 SLB。
步骤一:创建 SLB
记得此处需要选择对应的地区,对应的专有网络和交换机都要在对应的地区(如果尚未建立,建立新的)。如果该 SLB 不需要对公网服务,选择内网服务即可,因为笔者在此处已经有对应的出口 nginx 已有公网 IP,可以利用已有的 nginx 来转发,所以使用的是内网 SLB。 在创建的 SLB 选择监听的端口为 8600,和服务实例的端口一致即可。
步骤二:建立虚拟服务器组
笔者在此处建立了 fizz-node-list 的虚拟组。此处并不用添加机器,我们之后将弹性伸缩的服务关联到该虚拟组即可。
设置弹性伸缩
伸缩组是弹性伸缩的核心单元,用来管理满足该公司业务需求的一组实例。弹性伸缩将会在该伸缩组内自动增加或减少实例。
步骤一:创建伸缩组
登录弹性伸缩控制台。
- 在左侧导航栏中,单击伸缩组管理。
- 本步骤中以前往伸缩组列表页面操作为例。如果在当前地域下没有弹性伸缩资源,登录控制台后会显示欢迎页面,您也可以根据页面提示操作。
- 在顶部菜单栏处,选择地域。
- 在页面左上角,单击创建伸缩组。
- 完成伸缩组配置,然后单击确认。
最后选择虚拟服务器组的时候可以把默认组删除,使用我们之前已经创建好的 fizz-node-list 组。 6. 之后点击保存,在弹出的窗口可以点击配置伸缩配置按钮。
步骤二:创建伸缩配置
伸缩配置是扩容时 ECI 实例使用的模板,包括实例规格、存储、公网 IP、安全组等配置信息。弹性伸缩使用该伸缩配置创建具有相同配置的 ECI 实例。
- 找到待操作的伸缩组,选择一种方式打开伸缩组详情页面。
- 在伸缩组名称 / ID 列,单击伸缩组 ID。
- 在操作列,单击查看详情。
- 在页面上方,单击实例配置来源页签。
- 在伸缩配置页面,单击创建伸缩配置。
- 完成前两个页面的配置,然后在确认配置页面中单击确认创建。
网络安全组即防火墙设置如果之前设置的可以新建
配置所需要的机器的配置
选择对应的镜像
点击高级选项,找到环境变量的填写位置:Fizz 节点的启动依赖环境变量或者配置文件,笔者在此处使用了环境变量传入的方式。
- 在伸缩配置建立成功对话框,单击启用配置。
- 在选用伸缩配置对话框,单击确定。
- 在一个伸缩组内,您必须启用一个伸缩配置。启用伸缩配置后,该伸缩配置处于生效状态。
- 在启用伸缩组对话框,单击确定。
- 您必须启用伸缩组。启用伸缩组后,弹性伸缩才会按照您的配置实现弹性扩张和收缩。
在此基础上,你可以再行设置伸缩规则。各位也可以调节期望机器数量来手动模拟一下。详细的文档阿里云官方,此处就不再赘述。
启动规则之后,我们可以再弹性容器实例列表中见到已经开始启动一个实例,之后,我们再进一步配置 nginx 的 upstream 指向内网的 SLB IP,等服务启动之后即可访问到实例了。
至于云费用,笔者做了对比,比买 ECS 贵,所以考虑这是应对的峰值的一个有效的举措,并不建议长期使用。