开发者社区> 问答> 正文

弹性伸缩常见问题监控与自动化部署问题


如何判断弹性伸缩中实例的可用性?
如果弹性伸缩在伸缩组里配置了负载均衡,负载均衡检查您后端的ECS端口正常之后,才会将请求转发给新的实例。

弹性伸缩中的告警触发条件有哪些?
可以针对CPU负载、内存利用率、系统平均负载、外网和内网出入流量等进行监测告警,自动增加或减少ECS实例。

弹性伸缩是否可以根据云监控中自定义报警项进行动态伸缩?
目前不支持根据自定义监控进行动态伸缩。

自动释放ECS实例之前,如何保证应用运行完成?
为确保ECS实例中的任务完成后,才被弹性伸缩释放掉,您需要在自定义镜像中存放执行脚本,同时设置命令,在操作系统关机时自动执行该脚本。
以CentOS为例,您可以创建以下shell测试脚本:

  1. [backcolor=transparent]#!/bin/sh
  2. [backcolor=transparent]# chkconfig: 0 10 90
  3. [backcolor=transparent]# description: Test Service
  4. [backcolor=transparent]echo [backcolor=transparent]"hello world!"

其中 0 是默认启动级别,级别有 0 ~ 6 共7个级别。
  • 等级0表示:关机   
  • 等级1表示:单用户模式   
  • 等级2表示:无网络连接的多用户命令行模式   
  • 等级3表示:有网络连接的多用户命令行模式   
  • 等级4表示:不可用   
  • 等级5表示:带图形界面的多用户模式   
  • 等级6表示:重新启动
  • 10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低。

将测试文件放在[backcolor=transparent]/etc/rc.d/init.d/目录下面,然后执行chkconfig --level 0 test on即可,以后每次关机时都会执行该测试脚本。

伸缩组内创建的ECS应用部署如何自动化?
在弹性伸缩自动创建ECS实例后,如果想要自动安装、更新程序和自动加载代码,需要您在自定义镜像中存放执行脚本,并设置命令使操作系统启动后自动执行该脚本。
[backcolor=transparent]注意:由于 CentOS 6 及以下系统采用 system V init 作为初始化进程,但 CentOS 7 采用了systemd来做初始化进程,它的工作原理和之前的 system V init 区别较大。以下分别针对 CentOS 6 以及 CentOS 7 进行说明。

CentOS 6 及以下系统
  1. 创建以下shell测试脚本:[backcolor=transparent]#!/bin/sh
  2. [backcolor=transparent]# chkconfig: 6 10 90
  3. [backcolor=transparent]# description: Test Service
  4. [backcolor=transparent]echo [backcolor=transparent]"hello world!"

针对上述脚本中的# chkconfig: 6 10 90,[backcolor=transparent]说明如下:
其中6默认启动级别,级别有 0 ~ 6 共 7 个级别。
  • 等级0表示:关机
  • 等级1表示:单用户模式
  • 等级2表示:无网络连接的多用户命令行模式
  • 等级3表示:有网络连接的多用户命令行模式
  • 等级4表示:不可用
  • 等级5表示:带图形界面的多用户模式
  • 等级6表示:重新启动
  • 10是启动优先级,90是停止优先级,优先级范围是 0 ~ 100,数字越大,优先级越低。

