Rövid útmutató: Belső terheléselosztó létrehozása virtuális gépek terheléselosztásához az Azure PowerShell használatával
Ismerkedés az Azure Load Balancer belső terheléselosztó és két virtuális gép Azure PowerShell-lel való létrehozásával. 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 = 'CreateINTLBQS-rg'
Location = 'westus2'
}
New-AzResourceGroup @rg
Virtuális hálózat konfigurálása
Belső terheléselosztó létrehozásakor a rendszer egy virtuális hálózatot konfigurál a terheléselosztó hálózataként. 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.
Nyilvános IP-cím létrehozása a NAT-átjáróhoz
Virtuális hálózat létrehozása a háttérbeli virtuális gépekhez
Hálózati biztonsági csoport létrehozása a virtuális hálózat bejövő kapcsolatainak definiálásához
Azure Bastion-gazdagép létrehozása a háttérkészlet virtuális gépeinek biztonságos kezeléséhez
Hozzon létre egy nyilvános IP-címet
A New-AzPublicIpAddress használatával hozzon létre nyilvános IP-címet a NAT-átjáróhoz.
## 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
Az 1. zónában a következő paranccsal hozhat létre egy zóna nyilvános IP-címét:
## 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
Feljegyzés
A NAT-átjáró a nyilvános IP-címet használja a háttérkészletben lévő virtuális gépek kimenő kapcsolatának biztosítására. Ez akkor ajánlott, ha belső terheléselosztót hoz létre, és kimenő kapcsolathoz szüksége van a háttérkészlet erőforrásaira. További információ: NAT-átjáró.
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
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 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
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
Háttércímkészlet létrehozása a New-AzLoadBalancerBackendAddressPoolConfig használatával a terheléselosztó előtéréből küldött forgalomhoz
Á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 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
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.
Három 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 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
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
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
A teszt virtuális gép létrehozása
Hozza létre a virtuális gépet a következőkkel:
# 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
A terheléselosztó tesztelése
Keresse meg a terheléselosztó privát IP-címét az Áttekintés képernyőn. Válassza a bal oldali menü Minden szolgáltatás elemét, majd a Minden erőforrás lehetőséget, majd a myLoadBalancer lehetőséget.
Jegyezze fel vagy másolja ki a privát IP-cím melletti címet a myLoadBalancer áttekintésében.
Válassza az Összes szolgáltatást a bal oldali menüben, válassza az Összes erőforrás lehetőséget, majd az erőforrások listájában válassza ki a CreateIntLBQS-rg erőforráscsoportban található MyTestVM elemet.
Az Áttekintés lapon válassza a Csatlakozás elemet, majd lépjen a Bastion lehetőségre.
Adja meg a virtuális gép létrehozása során megadott felhasználónevet és jelszót.
Nyissa meg az Internet Explorert a myTestVM-en.
Adja meg az előző lépés IP-címét a böngésző címsorába. Megjelenik az egyéni IIS-kiszolgálólap.
Ha látni szeretné, hogy a terheléselosztó mindhárom virtuális gépen elosztja a forgalmat, kényszerítheti a webböngésző frissítését a tesztgépről.
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:
Belső terheléselosztót hozott létre
Csatlakoztatott virtuális gépek
A terheléselosztó forgalmi szabályának és állapotmintájának konfigurálása
A terheléselosztó tesztelése
Az Azure Load Balancerről a következő témakörben olvashat bővebben: