当前位置: 首页 > Microsoft Azure > 正文

Azure Administrator认证学习指南之管理与维护Azure虚拟机规模集-45-B

今天我们继续介绍从以下几个方面管理Azure VMSS服务。

自动OS升级

在规模集上启用自动 OS 映像升级有助于简化更新管理,这样可以安全自动升级规模集中所有实例的 OS 磁盘:

  • 配置后,映像发布者发布的最新 OS 映像将自动应用于规模集,无需用户干预。
  • 每次发布者发布新映像时,都会以滚动方式升级批处理实例。
  • 与应用程序运行状况探测和应用程序运行状况扩展集成。
  • 适用于所有 VM 大小以及 Windows 和 Linux 映像。
  • 可以随时取消自动升级(也可以手动启动 OS 升级)。
  • VM 的 OS 磁盘将被替换为使用最新映像版本创建的新 OS 磁盘。运行配置的扩展和自定义数据脚本,同时保留永久性数据磁盘。
  • 支持扩展定序。
  • 可在任何大小的缩放集中启用自动操作系统映像升级。

在Azure虚拟机规模集自动 OS 映像升级中,是将 VM 的 OS 磁盘替换为使用最新映像版本创建的新磁盘。 所配置的任何扩展和自定义数据脚本将在 OS 磁盘上运行,同时保留永久性数据磁盘。为了尽量减少应用程序停机时间,将分批进行升级,在任一时间,规模集内正在进行升级的计算机不会超过 20%。 还可以集成 Azure 负载均衡器应用程序运行状况探测或应用程序运行状况扩展。建议在升级过程中使用应用程序检测信号,并针对每个批次验证升级是否成功。

  • 在开始升级过程之前,业务流程协调程序将确保整个规模集中(出于任何原因)不正常的实例不会超过 20%。
  • 升级协调器标识要升级的 VM 实例批处理,其中任何一个批处理的最大实例计数为 20%,但至少批处理大小为一个虚拟机。
  • 所选一批 VM 实例的 OS 磁盘将替换为从最新映像创建的新 OS 磁盘。比例集模型中的所有指定扩展和配置都应用于升级的实例。
  • 对于配置了应用程序运行状况探测或应用程序运行状况扩展的规模集,升级最多等待 5 分钟来等待实例变得正常,然后继续升级下一批。 如果实例在升级后 5 分钟内未恢复其运行状况,则默认情况下将还原实例的上一个操作系统磁盘。
  • 升级业务流程协调程序还会跟踪升级后不正常的实例百分比。 如果升级过程中超过 20% 的已升级实例变得不正常,升级将会停止。
  • 上述过程会持续到升级了规模集中的所有实例为止。

若要配置自动 OS 映像升级,请确保在规模集模型定义中将 automaticOSUpgradePolicy.enableAutomaticOSUpgrade 属性设置为 true


az vmss update –name myScaleSet –resource-group myResourceGroup –set UpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade=true

可以使用 Azure PowerShell、Azure CLI 2.0 或 REST API 检查在规模集上执行的最新 OS 升级的历史记录。 可以获取过去两个月内最近五次 OS 升级尝试的历史记录。

az vmss get-os-upgrade-history –resource-group myResourceGroup –name myScaleSet

使用如下命令获取支持自动操作系统升级的可用映像版本:

az vm image list –location “westus” –publisher “Canonical” –offer “UbuntuServer” –sku “16.04-LTS” –all

纵向缩放

垂直缩放,也称为纵向扩展和纵向缩减,即增大或减小虚拟机 (VM) 大小,以响应工作负荷。将此行为与水平缩放(也称为扩大** 和缩小**,其中 VM 数目的更改取决于工作负荷)进行比较。一般适用于

  • 在虚拟机上构建的服务使用不足(例如周末)。 减小 VM 的大小可以减少每月成本。
  • 增加 VM 的大小以处理更大的需求,而无需创建其他 VM。

 

可将垂直缩放设置为基于指标从虚拟机规模集触发警报。警报被激活时,将开启 Webhook,此Webhook 将触发可对规模集进行增加或减少的Runbook。

可通过以下步骤配置垂直缩放:

  • 使用运行时功能创建 Azure 自动化帐户。


  • 将虚拟机规模集的 Azure 自动化垂直缩放 Runbook 导入订阅中。


  • 将 Webhook 添加到 Runbook。

由于Azure订阅配额问题,这一步操作还请参考微软官网网站

https://docs.microsoft.com/zh-cn/azure/automation/automation-webhooks

  • 将警报添加到使用 Webhook 通知的虚拟机规模集。

$actionEmail = New-AzAlertRuleEmail -CustomEmail user@contoso.com

$actionWebhook = New-AzAlertRuleWebhook -ServiceUri <uri-of-the-webhook>

$threshold = <value-of-the-threshold>

$rg = <resource-group-name>

$id = <resource-id-to-add-the-alert-to>

$location = <location-of-the-resource>

