Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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. Emellett más erőforrásokat is üzembe helyezhet, például az Azure Bastiont, a NAT Gatewayt, a virtuális hálózatot és a szükséges alhálózatokat.
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 = 'westus2'
}
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 = $rg.name
Location = 'westus2'
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 = $rg.name
Location = 'westus2'
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 = $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
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 = $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
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 = $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
}
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 = $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
}
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 = $rg.name
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 $rg.name
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: