34.Azure创建自动伸缩虚拟机规模集(中)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了34.Azure创建自动伸缩虚拟机规模集(中)相关的知识,希望对你有一定的参考价值。

接下来我肯定是需要利用之前创建的ASWTempOS镜像模板来创建虚拟机规模集,故图形化的界面是没法搞了,只能通过Powershell,在此之前我先把上面通过门户创建的虚拟机规模集删除掉、负载均衡删除掉、虚拟×××掉、创建虚拟机规模集时自动创建的存储账户删除掉。

接下来我将通过Powershell来使用ASWTempOS镜像模板来创建虚拟机规模集

创建规模集之前,需使用 New-AzureRmResourceGroup 创建一个资源组。 以下示例在eastasia位置创建一个名为AutoRG的资源组

New-AzureRmResourceGroup -ResourceGroupName AutoRG -Location eastasia

技术分享图片

创建规模负载均衡器:

# 创建一个公网IP地址

$publicIP = New-AzureRmPublicIpAddress `

-ResourceGroupName AutoRG `

-Location eastasia `

-AllocationMethod Dynamic `

-Name ASWPublishIP

# 创建前端和后端IP池

$frontendIP = New-AzureRmLoadBalancerFrontendIpConfig `

-Name ASWFrontEndPool `

-PublicIpAddress $publicIP

$backendPool = New-AzureRmLoadBalancerBackendAddressPoolConfig -Name ASWBackEndPool

# 创建入站NAT规则

$inboundNATPool = New-AzureRmLoadBalancerInboundNatPoolConfig `

-Name "ASWSSHRule" `

-FrontendIpConfigurationId $frontendIP.Id `

-Protocol TCP `

-FrontendPortRangeStart 50001 `

-FrontendPortRangeEnd 50010 `

-BackendPort 22

# 创建一个负载均衡器

$lb = New-AzureRmLoadBalancer `

-ResourceGroupName AutoRG `

-Name ASWNLB `

-Location eastasia `

-FrontendIpConfiguration $frontendIP `

-BackendAddressPool $backendPool `

-InboundNatPool $inboundNATPool

# 在负载均衡器上创建80端口的运行状况探测器

Add-AzureRmLoadBalancerProbeConfig -Name ASWHealthProbe `

-LoadBalancer $lb `

-Protocol tcp `

-Port 80 `

-IntervalInSeconds 15 `

-ProbeCount 2

# 在负载均衡器上创建一个80端口的负载均衡规则

Add-AzureRmLoadBalancerRuleConfig `

-Name ASWRule01 `

-LoadBalancer $lb `

-FrontendIpConfiguration $lb.FrontendIpConfigurations[0] `

-BackendAddressPool $lb.BackendAddressPools[0] `

-Protocol Tcp `

-FrontendPort 80 `

-BackendPort 80

# 更新负载均衡器配置

Set-AzureRmLoadBalancer -LoadBalancer $lb

技术分享图片

这个时候可以看到门户上已经出现了负载均衡器

技术分享图片

接下来创建规模集以及虚拟网络和子网:

# 这里是我们创建一个变量来获取我们的自定义虚拟机镜像模板信息

$image = Get-AzureRmImage `

-ImageName ASWTempOS `

-ResourceGroupName ServersResourceGroup

# 创建一个规模集配置对象

$vmssConfig = New-AzureRmVmssConfig `

-Location eastasia `

-SkuCapacity 1 `

-SkuName Standard_A0 `

-UpgradePolicyMode Automatic

# 引用一个虚拟机镜像(引用我们之前创建的虚拟机镜像模板)

Set-AzureRmVmssStorageProfile -VirtualMachineScaleSet $vmssConfig -OsDiskCreateOption FromImage -ManagedDisk StandardLRS -OsDiskCaching "None" -OsDiskOsType Linux -ImageReferenceId $image.id

# 设置用于通过虚拟机进行身份验证的信息

Set-AzureRmVmssOsProfile $vmssConfig `

-AdminUsername zjunsen `

-AdminPassword ********* `

-ComputerNamePrefix acw

# 创建一个虚拟网络以及子网

$subnet = New-AzureRmVirtualNetworkSubnetConfig `

-Name "AutoScalingNetwork" `

-AddressPrefix 172.16.0.0/24

$vnet = New-AzureRmVirtualNetwork `

-ResourceGroupName "AutoRG" `

-Name "ASWvNet" `

-Location "eastasia" `

-AddressPrefix 172.16.0.0/16 `

-Subnet $subnet

$ipConfig = New-AzureRmVmssIpConfig `

-Name "ASWIPConfig" `

-LoadBalancerBackendAddressPoolsId $lb.BackendAddressPools[0].Id `

-LoadBalancerInboundNatPoolsId $inboundNATPool.Id `

-SubnetId $vnet.Subnets[0].Id

# 将虚拟网络附加到配置对象

Add-AzureRmVmssNetworkInterfaceConfiguration `

-VirtualMachineScaleSet $vmssConfig `

-Name "asw-network-config" `

-Primary $true `

-IPConfiguration $ipConfig

# 使用配置对象创建伸缩规模集 (此步骤可能需要几分钟)

New-AzureRmVmss `

-ResourceGroupName AutoRG `

-Name AutoScalingWeb `

-VirtualMachineScaleSet $vmssConfig

技术分享图片

技术分享图片

技术分享图片

图形化可以看到创建状态

技术分享图片

可以看到虚拟机规模集的对外提供服务的IP地址,这个地址就是负载均衡的对外提供服务地址

技术分享图片

负载均衡器中也按照命令创建出了运行状况探测器

技术分享图片

也创建出了负载均衡规则

技术分享图片

接下来访问我们的NLB(AutoScalingweb规模集)公网IP地址,已经可以正常提供服务了

技术分享图片

除了公网IP地址可以访问外,我们还可以对规模集定义了一个域名标签autoscalingweb.eastasia.cloudapp.azure.com,点击公共IP地址

技术分享图片

在这里可以输入DNS标签

技术分享图片

访问这样的域名标签也是可以的

技术分享图片

到这里虚拟机规模集创建就算完成了,下篇将给点击介绍如何实现自动伸缩功能,并且WEB虚拟机是自动完成加入负载均衡,自动连接后端Azure文件共享对外提供WEB服务的。

以上是关于34.Azure创建自动伸缩虚拟机规模集(中)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 terraform 中由 AKS 群集资源创建的虚拟机规模集或负载均衡器上启用诊断日志?

利用ARM批量自动化创建SSD多磁盘RAID0虚拟机

java虚拟机规范阅读Java虚拟机指令集简介

VMSS上用Managed Disk和Data Disk进行自动扩展

微软云azure虚拟机,我是否可以将现有 VM 添加到可用性集

vm,vbox 虚拟机设置开机自动启动(创建虚拟机快捷方式的命令)