Rövid útmutató: Nyilvános terheléselosztó létrehozása virtuális gépek terheléselosztásához az Azure PowerShell használatával
Ismerkedés az Azure Load Balancerrel az Azure PowerShell használatával egy nyilvános terheléselosztó és két virtuális gép létrehozásához. További erőforrások például az Azure Bastion, a NAT Gateway, a virtuális hálózat és a szükséges alhálózatok.
Előfeltételek
Egy Azure-fiók, aktív előfizetéssel. Fiók létrehozása ingyenesen
Helyileg telepített Azure PowerShell vagy Azure Cloud Shell
Ha a PowerShell helyi telepítése és használata mellett dönt, ehhez a cikkhez az Azure PowerShell-modul 5.4.1-es vagy újabb verziójára lesz szükség. A telepített verzió azonosításához futtassa a következőt: Get-Module -ListAvailable Az
. Ha frissíteni szeretne, olvassa el az Azure PowerShell-modul telepítését ismertető cikket. Ha helyileg futtatja a PowerShellt, az Azure-ral való kapcsolat létrehozásához is futnia Connect-AzAccount
kell.
Erőforráscsoport létrehozása
Az Azure-erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat.
Hozzon létre egy erőforráscsoportot a New-AzResourceGroup használatával:
$rg = @{
Name = 'CreatePubLBQS-rg'
Location = 'eastus'
}
New-AzResourceGroup @rg
Hozzon létre egy nyilvános IP-címet
Nyilvános IP-cím létrehozásához használja a New-AzPublicIpAddress parancsot.
$publicip = @{
Name = 'myPublicIP'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
New-AzPublicIpAddress @publicip
Az 1. zónában a következő paranccsal hozhat létre egy zóna nyilvános IP-címét:
$publicip = @{
Name = 'myPublicIP'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1
}
New-AzPublicIpAddress @publicip
Terheléselosztó létrehozása
Ez a szakasz részletesen ismerteti a terheléselosztó következő összetevőinek létrehozását és konfigurálását:
Hozzon létre egy előtérbeli IP-címet a New-AzLoadBalancerFrontendIpConfig használatával az előtérbeli IP-készlethez. Ez az IP fogadja a bejövő forgalmat a terheléselosztón
Hozzon létre egy háttércímkészletet a New-AzLoadBalancerBackendAddressPoolConfig használatával a terheléselosztó előtéréből küldött forgalomhoz. Ebben a készletben helyezik üzembe a háttérbeli virtuális gépeket
Állapotadat-mintavétel létrehozása az Add-AzLoadBalancerProbeConfig használatával, amely meghatározza a háttérbeli virtuálisgép-példányok állapotát
Terheléselosztó-szabály létrehozása az Add-AzLoadBalancerRuleConfig használatával, amely meghatározza a forgalom virtuális gépekre való elosztását
Nyilvános terheléselosztó létrehozása a New-AzLoadBalancerrel
## Place public IP created in previous steps into variable. ##
$pip = @{
Name = 'myPublicIP'
ResourceGroupName = 'CreatePubLBQS-rg'
}
$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 = 'CreatePubLBQS-rg'
Name = 'myLoadBalancer'
Location = 'eastus'
Sku = 'Standard'
FrontendIpConfiguration = $feip
BackendAddressPool = $bePool
LoadBalancingRule = $rule
Probe = $healthprobe
}
New-AzLoadBalancer @loadbalancer
Virtuális hálózat konfigurálása
A virtuális gépek üzembe helyezése és a terheléselosztó tesztelése előtt hozza létre a támogató virtuális hálózati erőforrásokat.
Hozzon létre egy virtuális hálózatot a háttérbeli virtuális gépekhez.
Hozzon létre egy hálózati biztonsági csoportot a virtuális hálózat bejövő kapcsolatainak definiálásához.
Hozzon létre egy Azure Bastion-gazdagépet a háttérkészlet virtuális gépeinek biztonságos kezeléséhez.
Nat-átjáróval kimenő internetkapcsolatot biztosíthat a terheléselosztó háttérkészletében lévő erőforrásokhoz.
Virtuális hálózat, hálózati biztonsági csoport, megerősített gazdagép és NAT-átjáró létrehozása
Virtuális hálózat létrehozása a New-AzVirtualNetwork használatával
Hálózati biztonsági csoport szabályának létrehozása a New-AzNetworkSecurityRuleConfig használatával
Azure Bastion-gazdagép létrehozása a New-AzBastion használatával
Hálózati biztonsági csoport létrehozása a New-AzNetworkSecurityGroup használatával
A NAT-átjáró erőforrásának létrehozása a New-AzNatGateway használatával
A New-AzVirtualNetworkSubnetConfig használatával társítsa a NAT-átjárót a virtuális hálózat alhálózatához
Fontos
Az óránkénti díjszabás a Bastion üzembe helyezésének pillanatától kezdődik, a kimenő adathasználattól függetlenül. További információ: Díjszabás és termékváltozatok. Ha a Bastiont egy oktatóanyag vagy teszt részeként helyezi üzembe, javasoljuk, hogy a használat befejezése után törölje ezt az erőforrást.
## Create public IP address for NAT gateway ##
$ip = @{
Name = 'myNATgatewayIP'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$publicIP = New-AzPublicIpAddress @ip
## Create NAT gateway resource ##
$nat = @{
ResourceGroupName = 'CreatePubLBQS-rg'
Name = 'myNATgateway'
IdleTimeoutInMinutes = '10'
Sku = 'Standard'
Location = 'eastus'
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 = 'CreatePubLBQS-rg'
Location = 'eastus'
AddressPrefix = '10.1.0.0/16'
Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net
## Create public IP address for bastion host. ##
$ip = @{
Name = 'myBastionIP'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$publicip = New-AzPublicIpAddress @ip
## Create bastion host ##
$bastion = @{
ResourceGroupName = 'CreatePubLBQS-rg'
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 = 'CreatePubLBQS-rg'
Location = 'eastus'
SecurityRules = $rule1
}
New-AzNetworkSecurityGroup @nsg
Virtuális gépek létrehozása
Ebben a szakaszban a terheléselosztó háttérkészletéhez tartozó két virtuális gépet hozza létre.
Két hálózati adapter létrehozása a New-AzNetworkInterface használatával
Rendszergazdai felhasználónév és jelszó beállítása a virtuális gépekhez a Get-Credential használatával
Hozza létre a virtuális gépeket a következőkkel:
# Set the administrator and password for the VMs. ##
$cred = Get-Credential
## Place the virtual network into a variable. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'CreatePubLBQS-rg'
}
$vnet = Get-AzVirtualNetwork @net
## Place the load balancer into a variable. ##
$lb = @{
Name = 'myLoadBalancer'
ResourceGroupName = 'CreatePubLBQS-rg'
}
$bepool = Get-AzLoadBalancer @lb | Get-AzLoadBalancerBackendAddressPoolConfig
## Place the network security group into a variable. ##
$ns = @{
Name = 'myNSG'
ResourceGroupName = 'CreatePubLBQS-rg'
}
$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 = 'CreatePubLBQS-rg'
Location = 'eastus'
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 = 'CreatePubLBQS-rg'
Location = 'eastus'
VM = $vmConfig
Zone = "$i"
}
New-AzVM @vm -AsJob
}
A virtuális gépek és a megerősített gazdagép üzembe helyezései PowerShell-feladatokként lesznek elküldve. A feladatok állapotának megtekintéséhez használja a Get-Job parancsot:
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
Mielőtt továbblépne a következő lépésekre, győződjön meg arról, hogy a virtuális gép létrehozásának állapota befejeződött.
Feljegyzés
Az Azure alapértelmezett kimenő hozzáférési IP-címet biztosít azokhoz a virtuális gépekhez, amelyek vagy nincsenek hozzárendelve nyilvános IP-címhez, vagy egy belső alapszintű Azure-terheléselosztó háttérkészletében találhatók. Az alapértelmezett kimenő hozzáférési IP-mechanizmus olyan kimenő IP-címet biztosít, amely nem konfigurálható.
Az alapértelmezett kimenő hozzáférési IP-cím le van tiltva az alábbi események egyike esetén:
- A virtuális géphez nyilvános IP-cím van hozzárendelve.
- A virtuális gép egy standard terheléselosztó háttérkészletébe kerül kimenő szabályokkal vagy anélkül.
- Egy Azure NAT Gateway-erőforrás van hozzárendelve a virtuális gép alhálózatához.
A virtuálisgép-méretezési csoportok rugalmas vezénylési módban történő használatával létrehozott virtuális gépek nem rendelkeznek alapértelmezett kimenő hozzáféréssel.
Az Azure-beli kimenő kapcsolatokról további információt az Alapértelmezett kimenő hozzáférés az Azure-ban és a Kimenő kapcsolatok forráshálózati címfordításának (SNAT) használata című témakörben talál.
Az IIS telepítése
A Set-AzVMExtension használatával telepítse az egyéni szkriptbővítményt.
A bővítmény az IIS-webkiszolgáló telepítéséhez fut PowerShell Add-WindowsFeature Web-Server
, majd frissíti a Default.htm lapot a virtuális gép állomásnevének megjelenítéséhez:
Fontos
A folytatás előtt győződjön meg arról, hogy a virtuális gépek üzembe helyezései befejeződtek az előző lépésekből. A virtuális gép üzembehelyezési feladatainak állapotának ellenőrzésére használható Get-Job
.
## 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 = 'CreatePubLBQS-rg'
VMName = "myVM$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
}
A bővítmények PowerShell-feladatokként vannak üzembe helyezve. A telepítési feladatok állapotának megtekintéséhez használja a Get-Job parancsot:
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
Mielőtt továbblépne a következő lépésekre, győződjön meg arról, hogy a feladatok állapota befejeződött.
A terheléselosztó tesztelése
A Get-AzPublicIpAddress használatával kérje le a terheléselosztó nyilvános IP-címét:
$ip = @{
ResourceGroupName = 'CreatePubLBQS-rg'
Name = 'myPublicIP'
}
Get-AzPublicIPAddress @ip | select IpAddress
Másolja a nyilvános IP-címet, majd illessze be a böngésző címsorába. Az IIS-webkiszolgáló alapértelmezett oldala jelenik meg a böngészőben.
Az erőforrások eltávolítása
Ha már nincs rá szükség, a Remove-AzResourceGroup paranccsal eltávolíthatja az erőforráscsoportot, a terheléselosztót és a fennmaradó erőforrásokat.
Remove-AzResourceGroup -Name 'CreatePubLBQS-rg'
Következő lépések
Ebben a rövid útmutatóban a következőket hajtja végre:
Azure Load Balancer létrehozása
2 virtuális gép csatlakoztatva a terheléselosztóhoz
A terheléselosztó tesztelése
Az Azure Load Balancerről a következő témakörben olvashat bővebben:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: