zoukankan      html  css  js  c++  java
  • 使用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.jsonazuredeploy.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等等:

      比如我的参数文件如下:

  • 相关阅读:
    jquery实现选项卡(两句即可实现)
    常用特效积累
    jquery学习笔记
    idong常用js总结
    织梦添加幻灯片的方法
    LeetCode "Copy List with Random Pointer"
    LeetCode "Remove Nth Node From End of List"
    LeetCode "Sqrt(x)"
    LeetCode "Construct Binary Tree from Inorder and Postorder Traversal"
    LeetCode "Construct Binary Tree from Preorder and Inorder Traversal"
  • 原文地址:https://www.cnblogs.com/cloudapps/p/5856091.html
Copyright © 2011-2022 走看看