教程:使用 Azure PowerShell 连接到虚拟机规模集实例
虚拟机规模集允许部署和管理一组虚拟机。 在虚拟机规模集的整个生命周期中,可能需要运行一个或多个管理任务。 在本教程中,您将学习如何:
- 列出连接信息
- 使用远程桌面连接来连接到各个实例
如果没有 Azure 订阅,请在开始之前创建 免费帐户。
Azure Cloud Shell
Azure 托管 Azure Cloud Shell,这是一个可以通过浏览器使用的交互式 shell 环境。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用,以使用 Azure 服务。 可以使用 Cloud Shell 预安装命令运行本文中的代码,而无需在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
选择 | 示例/链接 |
---|---|
选择 试用 在代码或命令块右上角。 选择 “试用” 不会自动将代码或命令复制到 Cloud Shell 中。 | |
转到 https://shell.azure.com,或选择“启动 Cloud Shell”按钮,在浏览器中打开 Cloud Shell。 | |
在 Azure 门户的右上角菜单栏上选择“Cloud Shell”按钮。 |
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的 复制 按钮以复制代码或命令。
通过在 Windows 和 Linux 上选择 Ctrl
Shift V ,或者在 macOS 上选择 Cmd Shift V ,将代码或命令粘贴到 Cloud Shell 会话中。选择 Enter 以运行代码或命令。
列出规模设置中的实例
如果尚未创建规模集,请参阅 教程:使用 Azure PowerShell 创建和管理虚拟机规模集。
使用 Get-AzVM列出虚拟机规模集组中的所有实例。
Get-AzVM -ResourceGroup myResourceGroup
ResourceGroupName Name Location VmSize OsType NIC
----------------- ---- -------- ------ ------ ---
myResourceGroup myScaleSet_Instance1 eastus Standard_DS1_v2 Windows myScaleSet-instance1-nic
myResourceGroup myScaleSet_Instance2 eastus Standard_DS1_v2 Windows myScaleSet-instance2-nic
获取 NIC 信息
使用 NIC 名称,获取 NIC 的专用 IP 地址、Get-AzNetworkInterface的后端地址池名称和负载均衡器名称。
Get-AzNetworkInterface -Name myScaleSet-instance1-nic
Name : myScaleSet-instance1-nic
ResourceGroupName : myResourceGroup
Location : eastus
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 : eastus
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.eastus.cloudapp.azure.com"
}
Zones : {}
Sku : {
"Name": "Standard",
"Tier": "Regional"
}
连接到实例
使用负载均衡器的公共 IP 地址和要连接到的计算机实例的端口映射,通过远程桌面连接到计算机。
后续步骤
本教程中,你学习了如何列出你的规模集中的实例,并通过 SSH 连接到单个实例。
- 列出和查看规模集中的实例
- 收集规模集中各个实例的网络信息
- 连接到规模集中的各个 VM 实例