$alertName = <name-of-the-resource>

$metricName = <metric-to-fire-the-alert-on>

$timeWindow = <time-window-in-hh:mm:ss-format>

$condition = <condition-for-the-threshold> # Other valid values are LessThanOrEqual, GreaterThan, GreaterThanOrEqual

$description = <description-for-the-alert>

Add-AzMetricAlertRule -Name $alertName -Location $location -ResourceGroup $rg -TargetResourceId $id -MetricName $metricName -Operator $condition -Threshold $threshold -WindowSize $timeWindow -TimeAggregationOperator Average -Actions $actionEmail, $actionWebhook -Description $description

缩小策略

Azure虚拟机规模集中提供了很多指标用于操作与管理该服务,因此可根据一系列指标(包括平台指标和用户定义的自定义指标)横向扩展或缩减虚拟机规模集部署。虽然横向扩展基于规模集模型创建新的虚拟机,但扩展影响正在运行的虚拟机,这些虚拟机可能具有不同的配置和/或功能,因为规模集工作负载会发生变化。

扩展策略功能为用户提供了一种通过三个扩展配置来配置虚拟机的放大顺序的方法:

  • Default 横向缩减策略

默认情况下,虚拟机规模集会应用此策略来确定要横向缩减的实例。使用 Default 策略时,将按以下顺序选择要横向缩减的 VM:

    • 跨可用性区域均衡虚拟机(如果规模集部署在区域配置中)
    • 跨容错域均衡虚拟机(尽力而为)
    • 删除实例 ID 最大的虚拟机
  • NewestVM 横向缩减策略

此策略在跨可用性区域均衡 VM 之后删除规模集中创建的最新虚拟机(适用于区域部署)。若要启用此策略,需要对虚拟机规模集模型进行配置更改。

  • OldestVM 横向缩减策略

此策略在跨可用性区域均衡VM之后删除规模集中创建的最旧虚拟机(适用于区域部署)。若要启用此策略,需要对虚拟机规模集模型进行配置更改。


可通过以下方式在虚拟机规模集模型上定义横向缩减策略

az group create –name <myResourceGroup> –location <VMSSLocation>

az vmss create –resource-group <myResourceGroup> –name <myVMScaleSet> –image UbuntuLTS –admin-username <azureuser> –generate-ssh-keys –scale-in-policy OldestVM

当虚拟机规模集未进行区域均衡时,规模集会先删除跨不均衡区域的 VM。 在不均衡的区域中,规模集将使用上面指定的横向缩减策略来确定要横向缩减哪个 VM。 在这种情况下,在不均衡的区域中,规模集将选择删除该区域中的最旧 VM。

对于非区域性虚拟机规模集,策略会选择删除整个规模集中的最旧 VM。

在上述横向缩减策略中使用”NewestVM”时,相同的过程适用。

如果在上述示例中你要将策略从”OldestVM”更改为”NewestVM”,可执行的操作命令:

az vmss update –resource-group <myResourceGroup> –name <myVMScaleSet> –scale-in-policy OldestVM

实例保护

Azure 虚拟机规模集可以通过自动缩放提高工作负荷的弹性,让你可以配置何时对基础结构进行横向扩展,何时对其进行横向缩减。规模集还可以让你通过不同的升级策略设置集中管理、配置和更新大量 VM。可以针对规模集模型配置更新,此时如果已将升级策略设置为”自动”或”滚动”,则新配置会自动应用到每个规模集实例。

当应用程序处理流量时,有时可能需要对特定规模集实例进行不同于其他实例的处理。 例如,规模集中的某些实例可能正在执行长时间运行的操作,需要在这些操作完成后再横向缩减这些实例。另外,可能还需要让规模集中的一些实例专门执行其他任务或不同于规模集的其他成员的任务。这些”特殊的”VM 不能与规模集中的其他实例一起修改。实例保护提供的其他控制可以为应用程序实现这些方案和其他方案。

虚拟机规模集提供两种类型的实例保护:


防止进行横向缩减

az vmss update –resource-group <myResourceGroup> –name <myVMScaleSet> –instance-id 0 –protect-from-scale-in true

防止进行规模集操作

az vmss update –resource-group <myResourceGroup> –name <myVMScaleSet> –instance-id 0 –protect-from-scale-in true –protect-from-scale-set-actions true

关于Azure虚拟机规模集的管理与维护操作还有很多很多,这里不再一一介绍。

本文固定链接: http://365vcloud.azurewebsites.net/2020/04/17/manage-and-operate-azure-virtual-machine-scale-set-b/ | 365vCloud的云计算之旅

该日志由 TingXu 于2020年04月17日发表在 Microsoft Azure 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Azure Administrator认证学习指南之管理与维护Azure虚拟机规模集-45-B | 365vCloud的云计算之旅
关键字: , ,

Azure Administrator认证学习指南之管理与维护Azure虚拟机规模集-45-B:目前有112 条留言

发表评论

您必须 [ 登录 ] 才能发表留言!