Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Aan de slag met Azure Load Balancer voor het maken van een interne load balancer en twee virtuele machines met Azure PowerShell. 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 behulp van de opdracht New-AzResourceGroup.
$rg = @{
    Name = 'CreateINTLBQS-rg'
    Location = 'westus2'
}
New-AzResourceGroup @rg
Virtueel netwerk configureren
Wanneer u een interne load balancer maakt, wordt een virtueel netwerk geconfigureerd als netwerk voor de load balancer. Voordat u VM's implementeert en uw load balancer test, moet u de ondersteunende virtuele-netwerkresources maken.
Een openbaar IP-adres voor de NAT-gateway maken
Een virtueel netwerk maken voor de back-end-VM's
Een netwerkbeveiligingsgroep maken om binnenkomende verbindingen met uw virtuele netwerk te definiëren
Een Azure Bastion-host maken om de virtuele machines in de back-endpool veilig te beheren
Een openbaar IP-adres maken
Gebruik New-AzPublicIpAddress om een openbaar IP-adres voor de NAT-gateway te maken.
## Create public IP address for NAT gateway and place IP in variable ##
$gwpublicip = @{
    Name = 'myNATgatewayIP'
    ResourceGroupName = $rg.name
    Location = 'westus2'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1,2,3
}
$gwpublicip = New-AzPublicIpAddress @gwpublicip
Als u een zonegebonden openbaar IP-adres in zone 1 wilt maken, voert u de volgende opdracht uit:
## Create a zonal public IP address for NAT gateway and place IP in variable ##
$gwpublicip = @{
    Name = 'myNATgatewayIP'
    ResourceGroupName = $rg.name
    Location = 'westus2'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1
}
$gwpublicip = New-AzPublicIpAddress @gwpublicip
Notitie
Het openbare IP-adres wordt door de NAT-gateway gebruikt om uitgaande connectiviteit te bieden voor de virtuele machines in de back-endpool. Dit wordt aanbevolen wanneer u een interne load balancer maakt en de resources van de back-endpool nodig hebt om uitgaande connectiviteit te hebben. Zie NAT-gateway voor meer informatie.
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
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 NAT gateway resource ##
$nat = @{
    ResourceGroupName = $rg.name
    Name = 'myNATgateway'
    IdleTimeoutInMinutes = '10'
    Sku = 'Standard'
    Location = 'westus2'
    PublicIpAddress = $gwpublicip
}
$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. ##
$bastionip = @{
    Name = 'myBastionIP'
    ResourceGroupName = $rg.name
    Location = 'westus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
}
$bastionip = New-AzPublicIpAddress @bastionip
## Create bastion host ##
$bastion = @{
    ResourceGroupName = $rg.name
    Name = 'myBastion'
    PublicIpAddress = $bastionip
    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
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
Een back-endadresgroep maken met New-AzLoadBalancerBackendAddressPoolConfig voor verkeer dat wordt verzonden vanaf de front-end van de load balancer
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 virtual network created in previous step into a variable. ##
$net = @{
    Name = 'myVNet'
    ResourceGroupName = $rg.name
}
$vnet = Get-AzVirtualNetwork @net
## Create load balancer frontend configuration and place in variable. ##
$lbip = @{
    Name = 'myFrontEnd'
    PrivateIpAddress = '10.1.0.4'
    SubnetId = $vnet.subnets[0].Id
}
$feip = New-AzLoadBalancerFrontendIpConfig @lbip
## 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
## 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
Virtuele machines maken
In deze sectie maakt u de twee virtuele machines voor de back-endpool van de load balancer.
Drie 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 virtual network created in previous step 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. ##
$sg = @{
    Name = 'myNSG'
    ResourceGroupName = $rg.name
}
$nsg = Get-AzNetworkSecurityGroup @sg
## 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
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
De virtuele testmachine maken
Maak de virtuele machine met:
# Set the administrator and password for the VM. ##
$cred = Get-Credential
## Place the virtual network into a variable. ##
$net = @{
    Name = 'myVNet'
    ResourceGroupName = $rg.name
}
$vnet = Get-AzVirtualNetwork @net
## Place the network security group into a variable. ##
$sg = @{
    Name = 'myNSG'
    ResourceGroupName = $rg.name 
}
$nsg = Get-AzNetworkSecurityGroup @sg
## Command to create network interface for VM ##
$nic = @{
    Name = "myNicTestVM"
    ResourceGroupName = $rg.name
    Location = 'westus2'
    Subnet = $vnet.Subnets[0]
    NetworkSecurityGroup = $nsg
}
$nicVM = New-AzNetworkInterface @nic
## Create a virtual machine configuration for VMs ##
$vmsz = @{
    VMName = "myTestVM"
    VMSize = 'Standard_DS1_v2' 
}
$vmos = @{
    ComputerName = "myTestVM"
    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
}
New-AzVM @vm
Test de load balancer
Zoek op het scherm Overzicht het privé-IP-adres voor de load balancer op. Selecteer Alle services in het linkermenu en selecteer Alle resources. Selecteer vervolgens myLoadBalancer.
Noteer of kopieer het adres naast Privé IP-adres in het Overzicht van myLoadBalancer.
Selecteer in het linkermenu Alle services, selecteer vervolgens Alle resources en selecteer daarna in de lijst met resources myTestVM, die zich in de resourcegroep CreateIntLBQS-rg bevindt.
Selecteer op de pagina Overzicht de optie Verbinding maken en daarna Bastion.
Voer de gebruikersnaam en het wachtwoord in die zijn ingevoerd tijdens het maken van de VM.
Open Internet Explorer op myTestVM.
Voer het IP-adres uit de vorige stap in in de adresbalk van de browser. De aangepaste IIS-webserverpagina wordt weergegeven.
              
              
            
Als u wilt zien dat de load balancer verkeer distribueert over alle drie de VM's, kunt u het vernieuwen van uw webbrowser afdwingen vanaf de testmachine.
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
Voor deze snelstart geldt het volgende:
U hebt een interne load balancer gemaakt
Gekoppelde virtuele machines
De verkeersregel en statustest van de load balancer geconfigureerd
De load balancer getest
Als u meer informatie wilt over Azure Load Balancer, gaat u naar: