使用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等等:

    好比個人蔘數文件以下:

相關文章
相關標籤/搜索