Snabbstart: Skapa en offentlig lastbalanserare som lastbalanserar virtuella datorer med hjälp av Azure PowerShellQuickstart: Create a public load balancer to load balance VMs using Azure PowerShell

Kom igång med Azure Load Balancer hjälp av Azure PowerShell för att skapa en offentlig lastbalanserare och tre virtuella datorer.Get started with Azure Load Balancer by using Azure PowerShell to create a public load balancer and three virtual machines.

FörutsättningarPrerequisites

Om du väljer att installera och använda PowerShell lokalt kräver den här artikeln version 5.4.1 eller senare av Azure PowerShell-modulen.If you choose to install and use PowerShell locally, this article requires the Azure PowerShell module version 5.4.1 or later. Kör Get-Module -ListAvailable Az för att hitta den installerade versionen.Run Get-Module -ListAvailable Az to find the installed version. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul).If you need to upgrade, see Install Azure PowerShell module. Om du kör PowerShell lokalt måste du också köra Connect-AzAccount för att skapa en anslutning till Azure.If you're running PowerShell locally, you also need to run Connect-AzAccount to create a connection with Azure.

Skapa en resursgruppCreate a resource group

En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.An Azure resource group is a logical container into which Azure resources are deployed and managed.

Skapa en resursgrupp med New-AzResourceGroup:Create a resource group with New-AzResourceGroup:

New-AzResourceGroup -Name 'CreatePubLBQS-rg' -Location 'eastus'


Anteckning

Standard-SKU-lastbalanserare rekommenderas för produktionsarbetsbelastningar.Standard SKU load balancer is recommended for production workloads. Mer information om SKU:er finns i Azure Load Balancer SKU:er.For more information about skus, see Azure Load Balancer SKUs.

Standardresurser för lastbalanserare som skapats för snabbstart.

Skapa en offentlig IP-adress – StandardCreate a public IP address - Standard

Använd New-AzPublicIpAddress för att skapa en offentlig IP-adress.Use New-AzPublicIpAddress to create a public IP address.

$publicip = @{
    Name = 'myPublicIP'
    ResourceGroupName = 'CreatePubLBQS-rg'
    Location = 'eastus'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1,2,3
}
New-AzPublicIpAddress @publicip

Använd följande kommando för att skapa en zonindead offentlig IP-adress i zon 1:To create a zonal public IP address in zone 1, use the following command:

$publicip = @{
    Name = 'myPublicIP'
    ResourceGroupName = 'CreatePubLBQS-rg'
    Location = 'eastus'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1
}
New-AzPublicIpAddress @publicip

Skapa en standardlastbalanserareCreate standard load balancer

I det här avsnittet beskrivs hur du gör för att skapa och konfigurera följande komponenter i lastbalanseraren:This section details how you can create and configure the following components of the load balancer:

## Place public IP created in previous steps into variable. ##
$publicIp = Get-AzPublicIpAddress -Name 'myPublicIP' -ResourceGroupName 'CreatePubLBQS-rg'

## Create load balancer frontend configuration and place in variable. ##
$feip = New-AzLoadBalancerFrontendIpConfig -Name 'myFrontEnd' -PublicIpAddress $publicIp

## Create backend address pool configuration and place in variable. ##
$bepool = New-AzLoadBalancerBackendAddressPoolConfig -Name 'myBackEndPool'

