Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Beginnen Sie mit der Verwendung von Azure Load Balancer, indem Sie mithilfe von Azure PowerShell einen öffentlichen Lastenausgleich und zwei virtuelle Computer erstellen. Sie stellen auch andere Ressourcen bereit, einschließlich Azure Bastion, NAT-Gateway, einem virtuellen Netzwerk und den erforderlichen Subnetzen.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement. Kostenlos ein Konto erstellen.
Azure PowerShell (lokale Installation) oder Azure Cloud Shell.
Wenn Sie PowerShell lokal installieren und verwenden möchten, müssen Sie für diesen Artikel mindestens Version 5.4.1 des Azure PowerShell-Moduls verwenden. Führen Sie Get-Module -ListAvailable Az aus, um die installierte Version zu ermitteln. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu. Wenn Sie PowerShell lokal ausführen, müssen Sie auch Connect-AzAccount ausführen, um eine Verbindung mit Azure herzustellen.
Erstellen einer Ressourcengruppe
Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Sie Azure-Ressourcen bereitstellen und verwalten.
Erstellen Einer Ressourcengruppe mithilfe von New-AzResourceGroup:
$rg = @{
Name = 'load-balancer-ps-rg'
Location = 'eastus'
}
New-AzResourceGroup @rg
Erstellen einer öffentlichen IP-Adresse
Verwenden Sie New-AzPublicIpAddress, um eine öffentliche IP-Adresse zu erstellen.
$publicip = @{
Name = 'lb-frontend-ip'
ResourceGroupName = $rg.name
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
New-AzPublicIpAddress @publicip
Verwenden Sie den folgenden Befehl, um in Zone 1 eine zonale öffentliche IP-Adresse zu erstellen:
$publicip = @{
Name = 'lb-frontend-ip'
ResourceGroupName = $rg.name
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1
}
New-AzPublicIpAddress @publicip
Einrichten eines Lastenausgleichs
In diesem Abschnitt wird erläutert, wie Sie die folgenden Komponenten des Lastenausgleichs erstellen und konfigurieren:
Erstellen Sie mit New-AzLoadBalancerFrontendIpConfig eine Frontend-IP-Adresse für den Frontend-IP-Pool. Diese IP nimmt den eingehenden Datenverkehr auf dem Load Balancer entgegen.
Erstellen Sie mit New-AzLoadBalancerBackendAddressPoolConfig einen Back-End-Adresspool für Datenverkehr, der vom Front-End des Lastenausgleichs gesendet wird. Stellen Sie Ihre virtuellen Back-End-Computer in diesem Pool bereit.
Erstellen Sie einen Integritätstest mit Add-AzLoadBalancerProbeConfig , der den Zustand der Back-End-VM-Instanzen bestimmt.
Erstellen Sie eine Lastenausgleichsregel mit Add-AzLoadBalancerRuleConfig , die definiert, wie Datenverkehr an die virtuellen Computer verteilt wird.
Erstellen Sie einen öffentlichen Lastenausgleich mit New-AzLoadBalancer.
## Place public IP created in previous steps into variable. ##
$pip = @{
Name = 'lb-frontend-ip'
ResourceGroupName = $rg.name
}
$publicIp = Get-AzPublicIpAddress @pip
## Create load balancer frontend configuration and place in variable. ##
$fip = @{
Name = 'lb-frontend'
PublicIpAddress = $publicIp
}
$feip = New-AzLoadBalancerFrontendIpConfig @fip
## Create backend address pool configuration and place in variable. ##
$bepool = New-AzLoadBalancerBackendAddressPoolConfig -Name 'lb-backend-pool'
## Create the health probe and place in variable. ##
$probe = @{
Name = 'lb-health-probe'
Protocol = 'tcp'
Port = '80'
IntervalInSeconds = '360'
ProbeCount = '5'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe
## Create the load balancer rule and place in variable. ##
$lbrule = @{
Name = 'lb-HTTP-rule'
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 = 'load-balancer'
Location = 'eastus'
Sku = 'Standard'
FrontendIpConfiguration = $feip
BackendAddressPool = $bePool
LoadBalancingRule = $rule
Probe = $healthprobe
}
New-AzLoadBalancer @loadbalancer
Konfigurieren eines virtuellen Netzwerks
Erstellen Sie zunächst die unterstützenden virtuellen Netzwerkressourcen, bevor Sie virtuelle Computer bereitstellen und Ihren Lastenausgleich testen.
Erstellen Sie ein virtuelles Netzwerk für die virtuellen Back-End-Computer.
Erstellen Sie eine Netzwerksicherheitsgruppe, um eingehende Verbindungen für Ihr virtuelles Netzwerk zu definieren.
Erstellen Sie einen Azure Bastion-Host, um die virtuellen Computer im Back-End-Pool sicher zu verwalten.
Verwenden Sie ein NAT-Gateway, um ausgehenden Internetzugriff auf Ressourcen im Back-End-Pool Ihres Lastenausgleichs bereitzustellen.
Erstellen Sie ein virtuelles Netzwerk, eine Netzwerk-Sicherheitsgruppe, einen Bastion-Host und ein NAT-Gateway
Erstellen Sie mit New-AzVirtualNetwork ein virtuelles Netzwerk.
Erstellen Sie eine Netzwerksicherheitsgruppenregel mit New-AzNetworkSecurityRuleConfig.
Erstellen Sie mit New-AzBastion einen Azure Bastion-Host.
Erstellen Sie mit New-AzNetworkSecurityGroup eine Netzwerksicherheitsgruppe.
Erstellen Sie die NAT-Gatewayressource mit New-AzNatGateway.
Verwenden Sie New-AzVirtualNetworkSubnetConfig, um das NAT-Gateway dem Subnetz des virtuellen Netzwerks zuzuordnen.
Wichtig
Die Stundenpreise gelten ab dem Zeitpunkt der Bereitstellung von Bastion, unabhängig von der Nutzung ausgehender Daten. Weitere Informationen dazu finden Sie unter Preise und SKUs. Wenn Sie Bastion im Rahmen eines Tutorials oder Tests bereitstellen, empfiehlt es sich, diese Ressource zu löschen, sobald Sie sie nicht mehr benötigen.
## Create public IP address for NAT gateway ##
$ip = @{
Name = 'nat-gw-public-ip'
ResourceGroupName = $rg.name
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$publicIP = New-AzPublicIpAddress @ip
## Create NAT gateway resource ##
$nat = @{
ResourceGroupName = $rg.name
Name = 'lb-nat-gateway'
IdleTimeoutInMinutes = '10'
Sku = 'Standard'
Location = 'eastus'
PublicIpAddress = $publicIP
}
$natGateway = New-AzNatGateway @nat
## Create backend subnet config ##
$subnet = @{
Name = 'backend-subnet'
AddressPrefix = '10.1.0.0/24'
NatGateway = $natGateway
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create Azure Bastion subnet. ##
$bastsubnet = @{
Name = 'AzureBastionSubnet'
AddressPrefix = '10.1.1.0/27'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet
## Create the virtual network ##
$net = @{
Name = 'lb-vnet'
ResourceGroupName = $rg.name
Location = 'eastus'
AddressPrefix = '10.1.0.0/16'
Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net
## Create public IP address for bastion host. ##
$ip = @{
Name = 'lb-vnet-bastion-ip'
ResourceGroupName = $rg.name
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$publicip = New-AzPublicIpAddress @ip
## Create bastion host ##
$bastion = @{
ResourceGroupName = $rg.name
Name = 'lb-vnet-bastion'
PublicIpAddress = $publicip
VirtualNetwork = $vnet
}
New-AzBastion @bastion -AsJob
## Create rule for network security group and place in variable. ##
$nsgrule = @{
Name = 'lb-nsg-rule'
Description = 'Allow HTTP'
Protocol = '*'
SourcePortRange = '*'
DestinationPortRange = '80'
SourceAddressPrefix = 'Internet'
DestinationAddressPrefix = '*'
Access = 'Allow'
Priority = '200'
Direction = 'Inbound'
}
$rule1 = New-AzNetworkSecurityRuleConfig @nsgrule
## Create network security group ##
$nsg = @{
Name = 'lb-nsg'
ResourceGroupName = $rg.name
Location = 'eastus'
SecurityRules = $rule1
}
New-AzNetworkSecurityGroup @nsg
Erstellen von virtuellen Computern
In diesem Abschnitt werden die zwei virtuellen Computer für den Back-End-Pool des Lastenausgleichs erstellt.
Erstellen Sie zwei Netzwerkschnittstellen mit New-AzNetworkInterface.
Legen Sie einen Administratorbenutzernamen und ein Kennwort für die virtuellen Computer mit Get-Credential fest.
Erstellen Sie die virtuellen Computer mit den folgenden Cmdlets:
# Set the administrator and password for the VMs. ##
$cred = Get-Credential
## Place the virtual network into a variable. ##
$net = @{
Name = 'lb-vnet'
ResourceGroupName = $rg.name
}
$vnet = Get-AzVirtualNetwork @net
## Place the load balancer into a variable. ##
$lb = @{
Name = 'load-balancer'
ResourceGroupName = $rg.name
}
$bepool = Get-AzLoadBalancer @lb | Get-AzLoadBalancerBackendAddressPoolConfig
## Place the network security group into a variable. ##
$ns = @{
Name = 'lb-nsg'
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 = "lb-nic-VM$i"
ResourceGroupName = $rg.name
Location = 'eastus'
Subnet = $vnet.Subnets[0]
NetworkSecurityGroup = $nsg
LoadBalancerBackendAddressPool = $bepool
}
$nicVM = New-AzNetworkInterface @nic
## Create a virtual machine configuration for VMs ##
$vmsz = @{
VMName = "lb-VM$i"
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = "lb-VM$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 = 'eastus'
VM = $vmConfig
Zone = "$i"
}
New-AzVM @vm -AsJob
}
Übermitteln Sie die Bereitstellungen der virtuellen Computer und des Bastionhosts als PowerShell-Aufträge. Verwenden Sie Get-Job, um den Status der Aufträge anzuzeigen:
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
Stellen Sie sicher, dass der Zustand der VM-Erstellung Abgeschlossen lautet, bevor Sie mit den nächsten Schritten fortfahren.
Hinweis
Azure stellt eine ausgehende Standardzugriffs-IP für VMs bereit, denen keine öffentliche IP-Adresse zugewiesen ist oder die sich im Backendpool eines internen grundlegenden Azure-Lastenausgleichs befinden. Der Mechanismus für Standard-IP-Adressen für den ausgehenden Zugriff stellt eine ausgehende IP-Adresse bereit, die nicht konfigurierbar ist.
Die Standard-IP-Adresse für ausgehenden Zugriff ist deaktiviert, wenn eins der folgenden Ereignisse auftritt:
- Der VM wird eine öffentliche IP-Adresse zugewiesen.
- Die VM wird im Back-End-Pool eines Standardlastenausgleichs platziert (mit oder ohne Ausgangsregeln).
- Dem Subnetz der VM wird eine Azure NAT Gateway-Ressource zugewiesen.
VMs, die von VM-Skalierungsgruppen im Orchestrierungsmodus „Flexibel“ erstellt werden, haben keinen standardmäßigen ausgehenden Zugriff.
Weitere Informationen zu ausgehenden Verbindungen in Azure finden Sie unter Standardzugriff in ausgehender Richtung in Azure und Verwenden von SNAT (Source Network Address Translation) für ausgehende Verbindungen.
Installieren von IIS
Verwenden Sie Set-AzVMExtension, um die benutzerdefinierte Skripterweiterung zu installieren.
Die Erweiterung wird ausgeführt PowerShell Add-WindowsFeature Web-Server , um den IIS-Webserver zu installieren, und aktualisiert dann die Default.htm Seite, um den Hostnamen der VM anzuzeigen:
Wichtig
Stellen Sie sicher, dass die Bereitstellungen des virtuellen Computers aus den vorherigen Schritten abgeschlossen sind, bevor Sie fortfahren. Verwenden Sie Get-Job, um den Status der VM-Bereitstellungsaufträge zu überprüfen.
## 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 = "lb-VM$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
}
Die Erweiterungen werden als PowerShell-Aufträge bereitgestellt. Verwenden Sie Get-Job, um den Status der Installationsaufträge anzuzeigen:
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
Stellen Sie sicher, dass der Zustand des Auftrags Abgeschlossen lautet, bevor Sie mit den nächsten Schritten fortfahren.
Testen des Lastenausgleichs
Rufen Sie mit Get-AzPublicIpAddress die öffentliche IP-Adresse des Lastenausgleichs ab:
$ip = @{
ResourceGroupName = $rg.name
Name = 'lb-frontend-ip'
}
Get-AzPublicIPAddress @ip | select IpAddress
Kopieren Sie die öffentliche IP-Adresse, und fügen Sie sie in die Adressleiste des Browsers ein. Die Standardseite des IIS-Webservers wird im Browser angezeigt.
Bereinigen von Ressourcen
Wenn Sie die Ressourcen nicht mehr benötigen, verwenden Sie den Befehl "Remove-AzResourceGroup ", um die Ressourcengruppe, den Lastenausgleich und die verbleibenden Ressourcen zu entfernen.
Remove-AzResourceGroup -Name $rg.name
Nächste Schritte
In dieser Schnellstartanleitung führen Sie die folgenden Schritte aus:
Erstellen eines Azure Load Balancers
Zwei VMs dem Load-Balancer zuordnen
Testen des Lastenausgleichs
Fahren Sie mit dem folgenden Artikel fort, um sich weiter über Azure Load Balancer zu informieren: