|
|
51CTO旗下网站
|
|
移动端

2.2.5.2 自动缩放

《Microsoft Azure 管理与开发(下册)平台服务PaaS》本书由世纪互联蓝云Microsoft Azure 开发技术支持团队的资深工程师们编写,主要阐述MicrosoftAzure PaaS 服务的开发应用,涉及计算服务、集成认证服务、数据存储服务、大数据服务等方面的内容。本节为大家介绍自动缩放。

作者:世纪互联蓝云公司来源:电子工业出版社|2018-07-12 17:12

2.2.5.2 自动缩放

目前,自动缩放设置完全是使用虚拟机规模集的功能。基于虚拟机规模集中虚拟机的性能负载数据对虚拟机规模集进行缩放,而不能针对Service Fabric 中应用的负载情况进行自动缩放。

1. 开启诊断扩展

自动缩放功能依赖于Azure 诊断功能。在使用自动缩放前,首先确保虚拟机规模集开启Azure Diagnostics Extension,参考以下ARM Template 开启诊断并设置。

  1. "extensionProfile": {  
  2. "extensions": [{  
  3. "name": "Microsoft.Insights.VMDiagnosticsSettings",  
  4. "properties": {  
  5. "publisher": "Microsoft.Azure.Diagnostics",  
  6. "type": "IaaSDiagnostics",  
  7. "typeHandlerVersion": "1.5",  
  8. "autoUpgradeMinorVersion": true,  
  9. "settings": {  
  10. "xmlCfg": "[base64(concat(variables('wadcfg')))]",  
  11. "storageAccount": "[variables('diagnosticsStorage AccountName')]"  
  12. },  
  13. "protectedSettings": {  
  14. " storageAccountName " : " [variables('diagnosticsStorage  
  15. AccountName')]",  
  16. " storageAccountKey " : " [listkeys(variables('accountid'),  
  17. variables ('apiVersion')).key1]",  
  18. "storageAccountEndPoint": "https://core.chinacloudapi.cn"  
  19. }  
  20. }  
  21. }]  

该段模板配置主要是向虚拟机规模集添加诊断扩展,并设置存储诊断信息的存储账号和诊断收集规则。当设置完成后,就会在设置的存储账户 Table 中找到相应的诊断数据存储表,例如:WADPerformanceCounters,可以从里面查看到诊断扩展收集的性能诊断数据。

当开启诊断之后,就可以为其设置自动缩放。目前管理门户还不支持设置自动缩放,只能通过PowerShell,ARM 模板或者CLI 来设置.接下来重点介绍ARM 模板和PowerShell下是如何设置自动缩放.自动缩放规则设置的步骤是通用的,不仅适用于虚拟机规模集,也可用于Azure 的其他PaaS 服务。

使用PowerShell 设置自动缩放,大致分为以下三个步骤。

首先,创建自动缩放规则。针对资源的某一个性能指标设置自动缩放规则,参考如下命令,该命令的作用是针对虚拟机规模集big2 的CPU 性能指标做自动缩放,当虚拟机规模集下所有实例平均CPU 使用率大于60%时,就会触发增加虚拟机实例的缩放操作。

  1. $rule1 = New-AzureRmAutoscaleRule -MetricName " Percentage CPU "  
  2. -MetricResourceId /subscriptions/s1/resourceGroups/big2/providers/ Microsoft.  
  3. Compute/virtualMachineScaleSets/big2 -Operator GreaterThan -MetricStatistic  
  4. Average -Threshold 60 -TimeGrain 00:01:00 -TimeWindow 00:10:00  
  5. -ScaleActionCooldown 00:10:00 -ScaleActionDirection Increase -ScaleActionValue 1 

其次,创建自动缩放基本配置信息。当设置完规则后,就需要将规则放置到自动缩放基本配置信息中,基本配置信息中包含缩放的默认容量、最小和最大容量限制,并且包含之前创建的自动缩放规则。

  1. $profile1 = New-AzureRmAutoscaleProfile -DefaultCapacity 2 -MaximumCapacity  
  2. 10 -MinimumCapacity 2 -Rules $rule1,$rule2 -Name "My_Profile" 

最后,创建自动缩放规则。借助Add-AzureRmAutoscaleSetting 将自动缩放的配置信息发布到Azure 中。

  1. Add-AzureRmAutoscaleSetting -Location "China North" -Name "MyScaleVMSSSetting"  
  2. -ResourceGroup big2 -TargetResourceId /subscriptions/s1/ resourceGroups/big2/  
  3. providers/Microsoft.Compute/virtualMachineScaleSets/big2 -AutoscaleProfiles  
  4. $profile1 -Notifications $notification1 

当创建成功后,可以借助Get-AzureRmAutoScaleHistory 获取自动缩放的历史记录,以确保自动缩放能够正常被执行。

  1. Get-AzureRmAutoScaleHistory ResourceId /subscriptions/s1/resourceGroups/  
  2. myrg1/providers/microsoft.insights/autoscalesettings/myScaleSetting -StartTime  
  3. 2017-03-15 –DetailedOutput 

2. 使用ARM 模板设置自动缩放

借助ARM 模板为虚拟机规模集设置自动缩放规则,该方法较为简单,请参考以下配置模板。

  1. {  
  2. "type": "Microsoft.Insights/autoscaleSettings",  
  3. "apiVersion": "2015-04-01",  
  4. "name": "[concat(parameters('resourcePrefix'),'as1')]",  
  5. "location": "[resourceGroup().location]",  
  6. "dependsOn": ["[concat('Microsoft.Compute/virtualMachineScaleSets/',  
  7. parameters('vmSSName'))]"],  
  8. "properties": {  
  9. "enabled": true,  
  10. "name": "[concat(parameters('resourcePrefix'),'as1')]",  
  11. "profiles": [  
  12. {  
  13. "name": "Profile1",  
  14. "capacity": { "minimum": "1", "maximum": "10","default":  
  15. "1"},  
  16. "rules": [  
  17. {  
  18. "metricTrigger": {  
  19. "metricName": "\\Process(_Total)\\Thread Count",  
  20. "metricNamespace": "",  
  21. "metricResourceUri": "[your resource id]"  
  22. "timeGrain": "PT1M",  
  23. "statistic": "Average",  
  24. "timeWindow": "PT5M",  
  25. "timeAggregation": "Average",  
  26. "operator": "GreaterThan",  
  27. "threshold": 650  
  28. },  
  29. "scaleAction": {  
  30. "direction": "Increase", "type": "ChangeCount",  
  31. "value": "1", "cooldown": "PT5M"  
  32. }  
  33. }  
  34. ]  
  35. }  
  36. ],  
  37. "targetResourceUri": "[ your resource id]"  
  38. }  

示例模板中添加了一条缩放规则,实际使用过程中需按照自己的业务需求来配置。该示例是按照虚拟机规模集的线程数量进行缩放,当虚拟机规模集下所虚拟机的平均线程数超过650 时,就会触发增加1 台虚拟机缩放操作。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

软件架构设计

本书紧紧围绕“软件架构设计”这一主题,立足实践解析了软件架构的概念,阐述了切实可行的软件架构设计方法,提供了可操作性极强的完整的架...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