In this article, you'll learn how to configure a Virtual Machine Scale Set with an existing Azure Load Balancer. With an existing virtual network and standard sku load balancer, you can deploy a Virtual Machine Scale Set with a few clicks in the Azure portal, or with a few lines of code in the Azure CLI or Azure PowerShell using the tabs below.
Prerequisites
- An Azure subscription.
- An existing standard sku load balancer in the subscription where the Virtual Machine Scale Set will be deployed.
- An Azure Virtual Network for the Virtual Machine Scale Set.
Sign in to the Azure portal
Sign in to the Azure portal.
Deploy Virtual Machine Scale Set with existing load balancer
In this section, you'll create a Virtual Machine Scale Set in the Azure portal with an existing Azure load balancer.
Note
The following steps assume a virtual network named myVNet and an Azure load balancer named myLoadBalancer has been previously deployed.
On the top left-hand side of the screen, select Create a resource and search for Virtual Machine Scale Set in the marketplace search.
Select Virtual machine scale set and Select Create.
In Create a virtual machine scale set, enter, or select this information in the Basics tab:
Setting |
Value |
Project details |
|
Subscription |
Select your Azure subscription |
Resource Group |
Select Create new, enter myResourceGroup, then select OK, or select an existing resource group. |
Scale set details |
|
Virtual machine scale set name |
Enter myVMSS |
Region |
Select China North 3 |
Availability zone |
Select None |
Instance details |
|
Image |
Select Ubuntu Server 18.04 LTS |
Size |
Leave at default |
Administrator account |
|
Authentication type |
Select Password |
Username |
Enter your admin username |
Password |
Enter your admin password |
Confirm password |
Reenter your admin password |
Select the Networking tab.
Enter or select this information in the Networking tab:
Setting |
Value |
Virtual Network Configuration |
|
Virtual network |
Select myVNet or your existing virtual network. |
Load balancing |
|
Use a load balancer |
Select Yes |
Load balancing settings |
|
Load balancing options |
Select Azure load balancer |
Select a load balancer |
Select myLoadBalancer or your existing load balancer |
Select a backend pool |
Select myBackendPool or your existing backend pool. |
Select the Management tab.
In the Management tab, set Boot diagnostics to Off.
Select the blue Review + create button.
Review the settings and select the Create button.
Prerequisites
An Azure account with an active subscription. Create a trial subscription.
You need an existing standard sku load balancer in the subscription where the Virtual Machine Scale Set will be deployed.
You need an Azure Virtual Network for the Virtual Machine Scale Set.
If you prefer to run CLI reference commands locally, install the Azure CLI. If you're running on Windows or macOS, consider running Azure CLI in a Docker container. For more information, see How to run the Azure CLI in a Docker container.
If you're using a local installation, sign in to the Azure CLI by using the az login command. To finish the authentication process, follow the steps displayed in your terminal. For other sign-in options, see Sign in with the Azure CLI.
When you're prompted, install the Azure CLI extension on first use. For more information about extensions, see Use extensions with the Azure CLI.
Run az version to find the version and dependent libraries that are installed. To upgrade to the latest version, run az upgrade.
- This article requires version 2.0.28 or later of the Azure CLI. If using Azure Poweshell Shell, the latest version is already installed.
Deploy a Virtual Machine Scale Set with existing load balancer
Deploy a Virtual Machine Scale Set with az vmss create
.
Replace the values in brackets with the names of the resources in your configuration.
az vmss create \
--resource-group <resource-group> \
--name <vmss-name>\
--image <your-image> \
--admin-username <admin-username> \
--generate-ssh-keys \
--upgrade-policy-mode Automatic \
--instance-count 3 \
--vnet-name <virtual-network-name> \
--subnet <subnet-name> \
--lb <load-balancer-name> \
--backend-pool-name <backend-pool-name>
The below example deploys a Virtual Machine Scale Set with:
- Virtual Machine Scale Set named myVMSS
- Azure Load Balancer named myLoadBalancer
- Load balancer backend pool named myBackendPool
- Azure Virtual Network named myVnet
- Subnet named mySubnet
- Resource group named myResourceGroup
- Ubuntu Server image for the Virtual Machine Scale Set
az vmss create \
--resource-group myResourceGroup \
--name myVMSS \
--image Canonical:UbuntuServer:18.04-LTS:latest \
--admin-username adminuser \
--generate-ssh-keys \
--upgrade-policy-mode Automatic \
--instance-count 3 \
--vnet-name myVnet\
--subnet mySubnet \
--lb myLoadBalancer \
--backend-pool-name myBackendPool
Note
After the scale set has been created, the backend port cannot be modified for a load balancing rule used by a health probe of the load balancer. To change the port, you can remove the health probe by updating the Azure virtual machine scale set, update the port and then configure the health probe again.
Prerequisites
- An Azure account with an active subscription. Create a trial subscription.
- An existing resource group for all resources.
- An existing standard sku load balancer in the subscription where the Virtual Machine Scale Set will be deployed.
- An Azure Virtual Network for the Virtual Machine Scale Set.
Note
Before you can use Azure CLI in Microsoft Azure operated by 21Vianet, please run az cloud set -n AzureChinaCloud
first to change the cloud environment. If you want to switch back to Azure Public Cloud, run az cloud set -n AzureCloud
again.
Sign in to Azure CLI
Sign into Azure with Connect-AzAccount -Environment AzureChinaCloud
Connect-AzAccount -Environment AzureChinaCloud
Deploy a Virtual Machine Scale Set with existing load balancer
Deploy a Virtual Machine Scale Set with New-AzVMss
. Replace the values in brackets with the names of the resources in your configuration.
$rsg = <resource-group>
$loc = <location>
$vms = <vm-scale-set-name>
$vnt = <virtual-network>
$sub = <subnet-name>
$lbn = <load-balancer-name>
$pol = <upgrade-policy-mode>
$img = <image-name>
$bep = <backend-pool-name>
$lb = Get-AzLoadBalancer -ResourceGroupName $rsg -Name $lbn
New-AzVmss -ResourceGroupName $rsg -Location $loc -VMScaleSetName $vms -VirtualNetworkName $vnt -SubnetName $sub -LoadBalancerName $lb -UpgradePolicyMode $pol
The below example deploys a Virtual Machine Scale Set with the following values:
- Virtual Machine Scale Set named myVMSS
- Azure Load Balancer named myLoadBalancer
- Load balancer backend pool named myBackendPool
- Azure Virtual Network named myVnet
- Subnet named mySubnet
- Resource group named myResourceGroup
$rsg = "myResourceGroup"
$loc = "China East 2"
$vms = "myVMSS"
$vnt = "myVnet"
$sub = "mySubnet"
$pol = "Automatic"
$lbn = "myLoadBalancer"
$bep = "myBackendPool"
$lb = Get-AzLoadBalancer -ResourceGroupName $rsg -Name $lbn
New-AzVmss -ResourceGroupName $rsg -Location $loc -VMScaleSetName $vms -VirtualNetworkName $vnt -SubnetName $sub -LoadBalancerName $lb -UpgradePolicyMode $pol -BackendPoolName $bep
Note
After the scale set has been created, the backend port cannot be modified for a load balancing rule used by a health probe of the load balancer. To change the port, you can remove the health probe by updating the Azure virtual machine scale set, update the port and then configure the health probe again.
Next steps
In this article, you deployed a Virtual Machine Scale Set with an existing Azure Load Balancer. To learn more about Virtual Machine Scale Sets and load balancer, see: