Azure Administrator认证学习指南之创建和部署高可用的Azure VM虚拟机-38
前文谈到通过使用Azure虚拟机可用性集实现VM的高可用性,但是这只是实现了虚拟化服务器本身的高可用性,因此我们还需要借助Azure中的其他服务实现业务的的可用性,例如Azure负载均衡器、Web应用程序网关等。
本文创建运行多个Windows Server 2016 虚拟机,使用Azure虚拟机可用性集以及负载均衡器服务,实现一套业务多个虚拟机之间的流量负载均衡。
记住,Azure 103考试使用Cloud Shell进行LAB操作,具体使用Bash还是PowerShell根据您自己实际情况
以下脚本代码是经过实际验证,亲测可用的。您只需要修改相关参数即可。
# 定义公共属性 $rgName=’AZ103EXAM’ $location=’eastus’ # 设置用户账户和密码 $cred = Get-Credential -Message ‘Enter a username and password for the virtual machine.’ # 创建Azure资源组 New-AzResourceGroup -Name $rgName -Location $location # 创建虚拟网络 $subnet = New-AzVirtualNetworkSubnetConfig -Name ‘AZ103EXAMSubnet’ -AddressPrefix 192.168.1.0/24 $vnet = New-AzVirtualNetwork -ResourceGroupName $rgName -Name ‘AZ103EXAMVnet’ -AddressPrefix 192.168.0.0/16 -Location $location -Subnet $subnet # 创建公共IP $publicIp = New-AzPublicIpAddress -ResourceGroupName $rgName -Name ‘AZ103EXAMPublicIP’ -Location $location -AllocationMethod Dynamic # 创建负载均衡器前端IP $feip = New-AzLoadBalancerFrontendIpConfig -Name ‘AZ103EXAMFrontEndPool’ -PublicIpAddress $publicIp # 创建负载均衡器后端 $bepool = New-AzLoadBalancerBackendAddressPoolConfig -Name ‘AZ103EXAMBackEndPool’ # 设置负载均衡器端口信息 $probe = New-AzLoadBalancerProbeConfig -Name ‘AZ103EXAMHealthProbe’ -Protocol Http -Port 80 -RequestPath / -IntervalInSeconds 360 -ProbeCount 5 # 设置负载均衡器端口规则信息 $rule = New-AzLoadBalancerRuleConfig -Name ‘AZ103EXAMLoadBalancerRuleWeb’ -Protocol Tcp -Probe $probe -FrontendPort 80 -BackendPort 80 -FrontendIpConfiguration $feip -BackendAddressPool $bePool # 设置负载均衡器NAT规则 $natrule1 = New-AzLoadBalancerInboundNatRuleConfig -Name ‘AZ103EXAMLoadBalancerRDP1’ -FrontendIpConfiguration $feip -Protocol tcp -FrontendPort 4221 -BackendPort 3389 $natrule2 = New-AzLoadBalancerInboundNatRuleConfig -Name ‘AZ103EXAMLoadBalancerRDP2’ -FrontendIpConfiguration $feip -Protocol tcp -FrontendPort 4222 -BackendPort 3389 $natrule3 = New-AzLoadBalancerInboundNatRuleConfig -Name ‘AZ103EXAMLoadBalancerRDP3’ -FrontendIpConfiguration $feip -Protocol tcp -FrontendPort 4223 -BackendPort 3389 # 设置负载均衡器 $lb = New-AzLoadBalancer -ResourceGroupName $rgName -Name ‘AZ103EXAMLoadBalancer’ -Location $location -FrontendIpConfiguration $feip -BackendAddressPool $bepool -Probe $probe -LoadBalancingRule $rule -InboundNatRule $natrule1,$natrule2,$natrule3 # 设置网络安全组远程端口 $rule1 = New-AzNetworkSecurityRuleConfig -Name ‘AZ103EXAMNSGRDP’ -Description ‘Allow RDP’ -Access Allow -Protocol Tcp -Direction Inbound -Priority 1000 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 # 设置网络安全组80端口 $rule2 = New-AzNetworkSecurityRuleConfig -Name ‘AZ103EXAMNSGHTTP’ -Description ‘Allow HTTP’ -Access Allow -Protocol Tcp -Direction Inbound -Priority 2000 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 80 # 创建网络安全组 $nsg = New-AzNetworkSecurityGroup -ResourceGroupName $RgName -Location $location -Name ‘AZ103EXAMNSG’ -SecurityRules $rule1,$rule2 # 创建虚拟机网卡并绑定到PIP、NSG $nicVM1 = New-AzNetworkInterface -ResourceGroupName $rgName -Location $location -Name ‘AZ103EXAMNic1’ -LoadBalancerBackendAddressPool $bepool -NetworkSecurityGroup $nsg -LoadBalancerInboundNatRule $natrule1 -Subnet $vnet.Subnets[0] $nicVM2 = New-AzNetworkInterface -ResourceGroupName $rgName -Location $location -Name ‘AZ103EXAMNic2’ -LoadBalancerBackendAddressPool $bepool -NetworkSecurityGroup $nsg -LoadBalancerInboundNatRule $natrule2 -Subnet $vnet.Subnets[0] $nicVM3 = New-AzNetworkInterface -ResourceGroupName $rgName -Location $location -Name ‘AZ103EXAMNic3’ -LoadBalancerBackendAddressPool $bepool -NetworkSecurityGroup $nsg -LoadBalancerInboundNatRule $natrule3 -Subnet $vnet.Subnets[0] # 创建虚拟机可用性集 $as = New-AzAvailabilitySet -ResourceGroupName $rgName -Location $location -Name ‘AZ103EXAMAvSet’ -Sku Aligned -PlatformFaultDomainCount 3 -PlatformUpdateDomainCount 3 # 创建虚拟机 # ############## VM1 ############### # 创建虚拟机配置文件 $vmConfig = New-AzVMConfig -VMName ‘AZ103EXAMVM1’ -VMSize Standard_B2s -AvailabilitySetID $as.Id | Set-AzVMOperatingSystem -Windows -ComputerName ‘AZ103EXAMVM1’ -Credential $cred | Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version latest | Add-AzVMNetworkInterface -Id $nicVM1.Id # 创建虚拟机 $vm1 = New-AzVM -ResourceGroupName $rgName -Location $location -VM $vmConfig # ############## VM2 ############### # 创建虚拟机配置文件 $vmConfig = New-AzVMConfig -VMName ‘AZ103EXAMVM2’ -VMSize Standard_B2s -AvailabilitySetID $as.Id | Set-AzVMOperatingSystem -Windows -ComputerName ‘AZ103EXAMVM2’ -Credential $cred | Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version latest | Add-AzVMNetworkInterface -Id $nicVM2.Id # 创建虚拟机 $vm2 = New-AzVM -ResourceGroupName $rgName -Location $location -VM $vmConfig # ############## VM3 ############### # 创建虚拟机配置文件 $vmConfig = New-AzVMConfig -VMName ‘AZ103EXAMVM3’ -VMSize Standard_B2s -AvailabilitySetID $as.Id | Set-AzVMOperatingSystem -Windows -ComputerName ‘AZ103EXAMVM3’ -Credential $cred | Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version latest | Add-AzVMNetworkInterface -Id $nicVM3.Id # 创建虚拟机 $vm3 = New-AzVM -ResourceGroupName $rgName -Location $location -VM $vmConfig |
在Azure门户中,可以看到您创建的资源
之后您就可以将您的Web业务部署到VM中,并对外发布进行使用
本文固定链接: http://365vcloud.net/2019/11/08/highly-available-azure-vm/ | 365vCloud的云计算之旅
【下一篇】Azure Administrator认证学习指南之在 Azure 中管理虚拟机的可用性-39