## Create the health probe and place in variable. ##
$probe = @{
    Name = 'myHealthProbe'
    Protocol = 'http'
    Port = '80'
    IntervalInSeconds = '360'
    ProbeCount = '5'
    RequestPath = '/'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe

## Create the load balancer rule and place in variable. ##
$lbrule = @{
    Name = 'myHTTPRule'
    Protocol = 'tcp'
    FrontendPort = '80'
    BackendPort = '80'
    IdleTimeoutInMinutes = '15'
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bePool
}
$rule = New-AzLoadBalancerRuleConfig @lbrule -EnableTcpReset -DisableOutboundSNAT

## Create the load balancer resource. ##
$loadbalancer = @{
    ResourceGroupName = 'CreatePubLBQS-rg'
    Name = 'myLoadBalancer'
    Location = 'eastus'
    Sku = 'Standard'
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bePool
    LoadBalancingRule = $rule
    Probe = $healthprobe
}
New-AzLoadBalancer @loadbalancer

Konfigurera virtuellt nätverk – StandardConfigure virtual network - Standard

Innan du distribuerar virtuella datorer och testar lastbalanseraren skapar du de stödande virtuella nätverksresurserna.Before you deploy VMs and test your load balancer, create the supporting virtual network resources.

Skapa ett virtuellt nätverk för de virtuella serverdatorerna.Create a virtual network for the backend virtual machines.

Skapa en nätverkssäkerhetsgrupp för att definiera inkommande anslutningar till ditt virtuella nätverk.Create a network security group to define inbound connections to your virtual network.

Skapa virtuellt nätverk, nätverkssäkerhetsgrupp och skyddsvärdCreate virtual network, network security group, and bastion host

## Create backend subnet config ##
$subnet = @{
    Name = 'myBackendSubnet'
    AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet 

## Create Azure Bastion subnet. ##
$bastsubnet = @{
    Name = 'AzureBastionSubnet' 
    AddressPrefix = '10.1.1.0/24'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet

## Create the virtual network ##
$net = @{
    Name = 'myVNet'
    ResourceGroupName = 'CreatePubLBQS-rg'
    Location = 'eastus'
    AddressPrefix = '10.1.0.0/16'
    Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net

## Create public IP address for bastion host. ##
$ip = @{
    Name = 'myBastionIP'
    ResourceGroupName = 'CreatePubLBQS-rg'
    Location = 'eastus'
    Sku = 'Standard'
    AllocationMethod = 'Static'
}
$publicip = New-AzPublicIpAddress @ip

## Create bastion host ##
$bastion = @{
    ResourceGroupName = 'CreatePubLBQS-rg'
    Name = 'myBastion'
    PublicIpAddress = $publicip
    VirtualNetwork = $vnet
}
New-AzBastion @bastion -AsJob

## Create rule for network security group and place in variable. ##
$nsgrule = @{
    Name = 'myNSGRuleHTTP'
    Description = 'Allow HTTP'
    Protocol = '*'
    SourcePortRange = '*'
    DestinationPortRange = '80'
    SourceAddressPrefix = 'Internet'
    DestinationAddressPrefix = '*'
    Access = 'Allow'
    Priority = '2000'
    Direction = 'Inbound'
}
$rule1 = New-AzNetworkSecurityRuleConfig @nsgrule

## Create network security group ##
$nsg = @{
    Name = 'myNSG'
    ResourceGroupName = 'CreatePubLBQS-rg'
    Location = 'eastus'
    SecurityRules = $rule1
}
New-AzNetworkSecurityGroup @nsg

Skapa virtuella datorer – StandardCreate virtual machines - Standard

I det här avsnittet skapar du de tre virtuella datorerna för lastbalanseringspoolens serverdelspool.In this section, you'll create the three virtual machines for the backend pool of the load balancer.

# Set the administrator and password for the VMs. ##
$cred = Get-Credential

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'myVNet' -ResourceGroupName 'CreatePubLBQS-rg'

## Place the load balancer into a variable. ##
$lb = @{
    Name = 'myLoadBalancer'
    ResourceGroupName = 'CreatePubLBQS-rg'
}
$bepool = Get-AzLoadBalancer @lb  | Get-AzLoadBalancerBackendAddressPoolConfig

## Place the network security group into a variable. ##
$nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'CreatePubLBQS-rg'

## For loop with variable to create virtual machines for load balancer backend pool. ##
for ($i=1; $i -le 3; $i++)
{
## Command to create network interface for VMs ##
$nic = @{
    Name = "myNicVM$i"
    ResourceGroupName = 'CreatePubLBQS-rg'
    Location = 'eastus'
    Subnet = $vnet.Subnets[0]
    NetworkSecurityGroup = $nsg
    LoadBalancerBackendAddressPool = $bepool
}
$nicVM = New-AzNetworkInterface @nic

## Create a virtual machine configuration for VMs ##
$vmsz = @{
    VMName = "myVM$i"
    VMSize = 'Standard_DS1_v2'  
}
$vmos = @{
    ComputerName = "myVM$i"
    Credential = $cred
}
$vmimage = @{
    PublisherName = 'MicrosoftWindowsServer'
    Offer = 'WindowsServer'
    Skus = '2019-Datacenter'
    Version = 'latest'    
}
$vmConfig = New-AzVMConfig @vmsz `
    | Set-AzVMOperatingSystem @vmos -Windows `
    | Set-AzVMSourceImage @vmimage `
    | Add-AzVMNetworkInterface -Id $nicVM.Id

## Create the virtual machine for VMs ##
$vm = @{
    ResourceGroupName = 'CreatePubLBQS-rg'
    Location = 'eastus'
    VM = $vmConfig
    Zone = "$i"
}
New-AzVM @vm -AsJob
}

Distributionerna av de virtuella datorerna och skyddsvärden skickas som PowerShell-jobb.The deployments of the virtual machines and bastion host are submitted as PowerShell jobs. Om du vill visa status för jobben använder du Get-Job:To view the status of the jobs, use Get-Job:

Get-Job

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
1      Long Running O… AzureLongRunni… Completed     True            localhost            New-AzBastion
2      Long Running O… AzureLongRunni… Completed     True            localhost            New-AzVM
3      Long Running O… AzureLongRunni… Completed     True            localhost            New-AzVM
4      Long Running O… AzureLongRunni… Completed     True            localhost            New-AzVM

Anteckning

Azure tillhandahåller en ohemlig IP-adress för Azure Virtual Machines som inte har tilldelats en offentlig IP-adress eller finns i backend-poolen för en intern Basic-Azure Load Balancer.Azure provides an ephemeral IP for Azure Virtual Machines which aren't assigned a public IP address, or are in the backend pool of an internal Basic Azure Load Balancer. Den tillfälliga IP-mekanismen ger en utgående IP-adress som inte kan konfigureras.The ephemeral IP mechanism provides an outbound IP address that isn't configurable.

Den tillfälliga IP-adressen inaktiveras när en offentlig IP-adress tilldelas till den virtuella datorn eller om den virtuella datorn placeras i serverpoolen för en Standard Load Balancer med eller utan regler för utgående trafik.The ephemeral IP is disabled when a public IP address is assigned to the virtual machine or the virtual machine is placed in the backend pool of a Standard Load Balancer with or without outbound rules. Om en Azure Virtual Network NAT-gatewayresurs tilldelas till undernätet för den virtuella datorn inaktiveras den tillfälliga IP-adressen.If a Azure Virtual Network NAT gateway resource is assigned to the subnet of the virtual machine, the ephemeral IP is disabled.

Mer information om utgående anslutningar i Azure finns i Använda källnätverksadressöversättning (SNAT) för utgående anslutningar.For more information on outbound connections in Azure, see Using Source Network Address Translation (SNAT) for outbound connections.

Skapa regelkonfiguration för utgående trafikCreate outbound rule configuration

Regler för utgående lastbalanserare konfigurerar utgående källnätverksadressöversättning (SNAT) för virtuella datorer i backend-poolen.Load balancer outbound rules configure outbound source network address translation (SNAT) for VMs in the backend pool.

Mer information om utgående anslutningar finns i Utgående anslutningar i Azure.For more information on outbound connections, see Outbound connections in Azure.

Skapa utgående offentlig IP-adressCreate outbound public IP address

Använd New-AzPublicIpAddress för att skapa en redundant offentlig IP-adress för standardzoner med namnet myPublicIPOutbound.Use New-AzPublicIpAddress to create a standard zone redundant public IP address named myPublicIPOutbound.

$publicipout = @{
    Name = 'myPublicIPOutbound'
    ResourceGroupName = 'CreatePubLBQS-rg'
    Location = 'eastus'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1,2,3
}
New-AzPublicIpAddress @publicipout

Använd följande kommando för att skapa en zonindead offentlig IP-adress i zon 1:To create a zonal public IP address in zone 1, use the following command:

$publicipout = @{
    Name = 'myPublicIPOutbound'
    ResourceGroupName = 'CreatePubLBQS-rg'
    Location = 'eastus'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1
}
New-AzPublicIpAddress @publicipout

Skapa konfiguration för utgående trafikCreate outbound configuration

## Place public IP created in previous steps into variable. ##
$pubip = @{
    Name = 'myPublicIPOutbound'
    ResourceGroupName = 'CreatePubLBQS-rg'
}
$publicIp = Get-AzPublicIpAddress @pubip

## Get the load balancer configuration ##
$lbc = @{
    ResourceGroupName = 'CreatePubLBQS-rg'
    Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @lbc

## Create the frontend configuration ##
$fe = @{
    Name = 'myFrontEndOutbound'
    PublicIPAddress = $publicIP
}
$lb | Add-AzLoadBalancerFrontendIPConfig @fe | Set-AzLoadBalancer

## Create the outbound backend address pool ##
$be = @{
    Name = 'myBackEndPoolOutbound'
}
$lb | Add-AzLoadBalancerBackendAddressPoolConfig @be | Set-AzLoadBalancer

## Apply the outbound rule configuration to the load balancer. ##
$rule = @{
    Name = 'myOutboundRule'
    AllocatedOutboundPort = '10000'
    Protocol = 'All'
    IdleTimeoutInMinutes = '15'
    FrontendIPConfiguration = $lb.FrontendIpConfigurations[1]
    BackendAddressPool = $lb.BackendAddressPools[1]
}
$lb | Add-AzLoadBalancerOutBoundRuleConfig @rule | Set-AzLoadBalancer

Lägga till virtuella datorer i en utgående poolAdd virtual machines to outbound pool

Lägg till nätverksgränssnitten för virtuella datorer i den utgående poolen för lastbalanseraren med Add-AzNetworkInterfaceIpConfig:Add the virtual machine network interfaces to the outbound pool of the load balancer with Add-AzNetworkInterfaceIpConfig:

## Get the load balancer configuration ##
$lbc = @{
    ResourceGroupName = 'CreatePubLBQS-rg'
    Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @lbc

# For loop with variable to add virtual machines to backend outbound pool. ##
for ($i=1; $i -le 3; $i++)
{
$nic = @{
    ResourceGroupName = 'CreatePubLBQS-rg'
    Name = "myNicVM$i"
}
$nicvm = Get-AzNetworkInterface @nic

## Apply the backend to the network interface ##
$be = @{
    Name = 'ipconfig1'
    LoadBalancerBackendAddressPoolId = $lb.BackendAddressPools[0].id,$lb.BackendAddressPools[1].id
}
$nicvm | Set-AzNetworkInterfaceIpConfig @be | Set-AzNetworkInterface
}

Installera IISInstall IIS

Använd Set-AzVMExtension för att installera Anpassat skripttillägg.Use Set-AzVMExtension to install the Custom Script Extension.

Tillägget kör PowerShell Add-WindowsFeature Web-Server för att installera IIS-webbservern och uppdaterar sedan sidan Default.htm till att visa värddatornamnet för den virtuella datorn:The extension runs PowerShell Add-WindowsFeature Web-Server to install the IIS webserver and then updates the Default.htm page to show the hostname of the VM:

Viktigt

Se till att distributionerna av virtuella datorer har slutförts från föregående steg innan du fortsätter.Ensure the virtual machine deployments have completed from the previous steps before proceeding. Använd Get-Job för att kontrollera status för de virtuella datordistributionsjobben.Use Get-Job to check the status of the virtual machine deployment jobs.

## For loop with variable to install custom script extension on virtual machines. ##
for ($i=1; $i -le 3; $i++)
{
$ext = @{
    Publisher = 'Microsoft.Compute'
    ExtensionType = 'CustomScriptExtension'
    ExtensionName = 'IIS'
    ResourceGroupName = 'CreatePubLBQS-rg'
    VMName = "myVM$i"
    Location = 'eastus'
    TypeHandlerVersion = '1.8'
    SettingString = '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
}
Set-AzVMExtension @ext -AsJob
}

Tilläggen distribueras som PowerShell-jobb.The extensions are deployed as PowerShell jobs. Om du vill visa status för installationsjobben använder du Get-Job:To view the status of the installation jobs, use Get-Job:

Get-Job

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
8      Long Running O… AzureLongRunni… Running       True            localhost            Set-AzVMExtension
9      Long Running O… AzureLongRunni… Running       True            localhost            Set-AzVMExtension
10     Long Running O… AzureLongRunni… Running       True            localhost            Set-AzVMExtension

Testa lastbalanserarenTest the load balancer

Använd Get-AzPublicIpAddress för att hämta den offentliga IP-adressen för lastbalanseraren:Use Get-AzPublicIpAddress to get the public IP address of the load balancer:

$ip = @{
    ResourceGroupName = 'CreatePubLBQS-rg'
    Name = 'myPublicIP'
}  
Get-AzPublicIPAddress @ip | select IpAddress

Kopiera den offentliga IP-adressen och klistra in den i webbläsarens adressfält.Copy the public IP address, and then paste it into the address bar of your browser. IIS-webbserverns standardsida visas i webbläsaren.The default page of IIS Web server is displayed on the browser.

IIS-webbserver

Om du vill se hur lastbalanserare distribuerar trafik över alla tre virtuella datorer kan du anpassa standardsidan för varje virtuell dators IIS-webbserver och sedan tvinga fram en uppdatering av webbläsaren från klientdatorn.To see the load balancer distribute traffic across all three VMs, you can customize the default page of each VM's IIS Web server and then force-refresh your web browser from the client machine.

Rensa resurserClean up resources

När den inte längre behövs kan du använda kommandot Remove-AzResourceGroup för att ta bort resursgruppen, lastbalanseraren och återstående resurser.When no longer needed, you can use the Remove-AzResourceGroup command to remove the resource group, load balancer, and the remaining resources.

Remove-AzResourceGroup -Name 'CreatePubLBQS-rg'

Nästa stegNext steps

I den här snabbstarten:In this quickstart:

  • Du har skapat en offentlig standardlastbalanserare eller en grundläggande offentlig lastbalanserareYou created a standard or basic public load balancer
  • Anslutna virtuella datorer.Attached virtual machines.
  • Konfigurerade trafikregeln för lastbalanserare och hälsoavsökningen.Configured the load balancer traffic rule and health probe.
  • Testade lastbalanseraren.Tested the load balancer.

Om du vill veta mer Azure Load Balancer kan du fortsätta att:To learn more about Azure Load Balancer, continue to: