教程:使用 Azure CLI 连接到虚拟机规模集实例
虚拟机规模集允许部署和管理一组虚拟机。 在虚拟机规模集的整个生命周期中,可能需要运行一个或多个管理任务。 本教程中您将学习如何:
- 列出连接信息
- 使用 SSH 连接到单个实例
如果没有 Azure 订阅,请在开始前创建 Azure 免费帐户。
先决条件
在 Azure Cloud Shell中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell中的 Bash 快速入门。
如果您希望在本地运行 CLI 引用命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅 如何在 Docker 容器中运行 Azure CLI。
如果使用本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他的登录方式,请参阅 使用 Azure CLI登录。
出现提示时,请先安装 Azure CLI 扩展。 有关扩展的详细信息,请参阅 将扩展与 Azure CLI配合使用。
运行 az version,查找已安装的版本和依赖库。 若要升级到最新版本,请输入命令 az upgrade。
本文需要 Azure CLI 2.0.29 或更高版本。 如果使用 Azure Cloud Shell,则已安装最新版本。
列出规模集中的实例
如果尚未创建规模集,请参阅 教程:使用 Azure CLI 创建和管理虚拟机规模集
列出虚拟机扩展集中的所有实例。
az vmss list-instances \
--resource-group myResourceGroup \
--name myScaleSet \
--output table
Location Name ResourceGroup
---------- ------------------- ---------------
eastus myScaleSet_0e7d4d21 myResourceGroup
eastus myScaleSet_39379fc3 myResourceGroup
获取 NIC 信息
使用 az vm nic list 和单个 VM 实例的名称查找 NIC 名称。
az vm nic list \
--resource-group myResourceGroup
--vm-name myScaleSet_0e7d4d21
[
{
"deleteOption": "Delete",
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-828c525a",
"primary": true,
"resourceGroup": "myResourceGroup"
}
]
使用 VM 名称和 NIC 名称,使用 az vm nic show获取 NIC 的专用 IP 地址、入站 NAT 规则名称和负载均衡器名称。
az vm nic show --resource-group myResourceGroup --vm-name myScaleSet_0e7d4d21 --nic mysca2215Nic-828c525a
{
"enableAcceleratedNetworking": false,
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-828c525a",
"ipConfigurations": [
{
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-828c525a/ipConfigurations/mysca2215IPConfig",
"loadBalancerBackendAddressPools": [
{
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myScaleSetLB/backendAddressPools/myScaleSetLBBEPool",
}
],
"name": "mysca2215IPConfig",
"primary": true,
"privateIpAddress": "10.0.0.5",
"privateIpAddressVersion": "IPv4",
"privateIpAllocationMethod": "Dynamic",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"subnet": {
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myScaleSetVNET/subnets/myScaleSetSubnet",
"resourceGroup": "myResourceGroup",
},
"type": "Microsoft.Network/networkInterfaces/ipConfigurations",
}
],
"location": "eastus",
"name": "mysca2215Nic-828c525a",
"networkSecurityGroup": {
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myScaleSetNSG",
"resourceGroup": "myResourceGroup",
},
"nicType": "Standard",
"primary": true,
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"tapConfigurations": [],
"type": "Microsoft.Network/networkInterfaces",
"virtualMachine": {
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_0e7d4d21",
"resourceGroup": "myResourceGroup"
},
}
获取后端池详细信息
使用后端池名称和负载均衡器名称,获取要连接到 az network lb list-mapping实例的专用 IP 地址的端口。
az network lb list-mapping --backend-pool-name myScaleSetLBBEPool --resource-group myResourceGroup --name myScaleSetLB --request ip=10.0.0.5
{
"inboundNatRulePortMappings": [
{
"backendPort": 22,
"frontendPort": 50001,
"inboundNatRuleName": "NatRule",
"protocol": "Tcp"
}
]
}
获取负载均衡器的公共 IP
使用 az network public-ip list获取负载均衡器的公共 IP。
az network public-ip list --resource-group myResourceGroup
[
{
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myScaleSetLBPublicIP",
"idleTimeoutInMinutes": 4,
"ipAddress": "20.172.211.239",
"ipConfiguration": {
"id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myScaleSetLB/frontendIPConfigurations/loadBalancerFrontEnd",
"resourceGroup": "myResourceGroup"
},
"ipTags": [],
"location": "eastus",
"name": "myScaleSetLBPublicIP",
"provisioningState": "Succeeded",
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Static",
"resourceGroup": "myResourceGroup",
"sku": {
"name": "Standard",
"tier": "Regional"
},
"tags": {},
"type": "Microsoft.Network/publicIPAddresses"
}
]
连接到实例
使用负载均衡器 IP 和要连接到的计算机的端口通过 SSH 连接到计算机。
ssh azureuser@20.172.211.239 -p 50000
后续步骤
在本教程中,您学习了如何列出扩展集中的实例并通过 SSH 连接到单个实例。
- 列出和查看规模集中的实例
- 收集规模集中各个实例的网络信息
- 连接到规模集中的各个 VM 实例