0Pricing
Cloud & IT Cert Prep · 课时

虚拟机规模集

根据需求自动扩展或缩减相同的 VM,并配置运行状况探测和负载均衡规则,为应用提供高可用性。

虚拟机规模集 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

Scale Set 要解决的问题

手动管理一组相同的 VM——在需求高峰期间添加服务器、需求下降时移除服务器——既繁琐、容易出错,又耗时。虚拟机 Scale Set(VMSS)通过将一组相同且经过负载均衡的 VM 作为单个资源进行管理,自动完成这一过程。需求增加时,VMSS 会自动添加新的 VM 实例;需求减少时,则会移除实例。这样就无需手动干预,并确保您只需为任意时刻所需的容量付费。

创建 Scale Set

Scale Set 由一个VM 配置文件定义,其中包含映像、大小、磁盘配置和扩展,Scale Set 中的每个实例都共享该配置。创建 Scale Set 时,您需要指定实例数量的最小值和最大值以及初始容量。所有实例都根据同一个映像创建,从而确保整组实例的一致性。您可以跨多个可用性区域部署 Scale Set,Azure 会自动在各区域之间均匀分配实例,以实现高可用性。

# Create a VM Scale Set across Zones 1, 2, and 3
az vmss create \
  --resource-group myRG \
  --name myScaleSet \
  --image Ubuntu2204 \
  --instance-count 2 \
  --zones 1 2 3 \
  --admin-username azureuser \
  --generate-ssh-keys

自动缩放规则

VMSS 自动缩放规则根据指标定义何时添加或移除实例。典型规则如下:“当平均 CPU 利用率在 5 分钟内超过 70% 时,添加 2 个实例;当平均 CPU 在 10 分钟内低于 30% 时,移除 1 个实例。”您还可以根据 Azure 监视器中的自定义指标(例如队列深度、HTTP 请求速率)或根据计划创建规则(例如每个工作日上午将实例扩展到 20 个,夜间再缩减到 5 个)。组合使用基于指标和基于计划的规则,可以精确控制容量。

# Add autoscale rule: scale out when CPU > 70%
az monitor autoscale rule create \
  --resource-group myRG \
  --autoscale-name myScaleSetAutoscale \
  --condition 'Percentage CPU > 70 avg 5m' \
  --scale out 2

使用 Scale Set 进行负载均衡

Scale Set 几乎总是与负载均衡器配合使用,将传入请求分发到所有运行正常的实例。Azure 提供两种选项:Azure 负载均衡器(第 4 层、TCP/UDP),适用于低延迟、高吞吐量场景;以及Azure 应用程序网关(第 7 层、HTTP/HTTPS),适用于需要基于 URL 路由、SSL 终止和 WAF 保护的 Web 应用程序。负载均衡器使用运行状况探测来检测运行状况异常的实例,并在其恢复前自动停止向这些实例路由流量。

运行状况探测和实例修复

VMSS 可以配置自动实例修复:如果运行状况探测确定某个实例运行状况异常(例如应用程序未在 80 端口响应),Scale Set 可以自动删除并替换该实例,换成一个全新且运行正常的实例。此功能通过 automaticRepairsPolicy 设置进行配置。宽限期(例如启动后的 10 分钟)可以防止实例在尚未有足够时间启动应用程序并通过首次运行状况检查前就被替换。

统一协调与灵活协调

Azure VMSS 支持两种协调模式:统一模式——所有实例都相同,并作为一个组进行管理;适合 Web 服务器和工作队列等无状态工作负载。灵活模式——实例可以具有不同的大小和配置,单个 VM 也可以独立管理,同时仍可享受 Scale Set 的区域分布和运行状况模型。对于异构工作负载,或者需要替换特定实例而不影响其他实例的场景,灵活协调更为合适。

实现零停机的滚动升级

更新 Scale Set 中的 VM 映像或配置时,您需要将更改应用到所有实例。VMSS 支持滚动升级,会以小批次更新实例(例如每次更新 20%),而不是一次性更新所有实例。这样可以确保在应用更新期间,大多数实例仍保持服务状态。滚动升级策略允许您配置最大批次大小和批次之间的暂停时间,从而精细控制更新速度,并尽量减少对用户的影响。

Scale Set 中的 Spot 实例

VMSS 可以使用Spot 实例(也称为 Azure Spot VM),利用未使用的 Azure 容量运行,从而大幅节省成本,按即用即付价格最多可节省 90%。代价是,当 Azure 需要收回容量时,Spot 实例可能只提前 30 秒通知就被驱逐。因此,VMSS 中的 Spot 实例适合容错型无状态工作负载,例如批处理作业、媒体编码和持续集成/持续交付构建代理,这些工作负载能够容忍中断并从检查点恢复。

扩展限制和配额

默认情况下,使用 Azure Marketplace 映像时,一个 VMSS 最多可包含1,000 个 VM 实例;使用自定义映像时,最多可包含 600 个实例。Azure 订阅还具有按区域划分的vCPU 配额,用于限制您可以在所有资源中使用的 vCPUs 数量。如果需要超出默认限制进行扩展,您可以通过 Azure 门户请求提高配额。对于可能需要在高峰事件期间扩展到数千个实例的大规模生产部署,提前规划这些限制非常重要。

面向有状态工作负载的 VMSS

虽然 VMSS 主要面向无状态工作负载设计,但它也可以使用持久 OS 磁盘管理有状态应用程序。在此配置中,每个实例在缩减期间解除分配时都会保留其 OS 磁盘,因此可以保留实例特有的状态(例如独有的配置或会话数据)。这适用于游戏服务器等每个实例都具有独特身份的应用程序。不过,对于大多数有状态场景(数据库、缓存),Azure SQL 或 Azure Cache for Redis 等专用 Azure 托管服务通常比 Scale Set 中的 VM 更合适。

Scale Set 监视和诊断

监视 VMSS 需要同时了解 Scale Set 级别(实例数量随时间的变化、自动缩放事件)和单个实例级别(CPU、内存、磁盘、应用程序日志)的信息。Azure 监视器会自动收集 Scale Set 的平台指标。对于应用程序级指标和日志,您可以通过 Scale Set 的 VM 配置文件在实例上安装Azure 监视器代理扩展,这样每个新实例都会自动开始向 Log Analytics 工作区报告数据。这样,您就可以从单个仪表板统一查看整组实例的运行状况。

快速检查

测试您对本课中 Microsoft Azure 基础知识(AZ-900)概念的理解。

课程回顾

在本课中,您学习了以下内容:VM Scale Set 管理一组相同且经过负载均衡的 VM,并根据指标或计划自动缩放;运行状况探测和自动实例修复无需手动干预即可保持整组实例运行正常;滚动升级通过分小批次替换实例,实现零停机更新。接下来,我们将学习 Azure Virtual Desktop,这是一种托管在云中的桌面解决方案。

常见问题解答

「虚拟机规模集」课时是免费的吗?

是的 — 「虚拟机规模集」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「虚拟机规模集」这节课中我会学到什么?

根据需求自动扩展或缩减相同的 VM,并配置运行状况探测和负载均衡规则,为应用提供高可用性。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「虚拟机规模集」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Azure 虚拟机
  2. 虚拟机规模集
  3. Azure 虚拟桌面
  4. 选择合适的计算服务
← 返回 Cloud & IT Cert Prep