前文中已经详细介绍了如何配置和部署Azure的虚拟机扩展集VMSS进行自动扩展,但在实际使用过程当中,用户会出现更进一步使用的一些问题,VMSS基本扩展原理及怎么简单调试?如何进行手动扩展?怎么使用自定义镜像?在设计的时候有哪些最佳实践和考量等等。

本文通过测试自动扩展功能开始,逐步介绍如下主题:

  1. VMSS自动扩展测试及告警规则配置
  2. VMSS中Autoscale基本原理及诊断
  3. VMSS实践及建议
  4. VMSS手动扩展
  5. VMSS中使用定制化镜像

VMSS自动扩展测试及邮件告警规则配置

在你初始创建了VMSS之后,默认情况下的扩展集中的虚拟机个数是你在模板本文中指定的虚拟机容量,在之前的测试中默认情况下,创建的虚拟机为2台。

  1. 创建完成后,ssh登陆到虚拟机,安装压力测试软件stress和CPU监控软件sar:

$ sudo apt-get install sysstat atsar

$ sudo apt-get install stress

  1. 在你的生产环境中,你可能需要知道你的当前虚拟机集合的工作负载情况,一个非常有用的功能就是自动告警,你可以设置当某个指标的负载大于阈值的时候,给你发送邮件,或者触发一个操作,通过这个功能我们也可以了解通过自动扩展,你的工作负载的压力是否缓解,具体操作如下:

    选择你创建的VMSS名称,选择"概述",可以看到有一个CPU百分比:

    单击CPU百分比,选择"添加警报",在度量值选择"CPU user time",阈值50:

    系统采集的周期最短为5分钟,留为默认值,可以选择将告警信息发送给账户所有者或者指定其他邮件,你也可以定义一个webhook地址,触发相应的操作,点击确定完成配置:

  2. 现在使用stress为虚拟机加压,并使用sar监控测虚拟机CPU负载,可以看到,在加压工具作用下,CPU负载始终保持在80%以上,按照auto scale的设置,当这种负载持续5分钟后就会触发自动扩展操作:

  3. 加压超过5分钟的时候,根据我们设置的规则,你会收到一封Azure的邮件,提示你的应用负载超过阈值,发生报警:

  4. 我们登陆到portal,选择虚拟机扩展集,可以看到虚拟机自动扩展开始,新的虚拟机被启动,并按照规则逐渐增加:

  1. 当我们停掉压力测试工具,或者压力低于阈值的时候也会收到一封提示邮件提醒我们压力告警已经解除:

  2. 在Azure的管理界面上,打开虚拟机扩展集,大约5分钟的时间,你也会看到,由于负载低于我们设置的阈值,auto scale的scale in开始工作,开始停止并删除虚拟机,每次删除一个,最终会保持最小值一个:

  1. 通过自动扩展的活动日志,你也可以看到当前进行自动扩展的详情:

从上述测试可以看到,VMSS的自动扩展功能会严格按照我们定义的阈值进行增加VM(Scale out)或者减少VM的操作(Scale in),并且通过设置告警规则,我们可以根据得到的阈值进行相应的操作,比如发邮件告警或者触发一些预定义的操作。

深入理解Azure自动扩展集VMSS(1)的更多相关文章

  1. 深入理解Azure自动扩展集VMSS(3)

    在实际使用过程当中,使用VMSS有一些最佳实践的建议和限制,便于你在做自动扩展设计的时候进行考虑: 关于VMSS 如果你使用的是系统镜像,一个扩展集中虚拟机数量不能超过100 无论是在ASM还是ARM ...

  2. 深入理解Azure自动扩展集VMSS(2)

    VMSS中Auto Scale基本原理及诊断 在前面的介绍中,我们看到通过定义规则可以实现虚拟机扩展集的auto scale,那么在后台执行上VMSS的扩展依赖于哪些组件,出现问题(比如自动扩展没有发 ...

  3. 使用ARM和VMSS创建自动扩展的web集群

    在很多的商业场景中,用户的访问,峰值时间都是很难预测的,尤其是做一些市场推广活动和促销的时候,到底部署什么规模的web集群合适,这一直是个问题,部署过量会造成高成本和资源不必要的浪费,部署过少,如果到 ...

  4. 使用ARM模板部署自动扩展的Linux VMSS(2)

    12.准备完了模板文件,我们使用Powershell来创建VMSS for Linux的自动扩展集合,首先登陆到Azure中国的ARM账号: Login-AzureRmAccount -Environ ...

  5. Azure vm 扩展脚本自动部署Elasticsearch集群

    一.完整过程比较长,我仅给出Azure vm extension script 一键部署Elasticsearch集群的安装脚本,有需要的同学,可以邮件我,我给你完整的ARM Template 如果你 ...

  6. 使用ARM模板部署自动扩展的Linux VMSS(1)

    在Azure之前的ASM版本或者经典模式中,用户使用Azure Website,Azure Cloud Service等PAAS服务,可以实现一定程度上的自动扩展(auto scaling),但有着诸 ...

  7. Kubernetes 1.12公布:Kubelet TLS Bootstrap与Azure虚拟机规模集(VMSS)迎来通用版本号

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/M2l0ZgSsVc7r69eFdTj/article/details/82880341 https: ...

  8. OpenStack 企业私有云的若干需求(2):自动扩展(Auto-scaling) 支持

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  9. Redis复制与可扩展集群搭建

    抄自:http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster 讨论了Redis的常用数据类型与存储机制,本文会讨论一 ...

随机推荐

  1. Hibernate学习笔记--使用ThreadLocal

    参考资料: http://blog.sina.com.cn/s/blog_7ffb8dd5010146i3.html http://lavasoft.blog.51cto.com/62575/5192 ...

  2. Swift—静态属性- 备

    我先来设计一个类:有一个Account(银行账户)类,假设它有3个属性:amount(账户金额).interestRate(利率)和owner(账户名). 在这3个属性中,amount和owner会因 ...

  3. dos下修复硬盘损坏的文件

    点击开始-->运行-->输入cmd,出现DOS状态对话框.在光标处输入有损坏文件的磁盘盘符后回车(如文件夹在D盘就输入D:然后回车),再输入“CHKDSK”,回车即可看到相关检测信息.“C ...

  4. cf B. Fence

    http://codeforces.com/contest/363/problem/B #include <cstdio> #include <cstring> #includ ...

  5. 面试题 41 和为s的两个数字VS 和为S的连续整数序列

    (1)和为S的两个数字 bool findNumberWithSum(int data[], int length, int sum, int &numb1, int &numb2){ ...

  6. MySQL常用Json函数

    官方文档:JSON Functions Name Description JSON_APPEND() Append data to JSON document JSON_ARRAY() Create ...

  7. CH Round #53 -【Nescafé 32】杯NOIP模拟赛

    A.GCD Path http://ch.ezoj.tk/contest/CH%20Round%20%2353%20-%E3%80%90Nescaf%C3%A9%2032%E3%80%91%E6%9D ...

  8. Android 应用间的集成

    第一次在手机上安装wsm tools时发现wsm只是个简单的集成框架,需要用其中的工具还需要单独安装,而安装一个工具以后发现图标没有显示,感觉很神奇,最近工作需要,也要做android应用间的集成,研 ...

  9. qt tablewidget中单个和批量删除代码如下(部分)截图如下

    def coltable(self):#行删除    row=self.downwidget.currentRow()    select=self.downwidget.isItemSelected ...

  10. 在ubuntu14.04上部署hadoop2.6.3

    一.在Ubuntu下创建hadoop组和hadoop用户 增加hadoop用户组,同时在该组里增加hadoop用户,后续在涉及到hadoop操作时,我们使用该用户. 1.创建hadoop用户组 2.创 ...