将测试文件放在[backcolor=transparent]/etc/rc.d/init.d/目录下,执行chkconfig --level 6 test on。
[backcolor=transparent]说明:以后每次开机启动都会执行该测试脚本。
示例
以脚本安装Phpwind为例,您可以将phpwind安装程序放到脚本中执行(数据库密码仍需要您自己输入),如下仅是示例,您可以按照示例进行修改。
  1. [backcolor=transparent] cd [backcolor=transparent]/[backcolor=transparent]tmp
  2. [backcolor=transparent] echo [backcolor=transparent]"phpwind"
  3. [backcolor=transparent] yum install [backcolor=transparent]-[backcolor=transparent]y \
  4. [backcolor=transparent]     unzip \
  5. [backcolor=transparent]     wget \
  6. [backcolor=transparent]     httpd \
  7. [backcolor=transparent]     php \
  8. [backcolor=transparent]     php[backcolor=transparent]-[backcolor=transparent]fpm \
  9. [backcolor=transparent]     php[backcolor=transparent]-[backcolor=transparent]mysql \
  10. [backcolor=transparent]     php[backcolor=transparent]-[backcolor=transparent]mbstring \
  11. [backcolor=transparent]     php[backcolor=transparent]-[backcolor=transparent]xml \
  12. [backcolor=transparent]     php[backcolor=transparent]-[backcolor=transparent]gd \
  13. [backcolor=transparent]     php[backcolor=transparent]-[backcolor=transparent]pear \
  14. [backcolor=transparent]     php[backcolor=transparent]-[backcolor=transparent]devel
  15. [backcolor=transparent] chkconfig php[backcolor=transparent]-[backcolor=transparent]fpm on \
  16. [backcolor=transparent]     [backcolor=transparent]&&[backcolor=transparent] chkconfig httpd on
  17. [backcolor=transparent] wget http[backcolor=transparent]://[backcolor=transparent]pwfiles[backcolor=transparent].[backcolor=transparent]oss[backcolor=transparent]-[backcolor=transparent]cn[backcolor=transparent]-[backcolor=transparent]hangzhou[backcolor=transparent].[backcolor=transparent]aliyuncs[backcolor=transparent].[backcolor=transparent]com[backcolor=transparent]/[backcolor=transparent]com[backcolor=transparent]/[backcolor=transparent]soft[backcolor=transparent]/[backcolor=transparent]phpwind_v9[backcolor=transparent].[backcolor=transparent]0[backcolor=transparent]_utf8[backcolor=transparent].[backcolor=transparent]zip \
  18. [backcolor=transparent]     [backcolor=transparent]&&[backcolor=transparent] unzip [backcolor=transparent]-[backcolor=transparent]d pw phpwind_v9[backcolor=transparent].[backcolor=transparent]0[backcolor=transparent]_utf8[backcolor=transparent].[backcolor=transparent]zip \
  19. [backcolor=transparent]     [backcolor=transparent]&&[backcolor=transparent] mv pw[backcolor=transparent]/[backcolor=transparent]phpwind_v9[backcolor=transparent].[backcolor=transparent]0[backcolor=transparent]_utf8[backcolor=transparent]/[backcolor=transparent]upload[backcolor=transparent]/*[backcolor=transparent]  [backcolor=transparent]/[backcolor=transparent]var[backcolor=transparent]/[backcolor=transparent]www[backcolor=transparent]/[backcolor=transparent]html \
  20. [backcolor=transparent]     [backcolor=transparent]&&[backcolor=transparent] wget http[backcolor=transparent]://[backcolor=transparent]ess[backcolor=transparent].[backcolor=transparent]oss[backcolor=transparent]-[backcolor=transparent]cn[backcolor=transparent]-[backcolor=transparent]hangzhou[backcolor=transparent].[backcolor=transparent]aliyuncs[backcolor=transparent].[backcolor=transparent]com[backcolor=transparent]/[backcolor=transparent]ossupload_utf8[backcolor=transparent].[backcolor=transparent]zip [backcolor=transparent]-[backcolor=transparent]O ossupload_utf8[backcolor=transparent].[backcolor=transparent]zip \
  21. [backcolor=transparent]     [backcolor=transparent]&&[backcolor=transparent] unzip [backcolor=transparent]-[backcolor=transparent]d ossupload ossupload_utf8[backcolor=transparent].[backcolor=transparent]zip \
  22. [backcolor=transparent]     [backcolor=transparent]&&[backcolor=transparent] [backcolor=transparent]/[backcolor=transparent]bin[backcolor=transparent]/[backcolor=transparent]cp [backcolor=transparent]-[backcolor=transparent]rf ossupload[backcolor=transparent]/[backcolor=transparent]ossupload_utf8[backcolor=transparent]/*[backcolor=transparent] [backcolor=transparent]/[backcolor=transparent]var[backcolor=transparent]/[backcolor=transparent]www[backcolor=transparent]/[backcolor=transparent]html[backcolor=transparent]/[backcolor=transparent]src[backcolor=transparent]/[backcolor=transparent]extensions[backcolor=transparent]/[backcolor=transparent] \
  23. [backcolor=transparent]     [backcolor=transparent]&&[backcolor=transparent] chown [backcolor=transparent]-[backcolor=transparent]R apache[backcolor=transparent]:[backcolor=transparent]apache [backcolor=transparent]/[backcolor=transparent]var[backcolor=transparent]/[backcolor=transparent]www[backcolor=transparent]/[backcolor=transparent]html
  24. [backcolor=transparent] service httpd start [backcolor=transparent]&&[backcolor=transparent] service php[backcolor=transparent]-[backcolor=transparent]fpm start
  25. [backcolor=transparent] echo [backcolor=transparent]"安装云监控"
  26. [backcolor=transparent] wget http[backcolor=transparent]://[backcolor=transparent]update2[backcolor=transparent].[backcolor=transparent]aegis[backcolor=transparent].[backcolor=transparent]aliyun[backcolor=transparent].[backcolor=transparent]com[backcolor=transparent]/[backcolor=transparent]download[backcolor=transparent]/[backcolor=transparent]quartz_install[backcolor=transparent].[backcolor=transparent]sh
  27. [backcolor=transparent] chmod [backcolor=transparent]+[backcolor=transparent]x quartz_install[backcolor=transparent].[backcolor=transparent]sh
  28. [backcolor=transparent] bash quartz_install[backcolor=transparent].[backcolor=transparent]sh
  29. [backcolor=transparent] echo [backcolor=transparent]"安装完成"


CentOS 7 系统
CentOS 7 采用了systemd来做初始化进程,工作原理与 system V init 区别较大。假设您已创建好脚本,并且测试其运行无误。参照如下步骤,使您使用systemd时,在系统关闭状态仍能运行脚本。

  1. 在[backcolor=transparent]/etc/systemd/system下创建一个文件 run-script-when-shutdown.service,文件内容如下(请把ExecStop变量的值,修改为您需要运行脚本的绝对路径):[backcolor=transparent] [backcolor=transparent][[backcolor=transparent]Unit[backcolor=transparent]]
  2. [backcolor=transparent] [backcolor=transparent]Description[backcolor=transparent]=[backcolor=transparent]service to run script when shutdown
  3. [backcolor=transparent] [backcolor=transparent]After[backcolor=transparent]=[backcolor=transparent]syslog[backcolor=transparent].[backcolor=transparent]target network[backcolor=transparent].[backcolor=transparent]target
  4. [backcolor=transparent] [backcolor=transparent][[backcolor=transparent]Service[backcolor=transparent]]
  5. [backcolor=transparent] [backcolor=transparent]Type[backcolor=transparent]=[backcolor=transparent]simple
  6. [backcolor=transparent] [backcolor=transparent]ExecStart[backcolor=transparent]=/[backcolor=transparent]bin[backcolor=transparent]/[backcolor=transparent]true
  7. [backcolor=transparent] [backcolor=transparent]ExecStop[backcolor=transparent]=/[backcolor=transparent]path[backcolor=transparent]/[backcolor=transparent]to[backcolor=transparent]/[backcolor=transparent]script[backcolor=transparent]/[backcolor=transparent]to[backcolor=transparent]/[backcolor=transparent]run
  8. [backcolor=transparent] [backcolor=transparent]RemainAfterExit[backcolor=transparent]=[backcolor=transparent]yes
  9. [backcolor=transparent] [backcolor=transparent][[backcolor=transparent]Install[backcolor=transparent]]
  10. [backcolor=transparent] [backcolor=transparent]WantedBy[backcolor=transparent]=[backcolor=transparent]default[backcolor=transparent].[backcolor=transparent]target

执行如下命令,使能新创建的服务:
  1. [backcolor=transparent] systemctl enable run[backcolor=transparent]-[backcolor=transparent]script[backcolor=transparent]-[backcolor=transparent]when[backcolor=transparent]-[backcolor=transparent]shutdown
  2. [backcolor=transparent] systemd start run[backcolor=transparent]-[backcolor=transparent]script[backcolor=transparent]-[backcolor=transparent]when[backcolor=transparent]-[backcolor=transparent]shutdown

[backcolor=transparent]说明:
  • 为了使当前服务立即生效,需另外执行restart命令。
  • 您可以配置run-script-when-shutdown运行固定的脚本。需要的时候,相关人员可以修改这个固定的脚本,使其更加灵活实用。

无需运行上述服务时,请执行如下命令:
  1. [backcolor=transparent] systemctl disable run[backcolor=transparent]-[backcolor=transparent]script[backcolor=transparent]-[backcolor=transparent]when[backcolor=transparent]-[backcolor=transparent]shutdown

展开
收起
反向一觉 2017-10-27 14:00:02 2514 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
自动化、智能化网络运维 立即下载
从自动化到智能化的阿里运维体系 立即下载
公共云弹性计算最佳实践-省钱窍门一:弹性伸缩 立即下载