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

在Azure以前的ASM版本或者经典模式中,用户使用Azure Website,Azure Cloud Service等PAAS服务,能够实现必定程度上的自动扩展(auto scaling),但有着诸多限制和缺陷,例如只能在PAAS平台上使用,扩展周期较长,没法支持定制化镜像,没法支持Linux等等,那么在Azure上有没有一种服务,能够给予咱们加强的PAAS的自动扩展能力,同时让用户可以像使用IAAS虚拟机同样有最大限度的控制能力昵?git

Azure新的资源管理器(ARM)模式中推出了一项全新的服务,叫作虚拟机扩展集合(Virtual Machine Scale Sets),实现了真正的自动化扩展(auto scaling)功能,对于大并发须要自动扩展的场景提供了很是好的功能支持,例如:github

  • 细粒度的性能收集和处理(能够每分钟收集性能数据,最小5分钟做为一个处理窗口进行扩展或者收缩)web

  • 支持Linux,固然也支持Windowsshell

  • 支持客户自定义镜像,不须要像之前的云服务同样要预先部署json

  • 几分钟内部署上百台服务器ubuntu

  • 能够在扩展集中整合使用负载均衡器,高可用集合,应用程序网关等服务服务器

  • 支持多种不一样类型的度量值(cpu/memeory/network/disk)进行扩展网络

在本文中描述如何经过ARM模板和Powershell,在Azure中国的平台上建立一个Linux的VMSS,实现自动化扩展。对于什么是ARM,什么是ARM模版,ARM和ASM的比较差异等等详见本人其余博客。并发

  1. 首先确保你有一个中国区Azure的账号,而且可以正常登陆预览版的Azure门户:负载均衡

     

    https://portal.azure.cn

     

  2. 安装最新的Azure Powershell,目前最新的版本是2.0.1:http://aka.ms/webpi-azps

  3. Azure提供了很是多的样例模版供用户使用,用户能够很是方便的下载,修改和应用这些模版,全部模版都在Github上,具体地址以下:

    https://github.com/Azure/azure-quickstart-templates

  4. 全部的模板都是json文件,能够本身来修改,在上述地址找到模版"201-vmss-ubuntu-autoscale",并下载 azuredeploy.json 和 azuredeploy.parameters.json 文件。

  5. 首先打开azuredeploy.json文件,一个基本的ARM模板除了基本信息好比有schema和ContecntVersion外,包含3个部分:parameters,variables,resources

     

    Parameters:定义你在外部要输入的参数值,好比虚拟机的大小,p_w_picpath的名称等

    Variables:默认的一些变量,好比存储类型,网络地址,API版本等等

    Resources:你所用到的系统资源和服务,好比网络,虚拟机扩展插件,负载均衡等等

     

  6. 打开azuredeploy.json文件,首先须要修改一下Ubuntu的p_w_picpath,在中国最新的Ubuntu 14的版本是14.04.3-LTS

    修改为:

  7. 全部存储的端点地址都是global的,须要修改为中国的:

    修改成:

     

     

  8. 对于Linux Diagnostics的存储的Endpoint,这个地方要特别注意,除了须要修改存储的Endpoint以外,还须要添加存储metrics的table的endpoint,不然整个VMSS没法采集到正确的数据到相应的table,也不工做:

    修改成:

     

  9. 咱们来看一下自动扩展设置(auto scaling),在定义自动扩展的时候,首先你能够肯定一个容量,好比最小VM数量,默认数量,最大可扩展数量:

    而后咱们须要定义自动扩展的规则,在什么状况下增长实例,什么状况降低低实例,在本例子中,咱们定义了处理器的PercentUserTime,每1分钟采集数据,每5分钟做为一个时间窗口,若是平均值大于60%,那么自动扩展,每次增长一个实例:

  10. 从上面的步骤能够看到,你在Github上拿到的template不能直接使用,由于里面比较多的参数是针对global azure的,须要作一些修改,直接修改好的模板我已经共享到了Github上面,你也能够到以下地址下载使用:

    https://github.com/kingliantop/azurelabs/tree/master/AzureChinaARMTemplate/VMSS-Linux-Autoscale

  11. 打开参数文件azuredeploy.parameters.json,这个文件里面是你针对模板设置参数的地方,好比你要使用什么样的VM大小,用户名密码,初始要多少个VM等等:

    好比个人参数文件以下: