使用 Azure PowerShell 创建虚拟机规模集
前面谈到了使用Azure Portal快速创建和部署虚拟机规模集,但是很多使用我们需要利用自动化工具完成一系列动作,例如使用Azure PowerShell创建和管理虚拟机规模集、使用托管的数据磁盘、自定义VM映像、自动缩放规模集等,效果以及速度都将大于门户操作。
今天主要为大家演示如何使用Azure PowerShell创建和管理虚拟机规模集。
登陆Azure China帐户
Login-AzureRmAccount –EnvironmentName AzureChinaCloud |
使用New-AzureRmResourceGroup命令创建资源组
New-AzureRmResourceGroup -ResourceGroupName “TingVMSS” -Location “ChinaNorth” |
使用 Get-Credential 设置 VM 实例的管理员用户名和密码
使用New-AzureRmVmss创建一个虚拟机规模集。若要将流量分配到单独的 VM 实例,则还要创建负载均衡器。负载均衡器包含的规则可在TCP 端口80 上分配流量,并允许TCP 端口3389上的远程桌面流量,以及TCP端口5985上的 PowerShell远程流量:
使用以下命令查看创建的VM实例
因为我的是一个DEMO场景,所以没有定义较多的脚本参数。例如VM 型号需要根据自己的需求进行指定
使用以下命令查看特定VM实例的其他信息
前面我们也谈到过,虚拟机规模集使用前端负载均衡器进行访问。将公共IP地址分配给负载均衡器,由后者将流量路由到各个VM实例。默认情况下,会将网络地址转换 (NAT) 规则添加到Azure负载均衡器,由后者将远程连接流量转发给给定端口上的每个VM。
使用Get-AzureRmPublicIpAddress查看负载均衡器的公共IP地址
远程连接VM实例指定所需VM实例的公共IP地址和端口号
当前创建的规模集VM实例数量2
若要增加或减少规模集中的VM实例数,可以手动更改容量。规模集会创建或删除所需数量的VM实例,然后配置分发流量所需的负载均衡器。
更新规模集容量需要花费一会儿时间。若要查看规模集中当前包含的实例数,请使用 Get-AzureRmVmss
返回Portal页面查看之前创建的信息
对于以上所使用的脚本,参考如下
#登陆Azure China帐户 Login-AzureRmAccount –EnvironmentName AzureChinaCloud #创建资源组 New-AzureRmResourceGroup -ResourceGroupName “TingVMSS” -Location “ChinaNorth” #定义虚拟机规模集帐户和密码 $cred = Get-Credential #创建虚拟机规模集 New-AzureRmVmss -ResourceGroupName “TingVMSS” -VMScaleSetName “WebServers” -Location “ChinaNorth” -VirtualNetworkName “WebvNet” -SubnetName “FrontEndSubnet” -PublicIpAddressName “PIP-WebServers” -LoadBalancerName “WebServers-SLB” -Credential $cred #查看规模集中的 VM 实例 Get-AzureRmVmssVM -ResourceGroupName “TingVMSS” -VMScaleSetName “WebServers” #查看特定VM实例信息 Get-AzureRmVmssVM -ResourceGroupName “TingVMSS” -VMScaleSetName “WebServers” -InstanceId “3” #定义负载均衡器信息 $SLB = Get-AzureRmLoadBalancer -ResourceGroupName “TingVMSS” -Name “WebServers-SLB” #查看负载均衡器入站规则 Get-AzureRmLoadBalancerInboundNatRuleConfig -LoadBalancer $SLB | Select-Object Name,Protocol,FrontEndPort,BackEndPort #查看负载均衡器的公共 IP 地址 Get-AzureRmPublicIpAddress -ResourceGroupName “TingVMSS” -Name “PIP-WebServers” | Select IpAddress #连接VM实例 mstsc /v 42.159.80.248:50001 #定义虚拟机规模集信息 $vmss = Get-AzureRmVmss -ResourceGroupName “TingVMSS” -Name “WebServers” #定义规模集数量 $vmss.sku.capacity = 3 Update-AzureRmVmss -ResourceGroupName “TingVMSS” -Name “WebServers” -VirtualMachineScaleSet $vmss #查看更新后的VM实例数 Get-AzureRmVmss -ResourceGroupName “TingVMSS” -Name “WebServers” |