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 群集资源创建的虚拟机规模集或负载均衡器上启用诊断日志?
VMSS上用Managed Disk和Data Disk进行自动扩展