Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozpocznij pracę z usługą Azure Load Balancer, tworząc wewnętrzny moduł równoważenia obciążenia i dwie maszyny wirtualne za pomocą programu Azure PowerShell. Ponadto wdrażasz inne zasoby, w tym usługę Azure Bastion, bramę NAT, sieć wirtualną i wymagane podsieci.
Wymagania wstępne
Konto platformy Azure z aktywną subskrypcją. Bezpłatne tworzenie konta
Zainstalowany lokalnie program Azure PowerShell lub usługa Azure Cloud Shell
Jeśli postanowisz zainstalować program PowerShell i używać go lokalnie, ten artykuł wymaga modułu Azure PowerShell w wersji 5.4.1 lub nowszej. Uruchom polecenie Get-Module -ListAvailable Az, aby dowiedzieć się, jaka wersja jest zainstalowana. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. Jeśli używasz programu PowerShell lokalnie, musisz też uruchomić polecenie Connect-AzAccount, aby utworzyć połączenie z platformą Azure.
Tworzenie grupy zasobów
Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.
Utwórz grupę zasobów za pomocą polecenia New-AzResourceGroup.
$rg = @{
Name = 'load-balancer-ps-rg'
Location = 'westus2'
}
New-AzResourceGroup @rg
Konfigurowanie sieci wirtualnej
Podczas tworzenia wewnętrznego modułu równoważenia obciążenia sieć wirtualna jest skonfigurowana jako sieć modułu równoważenia obciążenia. Przed wdrożeniem maszyn wirtualnych i przetestowaniem modułu równoważenia obciążenia utwórz pomocnicze zasoby sieci wirtualnej.
Utwórz publiczny adres IP dla bramy NAT
Tworzenie sieci wirtualnej dla maszyn wirtualnych zaplecza
Utwórz grupę zabezpieczeń sieci, aby zdefiniować połączenia przychodzące do sieci wirtualnej
Tworzenie hosta usługi Azure Bastion w celu bezpiecznego zarządzania maszynami wirtualnymi w puli zaplecza
Tworzenie publicznego adresu IP
Użyj polecenia New-AzPublicIpAddress, aby utworzyć publiczny adres IP dla bramy NAT.
## Create public IP address for NAT gateway and place IP in variable ##
$gwpublicip = @{
Name = 'nat-gw-public-ip'
ResourceGroupName = $rg.name
Location = 'westus2'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
$gwpublicip = New-AzPublicIpAddress @gwpublicip
Aby utworzyć strefowy publiczny adres IP w strefie 1, użyj następującego polecenia:
## Create a zonal public IP address for NAT gateway and place IP in variable ##
$gwpublicip = @{
Name = 'nat-gw-public-ip'
ResourceGroupName = $rg.name
Location = 'westus2'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1
}
$gwpublicip = New-AzPublicIpAddress @gwpublicip
Uwaga
Publiczny adres IP jest używany przez bramę NAT, aby zapewnić łączność wychodzącą maszynom wirtualnym w puli zaplecza. Jest to zalecane, gdy tworzysz wewnętrzny moduł równoważenia obciążenia i potrzebujesz, aby zasoby puli zaplecza miały łączność wychodzącą. Aby uzyskać więcej informacji, zobacz bramę NAT.
Utwórz sieć wirtualną, grupę zabezpieczeń sieciowych, hosta bastionowego i bramę NAT
Utwórz sieć wirtualną za pomocą New-AzVirtualNetwork
Utwórz regułę grupy zabezpieczeń sieciowych za pomocą New-AzNetworkSecurityRuleConfig
Tworzenie hosta usługi Azure Bastion przy użyciu polecenia New-AzBastion
Utwórz zasób bramy NAT za pomocą New-AzNatGateway
Użyj polecenia New-AzVirtualNetworkSubnetConfig, aby powiązać bramę NAT z podsiecią sieci wirtualnej.
Ważne
Ceny godzinowe zaczynają się od momentu wdrożenia usługi Bastion, niezależnie od użycia danych wychodzących. Aby uzyskać więcej informacji, zobacz Cennik i SKU. Jeśli wdrażasz usługę Bastion w ramach samouczka lub testu, zalecamy usunięcie tego zasobu po zakończeniu korzystania z niego.
## Create NAT gateway resource ##
$nat = @{
ResourceGroupName = $rg.name
Name = 'lb-nat-gateway'
IdleTimeoutInMinutes = '10'
Sku = 'Standard'
Location = 'westus2'
PublicIpAddress = $gwpublicip
}
$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/24'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet
## Create the virtual network ##
$net = @{
Name = 'lb-vnet'
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 = 'lb-vnet-bastion-ip'
ResourceGroupName = $rg.name
Location = 'westus2'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$bastionip = New-AzPublicIpAddress @bastionip
## Create bastion host ##
$bastion = @{
ResourceGroupName = $rg.name
Name = 'lb-vnet-bastion'
PublicIpAddress = $bastionip
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 = '2000'
Direction = 'Inbound'
}
$rule1 = New-AzNetworkSecurityRuleConfig @nsgrule
## Create network security group ##
$nsg = @{
Name = 'lb-NSG'
ResourceGroupName = $rg.name
Location = 'westus2'
SecurityRules = $rule1
}
New-AzNetworkSecurityGroup @nsg
Tworzenie modułu równoważenia obciążenia
W tej sekcji opisano szczegółowo procedurę tworzenia i konfigurowania następujących składników modułu równoważenia obciążenia:
Utwórz adres IP frontonu za pomocą polecenia New-AzLoadBalancerFrontendIpConfig dla puli adresów IP frontonu. Ten adres IP odbiera ruch przychodzący w module równoważenia obciążenia
Tworzenie puli adresów zaplecza za pomocą polecenia New-AzLoadBalancerBackendAddressPoolConfig dla ruchu wysyłanego z frontonu modułu równoważenia obciążenia
Utwórz sondę kondycji za pomocą polecenia Add-AzLoadBalancerProbeConfig, która określa stan wystąpień maszyn wirtualnych zaplecza
Tworzenie reguły modułu równoważenia obciążenia za pomocą polecenia Add-AzLoadBalancerRuleConfig , która definiuje sposób dystrybucji ruchu do maszyn wirtualnych
Utwórz publiczny moduł równoważenia obciążenia za pomocą New-AzLoadBalancer
## Place virtual network created in previous step into a variable. ##
$net = @{
Name = 'lb-vnet'
ResourceGroupName = $rg.name
}
$vnet = Get-AzVirtualNetwork @net
## Create load balancer frontend configuration and place in variable. ##
$lbip = @{
Name = 'lb-frontend'
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 '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
## Create the load balancer resource. ##
$loadbalancer = @{
ResourceGroupName = $rg.name
Name = 'load-balancer'
Location = 'westus2'
Sku = 'Standard'
FrontendIpConfiguration = $feip
BackendAddressPool = $bePool
LoadBalancingRule = $rule
Probe = $healthprobe
}
New-AzLoadBalancer @loadbalancer
Tworzenie maszyn wirtualnych
W tej sekcji utworzysz dwie maszyny wirtualne dla puli zaplecza modułu równoważenia obciążenia.
Tworzenie trzech interfejsów sieciowych za pomocą polecenia New-AzNetworkInterface
Ustaw nazwę użytkownika i hasło administratora dla maszyn wirtualnych za pomocą Get-Credential
Utwórz maszyny wirtualne za pomocą następujących funkcji:
# Set the administrator and password for the VMs. ##
$cred = Get-Credential
## Place virtual network created in previous step 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. ##
$sg = @{
Name = 'lb-NSG'
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 = "lb-nic-vm$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 = "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 = 'westus2'
VM = $vmConfig
Zone = "$i"
}
}
New-AzVM @vm -asjob
Wdrożenia maszyn wirtualnych i hosta bastionowego są uruchamiane jako zadania programu PowerShell. Aby wyświetlić stan zadań, użyj polecenia 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
Uwaga
Platforma Azure udostępnia domyślny adres IP dostępu wychodzącego dla maszyn wirtualnych, które nie są przypisane do publicznego adresu IP lub znajdują się w puli zaplecza wewnętrznego podstawowego modułu równoważenia obciążenia platformy Azure. Domyślny mechanizm adresów IP dostępu wychodzącego zapewnia wychodzący adres IP, który nie jest konfigurowalny.
Domyślny adres IP dostępu wychodzącego jest wyłączony, gdy wystąpi jedno z następujących zdarzeń:
- Publiczny adres IP jest przypisywany do maszyny wirtualnej.
- Maszyna wirtualna jest umieszczona w puli zaplecza standardowego modułu równoważenia obciążenia, z regułami ruchu wychodzącego lub bez nich.
- Zasób usługi Azure NAT Gateway jest przypisywany do podsieci maszyny wirtualnej.
Maszyny wirtualne tworzone przy użyciu zestawów skalowania maszyn wirtualnych w trybie elastycznej aranżacji nie mają domyślnego dostępu wychodzącego.
Aby uzyskać więcej informacji na temat połączeń wychodzących na platformie Azure, zobacz Domyślny dostęp wychodzący na platformie Azure i Używanie źródłowego tłumaczenia adresów sieciowych (SNAT) dla połączeń wychodzących.
Instalacja usług IIS
Użyj polecenia Set-AzVMExtension, aby zainstalować rozszerzenie niestandardowego skryptu.
Rozszerzenie uruchamia PowerShell Add-WindowsFeature Web-Server, aby zainstalować serwer WWW IIS, a następnie aktualizuje stronę Default.htm, aby wyświetlała nazwę hosta maszyny wirtualnej:
Ważne
Przed kontynuowaniem upewnij się, że wdrożenia maszyn wirtualnych wykonane w poprzednich krokach zostały ukończone. Użyj Get-Job, aby sprawdzić stan zadań wdrażania maszyny wirtualnej.
## 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 = '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
}
Rozszerzenia są wdrażane jako zadania programu PowerShell. Aby wyświetlić stan zadań instalacji, użyj polecenia 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
Tworzenie testowej maszyny wirtualnej
Utwórz maszynę wirtualną za pomocą następujących funkcji:
# Set the administrator and password for the VM. ##
$cred = Get-Credential
## Place the virtual network into a variable. ##
$net = @{
Name = 'lb-vnet'
ResourceGroupName = $rg.name
}
$vnet = Get-AzVirtualNetwork @net
## Place the network security group into a variable. ##
$sg = @{
Name = 'lb-NSG'
ResourceGroupName = $rg.name
}
$nsg = Get-AzNetworkSecurityGroup @sg
## Command to create network interface for VM ##
$nic = @{
Name = "lb-nic-testvm"
ResourceGroupName = $rg.name
Location = 'westus2'
Subnet = $vnet.Subnets[0]
NetworkSecurityGroup = $nsg
}
$nicVM = New-AzNetworkInterface @nic
## Create a virtual machine configuration for VMs ##
$vmsz = @{
VMName = "lb-TestVM"
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = "lb-TestVM"
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
Testowanie modułu równoważenia obciążenia
Znajdź prywatny adres IP modułu równoważenia obciążenia na ekranie Przegląd . Wybierz pozycję Wszystkie usługi w menu po lewej stronie, wybierz pozycję Wszystkie zasoby, a następnie wybierz pozycję Moduł równoważenia obciążenia.
Zanotuj lub skopiuj adres obok Prywatny adres IP na stronie Przegląd modułu równoważenia obciążenia.
Wybierz pozycję Wszystkie usługi w menu po lewej stronie, wybierz pozycję Wszystkie zasoby, a następnie z listy zasobów wybierz pozycję lb-TestVM znajdującą się w grupie zasobów równoważenia obciążenia—ps-rg .
Na stronie Przegląd wybierz pozycję Połącz, a następnie wybierz pozycję Bastion.
Wprowadź nazwę użytkownika i hasło wprowadzone podczas tworzenia maszyny wirtualnej.
Otwórz Internet Explorer na maszynie wirtualnej lb-TestVM.
Wprowadź adres IP z poprzedniego kroku na pasku adresu przeglądarki. Jest wyświetlana niestandardowa strona serwera WWW usługi IIS.
Aby zobaczyć, jak moduł równoważenia obciążenia dystrybuuje ruch na wszystkich trzech maszynach wirtualnych, możesz wymusić odświeżenie przeglądarki internetowej z maszyny testowej.
Czyszczenie zasobów
Gdy grupa zasobów, moduł równoważenia obciążenia i pozostałe zasoby nie będą już potrzebne, możesz użyć polecenia Remove-AzResourceGroup .
Remove-AzResourceGroup -Name $rg.name
Następne kroki
W tym przewodniku Szybki start przyjęto następujące założenia:
Utworzono wewnętrzny moduł równoważenia obciążenia
Dołączone maszyny wirtualne
Skonfigurowano regułę ruchu modułu równoważenia obciążenia i sondę kondycji
Przetestowano moduł równoważenia obciążenia
Aby dowiedzieć się więcej na temat usługi Azure Load Balancer, przejdź do: