使用 Azure CLI 在可用性集中创建和部署虚拟机

适用于:✔️ Linux VM

本教程介绍如何使用名为可用性集的功能提高 Azure 上的虚拟机解决方案的可用性和可靠性。 可用性集可确保在 Azure 上部署的 VM 分布在多个隔离的硬件群集中。 这样做可确保在 Azure 中发生硬件或软件故障时,只有一部分 VM 受到影响,并且整体解决方案仍然可用且正常运行。

本教程中,您将学习如何:

  • 创建可用性集
  • 在可用性集中创建 VM
  • 检查可用的 VM 大小

本教程在 Azure Cloud Shell 中使用 CLI,后者已不断更新到最新版本。 若要打开 Cloud Shell,请从任何代码块的顶部选择“试一试” 。

如果选择在本地安装并使用 CLI,本教程要求运行 Azure CLI 2.0.30 或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI

创建可用性集

可以使用 az vm availability-set create 创建可用性集。 在此示例中,对于 myResourceGroupAvailability 资源组中名为 myAvailabilitySet 的可用性集,更新域和容错域的数目设置为 2

首先,使用 az group create 创建资源组,然后创建可用性集:

az group create --name myResourceGroupAvailability --___location eastus

az vm availability-set create \
    --resource-group myResourceGroupAvailability \
    --name myAvailabilitySet \
    --platform-fault-___domain-count 2 \
    --platform-update-___domain-count 2

可用性集允许跨容错域和更新域隔离资源。 容错域表示服务器 + 网络 + 存储资源的隔离集合。 在前面的示例中,部署 VM 时,可用性集分布在至少两个容错域中。 可用性集还分布在两 个更新域中。 两个更新域可确保在 Azure 执行软件更新时隔离 VM 资源,从而阻止 VM 上运行的所有软件同时更新。

在可用性集中创建虚拟机

必须在可用性集中创建虚拟机,以确保它们在硬件上正确分布。 创建可用性集后,无法将现有 VM 添加到可用性集。

使用 az vm create 创建 VM 时,使用 --availability-set 参数指定可用性集的名称。

for i in `seq 1 2`; do
   az vm create \
     --resource-group myResourceGroupAvailability \
     --name myVM$i \
     --availability-set myAvailabilitySet \
     --size Standard_DS1_v2  \
     --vnet-name myVnet \
     --subnet mySubnet \
     --image UbuntuLTS \
     --admin-username azureuser \
     --generate-ssh-keys
done

可用性集中现在有两个虚拟机。 由于它们位于同一可用性集中,因此 Azure 可确保 VM 及其所有资源(包括数据磁盘)分布在隔离的物理硬件之间。 此分发有助于确保整体 VM 解决方案的可用性更高。

可以通过转到资源组> myResourceGroupAvailability > myAvailabilitySet,在门户中查看可用性集分发。 VM 分布在两个容错域和更新域中,如以下示例所示:

门户中的可用性配置集

检查可用的 VM 大小

之后,您可以将其他 VM 添加到可用性集中,前提是硬件上提供相应的 VM 大小。 使用 az vm availability-set list-sizes 列出可用性集的硬件群集上的所有可用大小:

az vm availability-set list-sizes \
     --resource-group myResourceGroupAvailability \
     --name myAvailabilitySet \
	 --output table

后续步骤

在本教程中,你将学习到如何:

  • 创建可用性集
  • 在可用性集中创建 VM
  • 检查可用的 VM 大小

请继续学习下一教程,了解虚拟机规模集。