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

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

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

  • 细粒度的性能收集和处理(可以每分钟收集性能数据,最小5分钟作为一个处理窗口进行扩展或者收缩)
  • 支持Linux,当然也支持Windows
  • 支持客户自定义镜像,不需要像以前的云服务一样要预先部署
  • 几分钟内部署上百台服务器
  • 可以在扩展集中整合使用负载均衡器,高可用集合,应用程序网关等服务
  • 支持多种不同类型的度量值(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:定义你在外部要输入的参数值,比如虚拟机的大小,image的名称等

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

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

  6. 打开azuredeploy.json文件,首先需要修改一下Ubuntu的image,在中国最新的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等等:

    比如我的参数文件如下:

时间: 2024-10-10 10:02:31

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

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

12.准备完了模板文件,我们使用Powershell来创建VMSS for Linux的自动扩展集合,首先登陆到Azure中国的ARM账号: Login-AzureRmAccount -EnvironmentName AzureChinaCloud 13. 如果你有多个订阅的话,选择你要创建VMSS的正确订阅: Select-AzureRmSubscription -SubscriptionId XXXXXXXXXX 14. 如果你之前没有创建过资源组,创建一个,所有自动扩展集的资源都放在这个资

Azure ARM 模板,VM扩展命令

Azure ARM模板中,给虚拟机安装扩展脚本的命令 "resources": [ { "apiVersion": "[variables('apiVersion')]", "type": "Microsoft.Compute/virtualMachines/extensions", "name": "[concat(parameters('nginxVmNamePrefix'

VMSS上用Managed Disk和Data Disk进行自动扩展(1)

虚拟机自动扩展集(VMSS)是Azure上一个非常强大的功能,在我之前的系列文档中已经做了详细的介绍,在此就不赘述了:我同时也提到,在使用Azure传统存储账号的时候,也存在诸多限制,比如你需要计算每个存储账号下虚拟机的数量以避免IOPS超过性能限制,需要考虑扩展集中虚拟机数量限制,自定义镜像的限制等等: 在用户进行大规模扩展的设计和使用中,使用传统存储账号非常不方便,所以我们在生产环境下,推荐用户使用在中国区新上线的托管磁盘(managed disk).托管磁盘是将虚拟机的磁盘管理集中交给后台

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

在很多的商业场景中,用户的访问,峰值时间都是很难预测的,尤其是做一些市场推广活动和促销的时候,到底部署什么规模的web集群合适,这一直是个问题,部署过量会造成高成本和资源不必要的浪费,部署过少,如果到达峰值,来不及部署,容易造成用户无法访问,用户体验差,交易损失等等,当然更不用提运维人员时刻神经紧绷的实时监测压力情况,以便及时采取措施-- 在云计算技术日新月异的今天,这个场景是非常不和谐的:)VMSS作为Azure新的计算方式,提供了按照压力负载自动扩展收缩,并且同时支持Windows和Linu

使用ARM模板在Azure中国大规模部署DC/OS集群

容器技术是目前非常流行的技术,尤其是在以Docker作为容器引擎的推动下,让容器的轻量级,可移植,自包含,隔离性等的上了一个新的台阶,目前谈及Dev/Ops,CI/CD很少能够绕过Docker的. Azure在去年就推出了容器服务ACS,以其对开源的全面兼容性,开放性,最全面的编排器(DC/OS, Kubernetes,Swarm)支持而广受好评,但在中国和很多地区,ACS并没有上线,如何在这些地区快速大规模部署容器服务一直是个问题. 而微软更进一步,在11月初,进一步开源了ACS的核心引擎ac

使用ARM模板在Azure中国大规模部署DCOS集群

容器技术是目前非常流行的技术,尤其是在以Docker作为容器引擎的推动下,让容器的轻量级,可移植,自包含,隔离性等的上了一个新的台阶,目前谈及Dev/Ops,CI/CD很少能够绕过Docker的. Azure在去年就推出了容器服务ACS,以其对开源的全面兼容性,开放性,最全面的编排器(DC/OS, Kubernetes,Swarm)支持而广受好评,但在中国和很多地区,ACS并没有上线,如何在这些地区快速大规模部署容器服务一直是个问题. 而微软更进一步,在11月初,进一步开源了ACS的核心引擎ac

Azure ARM虚拟机部署反恶意软件-安全扩展

Azure虚拟机,默认情况下没有安装杀毒软件.如果您有此需求可以通过Azure 扩展进行安装,有关Azure反恶意软件的官方说明请参考:https://docs.azure.cn/zh-cn/security/azure-security-antimalware 对于Azure ARM虚拟机,只能通过Azure Powershell的方式在虚拟机中安装安全扩展,但是前提条件是虚拟机中已经正常安装了Azure Agent 1.可以通过如下方法判断虚拟机是否已经安装了Azure Agent a.虚拟

在vSphere Client使用模板部署虚拟机 系统硬盘空间扩展

在vSphere Client中从模板部署虚拟机 从模板部署虚拟机将创建一个作为该模板的副本的新虚拟机.新虚拟机具有为该模板配置的虚拟硬件.安装的软件和其他属性. 一.连接ESXi或者vSphere Server服务器 1. 打开VMware vSphere Client客户端,输入VMware中心控制的信息,连接到VMware vSphere Center中心: 2.点击"清单"--"虚拟机和模板",找到相应的模板: 3.选择需要部署的虚机的模板,然后点击&quo

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

VMSS中Auto Scale基本原理及诊断 在前面的介绍中,我们看到通过定义规则可以实现虚拟机扩展集的auto scale,那么在后台执行上VMSS的扩展依赖于哪些组件,出现问题(比如自动扩展没有发生的时候),我们在拨打400之前,如何快速的检查是否是配置问题? 本文简单介绍一下VMSS下auto scale的原理,以及出现问题如何快速的检查问题.下图展示了Azure的计算资源监控和数据收集机制,从数据源来讲,Azure的监控数据可以来自于应用程序,诊断日志,系统.自定义的指标数据,也包括审计