Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kom igång med Azure Load Balancer med hjälp av Azure PowerShell för att skapa en offentlig lastbalanserare och två virtuella datorer. Dessutom distribuerar du andra resurser, inklusive Azure Bastion, NAT Gateway, ett virtuellt nätverk och de nödvändiga undernäten.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt 
- Azure PowerShell installerat lokalt eller Azure Cloud Shell 
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. Kör Get-Module -ListAvailable Az för att hitta den installerade versionen. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul). Om du kör PowerShell lokalt måste du också köra Connect-AzAccount för att skapa en anslutning till Azure.
Skapa en resursgrupp
En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.
Skapa en resursgrupp med New-AzResourceGroup:
$rg = @{
    Name = 'CreatePubLBQS-rg'
    Location = 'westus2'
}
New-AzResourceGroup @rg
Skapa en offentlig IP-adress
Använd New-AzPublicIpAddress för att skapa en offentlig IP-adress.
$publicip = @{
    Name = 'myPublicIP'
    ResourceGroupName = $rg.name
    Location = 'westus2'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1,2,3
}
New-AzPublicIpAddress @publicip
Om du vill skapa en zonindelad offentlig IP-adress i zon 1 använder du följande kommando:
$publicip = @{
    Name = 'myPublicIP'
    ResourceGroupName = $rg.name
    Location = 'westus2'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1
}
New-AzPublicIpAddress @publicip
Skapa en lastbalanserare
I det här avsnittet beskrivs hur du gör för att skapa och konfigurera följande komponenter i lastbalanseraren:
- Skapa en klientdels-IP med New-AzLoadBalancerFrontendIpConfig för klientdels-IP-poolen. Den här IP-adressen tar emot inkommande trafik på lastbalanseraren 
- Skapa en serverdelsadresspool med New-AzLoadBalancerBackendAddressPoolConfig för trafik som skickas från lastbalanserarens klientdel. I den här poolen distribueras dina virtuella serverdelsdatorer 
- Skapa en hälsoavsökning med Add-AzLoadBalancerProbeConfig som avgör hälsotillståndet för de virtuella serverdelsinstanserna 
- Skapa en lastbalanseringsregel med Add-AzLoadBalancerRuleConfig som definierar hur trafik distribueras till de virtuella datorerna 
- Skapa en offentlig lastbalanserare med New-AzLoadBalancer 
## Place public IP created in previous steps into variable. ##
$pip = @{
    Name = 'myPublicIP'
    ResourceGroupName = $rg.name
}
$publicIp = Get-AzPublicIpAddress @pip
## Create load balancer frontend configuration and place in variable. ##
$fip = @{
    Name = 'myFrontEnd'
    PublicIpAddress = $publicIp 
}
$feip = New-AzLoadBalancerFrontendIpConfig @fip
## 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 = 'tcp'
    Port = '80'
    IntervalInSeconds = '360'
    ProbeCount = '5'
}
$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 = $rg.name
    Name = 'myLoadBalancer'
    Location = 'westus2'
    Sku = 'Standard'
    FrontendIpConfiguration = $feip
    BackendAddressPool = $bePool
    LoadBalancingRule = $rule
    Probe = $healthprobe
}
New-AzLoadBalancer @loadbalancer
Konfigurera ett virtuellt nätverk
Innan du distribuerar virtuella datorer och testar lastbalanseraren skapar du de virtuella nätverksresurser som stöds.
Skapa ett virtuellt nätverk för de virtuella serverdelsdatorerna.
Skapa en nätverkssäkerhetsgrupp för att definiera inkommande anslutningar till ditt virtuella nätverk.
Skapa en Azure Bastion-värd för att hantera de virtuella datorerna i serverdelspoolen på ett säkert sätt.
Använd en NAT-gateway för att ge utgående Internetåtkomst till resurser i serverdelspoolen i lastbalanseraren.
Skapa virtuellt nätverk, nätverkssäkerhetsgrupp, skyddsvärd och NAT-gateway
- Skapa ett virtuellt nätverk med New-AzVirtualNetwork 
- Skapa en regel för nätverkssäkerhetsgrupp med New-AzNetworkSecurityRuleConfig 
- Skapa en Azure Bastion-värd med New-AzBastion 
- Skapa en nätverkssäkerhetsgrupp med New-AzNetworkSecurityGroup 
- Skapa NAT-gatewayresursen med New-AzNatGateway 
- Använd New-AzVirtualNetworkSubnetConfig för att associera NAT-gatewayen till undernätet för det virtuella nätverket 
Viktigt!
Priserna per timme börjar från det ögonblick då Bastion distribueras, oavsett utgående dataanvändning. Mer information finns i Priser och SKU:er. Om du distribuerar Bastion som en del av en självstudie eller ett test rekommenderar vi att du tar bort den här resursen när du har använt den.
## Create public IP address for NAT gateway ##
$ip = @{
    Name = 'myNATgatewayIP'
    ResourceGroupName = $rg.name
    Location = 'westus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
}
$publicIP = New-AzPublicIpAddress @ip
## Create NAT gateway resource ##
$nat = @{
    ResourceGroupName = $rg.name
    Name = 'myNATgateway'
    IdleTimeoutInMinutes = '10'
    Sku = 'Standard'
    Location = 'westus2'
    PublicIpAddress = $publicIP
}
$natGateway = New-AzNatGateway @nat
## Create backend subnet config ##
$subnet = @{
    Name = 'myBackendSubnet'
    AddressPrefix = '10.1.0.0/24'
    NatGateway = $natGateway
}
$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 = $rg.name
    Location = 'westus2'
    AddressPrefix = '10.1.0.0/16'
    Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net
