教程:使用 Azure PowerShell 连接到虚拟机规模集实例

利用虚拟机规模集,可以部署和管理一组虚拟机。 在虚拟机规模集的整个生命周期内,可能需要运行一个或多个管理任务。 本教程介绍如何执行下列操作:

  • 列出连接信息
  • 使用远程桌面连接连接到单个实例

如果没有 Azure 订阅,可在开始前创建一个试用帐户

列出规模集中的实例

如果尚未创建规模集,请参阅教程:使用 Azure PowerShell 创建和管理虚拟机规模集

使用 Get-AzVM 列出虚拟机规模集中的所有实例。

Get-AzVM -ResourceGroup myResourceGroup
ResourceGroupName Name                  Location    VmSize             OsType    NIC 
----------------- ----                  --------    ------             ------    --- 
myResourceGroup   myScaleSet_Instance1   ChinaNorth2     Standard_DS1_v2    Windows    myScaleSet-instance1-nic      
myResourceGroup   myScaleSet_Instance2   ChinaNorth2     Standard_DS1_v2    Windows    myScaleSet-instance2-nic    

获取 NIC 信息

使用 NIC 名称,通过 Get-AzNetworkInterface 命令获取 NIC 的专用 IP 地址、后端地址池名称和负载均衡器名称。

Get-AzNetworkInterface -Name myScaleSet-instance1-nic
Name                        : myScaleSet-instance1-nic
ResourceGroupName           : myResourceGroup
Location                    : ChinaNorth2
Id                          : /subscriptions//resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myScaleSet-instance1-nic
ProvisioningState           : Succeeded
Tags                        : 
VirtualMachine              : {
                                "Id": "/subscriptions//resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_Instance1"
                              }
IpConfigurations            : [
                                {
                                  "Name": "myScaleSet",
                              "/subscriptions//resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myScaleSet-instance1-nic/ipConfigurations/myScaleSet",
                                  "PrivateIpAddress": "192.168.1.5",
                                  "PrivateIpAllocationMethod": "Dynamic",
                                  "Subnet": {
                                    "Id": "/subscriptions//resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myScaleSet/subnets/myScaleSet",
                                    "IpAllocations": []
                                  },
                                  "ProvisioningState": "Succeeded",
                                  "PrivateIpAddressVersion": "IPv4",
                                  "LoadBalancerBackendAddressPools": [
                                    {
                                      "Id": 
                              40.88.43.135"/subscriptions//resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myScaleSet/backendAddressPools/myScaleSet",
                                      "LoadBalancerBackendAddresses": []
                                    }
                                  ],
                                  "LoadBalancerInboundNatRules": [],
                                  "Primary": true,
                                  "ApplicationGatewayBackendAddressPools": [],
                                  "ApplicationSecurityGroups": [],
                                  "VirtualNetworkTaps": []
                                }
                              ]

获取后端池详细信息

使用后端池名称、负载均衡器名称和专用 IP 地址,通过 Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping 命令获取与要连接到的实例的专用 IP 地址关联的端口。

Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping `
  -ResourceGroupName myResourceGroup `
  -LoadBalancerName myScaleSet `
  -Name myScaleSet `
  -IpAddress 192.168.1.5

如果运行上述命令并发现负载均衡器没有任何入站 NAT 规则,可以使用 Add-AzLoadBalancerInboundNatRuleConfig 命令添加入站 NAT 规则。 完成添加操作后,请再次运行 Get-AzLoadBalancerBackendAddressInboundNatRulePortMapping 命令。

$slb = Get-AzLoadBalancer -Name "myScaleSet" -ResourceGroupName "MyResourceGroup"
$slb | Add-AzLoadBalancerInboundNatRuleConfig -Name "myNatRule" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -IdleTimeoutInMinutes 10 -FrontendPortRangeStart 50000 -FrontendPortRangeEnd 50099 -BackendAddressPool $slb.BackendAddressPools[0] -BackendPort 3389
$slb | Set-AzLoadBalancer
InboundNatRuleName : myNatRule
Protocol           : Tcp
FrontendPort       : 50001
BackendPort        : 3389

获取负载均衡器的公共 IP

使用 GetAzPublicIpAddress 命令获取负载均衡器的公共 IP。

Get-AzPublicIpAddress -ResourceGroup myResourceGroup    
Name                     : myScaleSet
ResourceGroupName        : myResourceGroup
Location                 : ChinaNorth2
Id                       : /subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myScaleSet
ProvisioningState        : Succeeded
PublicIpAllocationMethod : Static
IpAddress                : 40.88.43.135
PublicIpAddressVersion   : IPv4
IdleTimeoutInMinutes     : 4
IpConfiguration          : {
                             "Id": "/subscriptions//resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myScaleSet/frontendIPConfigurations/myScaleSet"
                           }
DnsSettings              : {
                             "DomainNameLabel": "myscaleset-Instance1",
                             "Fqdn": "myscaleset-Instance1.ChinaNorth2.chinacloudapp.cn"
                           }
Zones                    : {}
Sku                      : {
                             "Name": "Standard",
                             "Tier": "Regional"
                           }

连接到实例

使用负载均衡器的公共 IP 地址以及映射到要连接的计算机实例的端口,通过远程桌面功能连接到你的计算机。

Screenshot of remote desktop application from Windows machine.

后续步骤

本教程介绍了如何列出规模集中的实例,以及如何通过 SSH 连接到单个实例。

  • 列出和查看规模集中的实例
  • 收集规模集中单个实例的网络信息
  • 连接到规模集中的单个 VM 实例