你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure PowerShell 在可用性区域中创建虚拟机
适用于:✔️ Windows VM
本文详细介绍如何使用 Azure PowerShell 在 Azure 可用性区域中创建运行 Windows Server 2016 的 Azure 虚拟机。 可用性区域是 Azure 区域中物理上独立的区域。 使用可用性区域可以在整个数据中心发生故障或服务中断(这种情况很少见)时保护应用和数据。
若要使用可用性区域,请在受支持的 Azure 区域中创建虚拟机。
登录 Azure
运行 Connect-AzAccount
命令以登录 Azure 订阅,并按照屏幕上的说明操作。
Connect-AzAccount
查看 VM SKU 可用性
VM 大小或 SKU 的可用性可能因地区和区域而异。 可以按 Azure 区域列出可用的 VM SKU,以便规划可用性区域的使用。 此功能可确保选择适当的 VM 大小,并跨区域获取所需的复原能力。 有关不同 VM 类型和大小的详细信息,请参阅 VM 大小概述。
可以使用 Get-AzComputeResourceSku 命令来查看可用的 VM SKU。 以下示例列出了 eastus2 区域中可用的 VM SKU:
Get-AzComputeResourceSku | where {$_.Locations.Contains("eastus2")};
输出类似于以下浓缩版示例,其中显示了每种 VM 大小都可用的可用性区域:
ResourceType Name Location Zones [...]
------------ ---- -------- -----
virtualMachines Standard_DS1_v2 eastus2 {1, 2, 3}
virtualMachines Standard_DS2_v2 eastus2 {1, 2, 3}
[...]
virtualMachines Standard_F1s eastus2 {1, 2, 3}
virtualMachines Standard_F2s eastus2 {1, 2, 3}
[...]
virtualMachines Standard_D2s_v3 eastus2 {1, 2, 3}
virtualMachines Standard_D4s_v3 eastus2 {1, 2, 3}
[...]
virtualMachines Standard_E2_v3 eastus2 {1, 2, 3}
virtualMachines Standard_E4_v3 eastus2 {1, 2, 3}
创建资源组
使用 New-AzResourceGroup 创建 Azure 资源组。 资源组是在其中部署和管理 Azure 资源的逻辑容器。 本示例在 eastus2 区域中创建名为 myResourceGroup 的资源组。
New-AzResourceGroup -Name myResourceGroup -Location EastUS2
创建网络资源
创建虚拟网络、子网和公共 IP 地址
这些资源用来与虚拟机建立网络连接,以及连接到 Internet。 在可用性区域(在本示例中为 2)中创建 IP 地址。 在后面的步骤中,请在用来创建 IP 地址的区域中创建 VM。
# Create a subnet configuration
$subnetConfig = New-AzVirtualNetworkSubnetConfig -Name mySubnet -AddressPrefix 192.168.1.0/24
# Create a virtual network
$vnet = New-AzVirtualNetwork -ResourceGroupName myResourceGroup -Location eastus2 `
-Name myVNet -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig
# Create a public IP address in an availability zone and specify a DNS name
$pip = New-AzPublicIpAddress -ResourceGroupName myResourceGroup -Location eastus2 -Zone 2 `
-AllocationMethod Static -IdleTimeoutInMinutes 4 -Name "mypublicdns$(Get-Random)" -Sku Standard
创建网络安全组和网络安全组规则
网络安全组使用入站和出站规则保护虚拟机。 在本例中,会为端口 3389 创建一个入站规则,该规则允许传入的远程桌面连接。 我们还需要为端口 80 创建入站规则,以允许传入的 Web 流量。
# Create an inbound network security group rule for port 3389 - change -Access to "Allow" if you want to allow RDP access
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleRDP -Protocol Tcp `
-Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Deny
# Create an inbound network security group rule for port 80 - - change -Access to "Allow" if you want to allow TCP traffic over port 80
$nsgRuleWeb = New-AzNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleWWW -Protocol Tcp `
-Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 80 -Access Deny
# Create a network security group
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName myResourceGroup -Location eastus2 `
-Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP,$nsgRuleWeb
为虚拟机创建网卡
使用 New-AzNetworkInterface 为虚拟机创建网卡。 网卡将虚拟机连接到子网、网络安全组和公共 IP 地址。
# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzNetworkInterface -Name myNic -ResourceGroupName myResourceGroup -Location eastus2 `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
创建虚拟机
创建虚拟机配置。 此配置包括部署虚拟机时使用的设置,例如虚拟机映像、大小和身份验证配置。 可用性区域支持本示例中的 Standard_DS1_v2 大小。 此配置还指定了创建 IP 地址时所设置的可用性区域。 运行此步骤时,会提示输入凭据。 输入的值将配置为用于虚拟机的用户名和密码。
# Define a credential object
$cred = Get-Credential
# Create a virtual machine configuration
$vmConfig = New-AzVMConfig -VMName myVM -VMSize Standard_DS1_v2 -Zone 2 | `
Set-AzVMOperatingSystem -Windows -ComputerName myVM -Credential $cred | `
Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer `
-Skus 2016-Datacenter -Version latest | Add-AzVMNetworkInterface -Id $nic.Id
使用 New-AzVM 创建虚拟机。
New-AzVM -ResourceGroupName myResourceGroup -Location eastus2 -VM $vmConfig
为托管磁盘确认区域
已在与 VM 相同的可用性区域中创建了 VM 的 IP 地址资源。 在相同的可用性区域中创建了 VM 的托管磁盘资源。 可以使用 Get-AzDisk 验证此结果:
Get-AzDisk -ResourceGroupName myResourceGroup
输出显示,托管磁盘与 VM 位于相同的可用性区域中:
ResourceGroupName : myResourceGroup
AccountType : PremiumLRS
OwnerId : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.
Compute/virtualMachines/myVM
ManagedBy : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx//resourceGroups/myResourceGroup/providers/Microsoft.
Compute/virtualMachines/myVM
Sku : Microsoft.Azure.Management.Compute.Models.DiskSku
Zones : {2}
TimeCreated : 9/7/2017 6:57:26 PM
OsType : Windows
CreationData : Microsoft.Azure.Management.Compute.Models.CreationData
DiskSizeGB : 127
EncryptionSettings :
ProvisioningState : Succeeded
Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.
Compute/disks/myVM_OsDisk_1_bd921920bb0a4650becfc2d830000000
Name : myVM_OsDisk_1_bd921920bb0a4650becfc2d830000000
Type : Microsoft.Compute/disks
Location : eastus2
Tags : {}
后续步骤
本文介绍了如何在可用性区域中创建 VM。 详细了解 Azure VM 的可用性。