## Create public IP address for bastion host. ##
$ip = @{
    Name = 'myBastionIP'
    ResourceGroupName = $rg.name
    Location = 'westus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
}
$publicip = New-AzPublicIpAddress @ip
## Create bastion host ##
$bastion = @{
    ResourceGroupName = $rg.name
    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 = $rg.name
    Location = 'westus2'
    SecurityRules = $rule1
}
New-AzNetworkSecurityGroup @nsg
Skapa virtuella datorer
I det här avsnittet skapar du de två virtuella datorerna för serverdelspoolen för lastbalanseraren.
- Skapa två nätverksgränssnitt med New-AzNetworkInterface 
- Ange ett administratörsanvändarnamn och lösenord för de virtuella datorerna med Get-Credential 
- Skapa de virtuella datorerna med: 
# Set the administrator and password for the VMs. ##
$cred = Get-Credential
## Place the virtual network into a variable. ##
$net = @{
    Name = 'myVNet'
    ResourceGroupName = $rg.name
}
$vnet = Get-AzVirtualNetwork @net
## Place the load balancer into a variable. ##
$lb = @{
    Name = 'myLoadBalancer'
    ResourceGroupName = $rg.name
}
$bepool = Get-AzLoadBalancer @lb  | Get-AzLoadBalancerBackendAddressPoolConfig
## Place the network security group into a variable. ##
$ns = @{
    Name = 'myNSG'
    ResourceGroupName = $rg.name
}
$nsg = Get-AzNetworkSecurityGroup @ns
## For loop with variable to create virtual machines for load balancer backend pool. ##
for ($i=1; $i -le 2; $i++){
    ## Command to create network interface for VMs ##
    $nic = @{
        Name = "myNicVM$i"
        ResourceGroupName = $rg.name
        Location = 'westus2'
        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 = $rg.name
        Location = 'westus2'
        VM = $vmConfig
        Zone = "$i"
    }
    New-AzVM @vm -AsJob
}
Distributionerna av de virtuella datorerna och skyddsvärden skickas som PowerShell-jobb. Om du vill visa status för jobben använder du 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
Kontrollera att tillståndet för skapandet av den virtuella datorn är Slutfört innan du går vidare till nästa steg.
Kommentar
Azure tillhandahåller en standard-IP för utgående åtkomst för virtuella datorer som antingen inte har tilldelats någon offentlig IP-adress eller som finns i serverdelspoolen för en intern grundläggande Azure-lastbalanserare. Ip-mekanismen för utgående åtkomst har en utgående IP-adress som inte kan konfigureras.
Standard-IP för utgående åtkomst inaktiveras när någon av följande händelser inträffar:
- En offentlig IP-adress tilldelas till den virtuella datorn.
- Den virtuella datorn placeras i serverdelspoolen för en standardlastbalanserare, med eller utan regler för utgående trafik.
- En Azure NAT Gateway-resurs tilldelas till den virtuella datorns undernät.
Virtuella datorer som du skapar med hjälp av vm-skalningsuppsättningar i flexibelt orkestreringsläge har inte standardåtkomst till utgående trafik.
Mer information om utgående anslutningar i Azure finns i Standardutgående åtkomst i Azure och Använda SNAT (Source Network Address Translation) för utgående anslutningar.
Installera IIS
Använd Set-AzVMExtension för att installera Anpassat skripttillägg.
Tillägget körs PowerShell Add-WindowsFeature Web-Server för att installera IIS-webbservern och uppdaterar sedan sidan Default.htm för att visa värdnamnet för den virtuella datorn:
Viktigt!
Kontrollera att distributionerna av virtuella datorer har slutförts från föregående steg innan du fortsätter. Använd Get-Job för att kontrollera statusen för de virtuella datordistributionsjobben.
## For loop with variable to install custom script extension on virtual machines. ##
for ($i=1; $i -le 2; $i++)
{
$ext = @{
    Publisher = 'Microsoft.Compute'
    ExtensionType = 'CustomScriptExtension'
    ExtensionName = 'IIS'
    ResourceGroupName = $rg.name
    VMName = "myVM$i"
    Location = 'westus2'
    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. Om du vill visa status för installationsjobben använder du 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
Kontrollera att jobbens tillstånd har slutförts innan du går vidare till nästa steg.
Testa lastbalanseraren
Använd Get-AzPublicIpAddress för att hämta lastbalanserarens offentliga IP-adress:
$ip = @{
    ResourceGroupName = $rg.name
    Name = 'myPublicIP'
}  
Get-AzPublicIPAddress @ip | select IpAddress
Kopiera den offentliga IP-adressen och klistra in den i webbläsarens adressfält. IIS-webbserverns standardsida visas i webbläsaren.
              
               
              
              
            
Rensa resurser
När du inte längre behöver det kan du använda kommandot Remove-AzResourceGroup för att ta bort resursgruppen, lastbalanseraren och de återstående resurserna.
Remove-AzResourceGroup -Name $rg.name
Nästa steg
I den här snabbstarten kommer du att göra följande:
- Skapade en Azure Load Balancer 
- Kopplade två virtuella datorer till lastbalanseraren 
- Testade lastbalanseraren 
Om du vill veta mer om Azure Load Balancer fortsätter du till:
