Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Ga aan de slag met Azure Load Balancer met behulp van Azure PowerShell om een openbare load balancer en twee virtuele machines te maken. U implementeert ook andere resources, waaronder Azure Bastion, NAT Gateway, een virtueel netwerk en de vereiste subnetten.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken 
- Azure PowerShell lokaal geïnstalleerd of Azure Cloud Shell 
Als u PowerShell lokaal wilt installeren en gebruiken, is voor dit artikel versie 5.4.1 of hoger van de Azure PowerShell-module vereist. Voer Get-Module -ListAvailable Az uit om te kijken welke versie is geïnstalleerd. Als u PowerShell wilt upgraden, raadpleegt u De Azure PowerShell-module installeren. Als u PowerShell lokaal uitvoert, moet u ook Connect-AzAccount uitvoeren om verbinding te kunnen maken met Azure.
Een brongroep maken
Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.
Maak een resourcegroep met New-AzResourceGroup:
$rg = @{
    Name = 'CreatePubLBQS-rg'
    Location = 'westus2'
}
New-AzResourceGroup @rg
Een openbaar IP-adres maken
Gebruik New-AzPublicIpAddress om een openbaar IP-adres te maken.
$publicip = @{
    Name = 'myPublicIP'
    ResourceGroupName = $rg.name
    Location = 'westus2'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1,2,3
}
New-AzPublicIpAddress @publicip
Als u een zonegebonden openbaar IP-adres in zone 1 wilt maken, voert u de volgende opdracht uit:
$publicip = @{
    Name = 'myPublicIP'
    ResourceGroupName = $rg.name
    Location = 'westus2'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1
}
New-AzPublicIpAddress @publicip
Een load balancer maken
In deze sectie wordt beschreven hoe u de volgende onderdelen van de load balancer kunt maken en configureren.
- Maak een front-end-IP met New-AzLoadBalancerFrontendIpConfig voor de front-end-IP-pool. Dit IP-adres ontvangt het binnenkomende verkeer op de load balancer 
- Maak een back-endadresgroep met New-AzLoadBalancerBackendAddressPoolConfig voor verkeer dat wordt verzonden vanaf de front-end van de load balancer. In deze pool worden uw virtuele back-endmachines geïmplementeerd 
- Een statustest maken met Add-AzLoadBalancerProbeConfig die de status van de back-end-VM-exemplaren bepaalt 
- Een load balancer-regel maken met Add-AzLoadBalancerRuleConfig waarmee wordt gedefinieerd hoe verkeer wordt gedistribueerd naar de VM's 
- Een openbare load balancer maken met 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
Virtueel netwerk configureren
Voordat u VM's implementeert en uw load balancer test, moet u de ondersteunende virtuele-netwerkresources maken.
Maak een virtueel netwerk voor de virtuele machine van de back-end.
Maak een netwerkbeveiligingsgroep om binnenkomende verbindingen met uw virtuele netwerk te definiëren.
Maak een Azure Bastion-host om de virtuele machines in de back-endpool veilig te beheren.
Gebruik een NAT-gateway om uitgaande internettoegang te bieden tot resources in de back-endpool van uw load balancer.
Virtueel netwerk, netwerkbeveiligingsgroep, bastionhost en NAT-gateway maken
- Een virtueel netwerk maken met New-AzVirtualNetwork 
- Een netwerkbeveiligingsgroepregel maken met New-AzNetworkSecurityRuleConfig 
- Een Azure Bastion-host maken met New-AzBastion 
- Een netwerkbeveiligingsgroep maken met New-AzNetworkSecurityGroup 
- De NAT-gatewayresource maken met New-AzNatGateway 
- New-AzVirtualNetworkSubnetConfig gebruiken om de NAT-gateway te koppelen aan het subnet van het virtuele netwerk 
Belangrijk
De prijzen per uur beginnen vanaf het moment dat Bastion wordt geïmplementeerd, ongeacht het uitgaande gegevensgebruik. Zie Prijzen en SKU's voor meer informatie. Als u Bastion implementeert als onderdeel van een zelfstudie of test, raden we u aan deze resource te verwijderen nadat u deze hebt gebruikt.
## 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
Virtuele machines maken
In deze sectie maakt u de twee virtuele machines voor de back-endpool van de load balancer.
- Twee netwerkinterfaces maken met New-AzNetworkInterface 
- Een gebruikersnaam en wachtwoord voor de beheerders instellen voor de VM's met Get-Credential 
- Maak de virtuele machines met: 
# 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
}
De implementaties van de virtuele machines en de bastion-host worden verzonden als PowerShell-taken. Als u de status van de taken wilt weergeven, typt u 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
Zorg ervoor dat de status van het maken van de virtuele machine is voltooid voordat u verdergaat met de volgende stappen.
Notitie
Azure biedt een standaard ip-adres voor uitgaande toegang voor VM's waaraan geen openbaar IP-adres is toegewezen of zich in de back-endpool van een interne Azure-load balancer bevinden. Het standaard ip-mechanisme voor uitgaande toegang biedt een uitgaand IP-adres dat niet kan worden geconfigureerd.
Het standaard IP-adres voor uitgaande toegang is uitgeschakeld wanneer een van de volgende gebeurtenissen plaatsvindt:
- Er wordt een openbaar IP-adres toegewezen aan de VIRTUELE machine.
- De VIRTUELE machine wordt in de back-endpool van een standaard load balancer geplaatst, met of zonder uitgaande regels.
- Er wordt een Azure NAT Gateway-resource toegewezen aan het subnet van de VIRTUELE machine.
Virtuele machines die u maakt met behulp van virtuele-machineschaalsets in de flexibele indelingsmodus, hebben geen standaardtoegang voor uitgaand verkeer.
Zie Voor meer informatie over uitgaande verbindingen in Azure standaard uitgaande toegang in Azure en SNAT (Source Network Address Translation) gebruiken voor uitgaande verbindingen.
IIS installeren
Gebruik Set-AzVMExtension om de aangepaste scriptextensie te installeren.
De extensie wordt uitgevoerd PowerShell Add-WindowsFeature Web-Server om de IIS-webserver te installeren en werkt vervolgens de Default.htm pagina bij om de hostnaam van de VIRTUELE machine weer te geven:
Belangrijk
Zorg ervoor dat de implementaties van virtuele machines uit de vorige stappen zijn voltooid voordat u verdergaat. Gebruik Get-Job om de status van de implementatietaken van de virtuele machine te controleren.
## 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
}
De extensies worden geïmplementeerd als PowerShell-taken. Als u de status van de installatietaken wilt weergeven, typt u 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
Zorg ervoor dat de status van de taken is voltooid voordat u verdergaat met de volgende stappen.
Test de load balancer
Gebruik Get-AzPublicIPAddress om het openbare IP-adres van de load balancer op te halen:
$ip = @{
    ResourceGroupName = $rg.name
    Name = 'myPublicIP'
}  
Get-AzPublicIPAddress @ip | select IpAddress
Kopieer het openbare IP-adres en plak het in de adresbalk van de browser. De standaardpagina van IIS-webserver wordt weergegeven in de browser.
              
               
              
              
            
Resources opschonen
U kunt de opdracht Remove-AzResourceGroup gebruiken om de resourcegroep, de load balancer en de resterende resources te verwijderen wanneer u deze niet meer nodig hebt.
Remove-AzResourceGroup -Name $rg.name
Volgende stappen
In deze snelstart, gaat u het volgende doen:
- Een Azure Load Balancer gemaakt 
- Gekoppeld aan 2 VM's aan de load balancer 
- De load balancer getest 
Als u meer informatie wilt over Azure Load Balancer, gaat u naar:
