Rychlý start: Vytvoření veřejného nástroje pro vyrovnávání zatížení pro vyrovnávání zatížení virtuálních počítačů pomocí Azure PowerShellu
Začněte používat Azure Load Balancer pomocí Azure PowerShellu k vytvoření veřejného nástroje pro vyrovnávání zatížení a dvou virtuálních počítačů. Nasadíte také další prostředky, mezi které patří Azure Bastion, NAT Gateway, virtuální síť a požadované podsítě.
Požadavky
Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
Azure PowerShell nainstalovaný místně nebo Azure Cloud Shell
Pokud se rozhodnete nainstalovat a používat PowerShell místně, musíte použít modul Azure PowerShell verze 5.4.1 nebo novější. Nainstalovanou verzi zjistíte spuštěním příkazu Get-Module -ListAvailable Az
. Pokud potřebujete upgrade, přečtěte si téma Instalace modulu Azure PowerShell. Pokud používáte PowerShell místně, musíte také spustit Connect-AzAccount
, abyste vytvořili připojení k Azure.
Vytvoření skupiny zdrojů
Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.
Vytvořte skupinu prostředků pomocí rutiny New-AzResourceGroup:
$rg = @{
Name = 'CreatePubLBQS-rg'
Location = 'westus2'
}
New-AzResourceGroup @rg
Vytvoření veřejné IP adresy
Pomocí rutiny New-AzPublicIpAddress vytvořte veřejnou IP adresu.
$publicip = @{
Name = 'myPublicIP'
ResourceGroupName = $rg.name
Location = 'westus2'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
New-AzPublicIpAddress @publicip
Pokud chcete vytvořit zónovou veřejnou IP adresu v zóně 1, použijte následující příkaz:
$publicip = @{
Name = 'myPublicIP'
ResourceGroupName = $rg.name
Location = 'westus2'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1
}
New-AzPublicIpAddress @publicip
Vytvoření nástroje pro vyrovnávání zatížení
Tato část podrobně popisuje vytvoření a konfiguraci následujících komponent nástroje pro vyrovnávání zatížení:
Vytvořte front-endovou IP adresu pomocí rutiny New-AzLoadBalancerFrontendIpConfig pro front-endový fond IP adres. Tato IP adresa přijímá příchozí provoz v nástroji pro vyrovnávání zatížení.
Vytvořte back-endový fond adres pomocí rutiny New-AzLoadBalancerBackendAddressPoolConfig pro provoz odesílaný z front-endu nástroje pro vyrovnávání zatížení. Tento fond je místem, kde se nasazují vaše back-endové virtuální počítače.
Vytvoření sondy stavu pomocí rutiny Add-AzLoadBalancerProbeConfig , která určuje stav instancí back-endových virtuálních počítačů
Vytvoření pravidla nástroje pro vyrovnávání zatížení pomocí rutiny Add-AzLoadBalancerRuleConfig definující způsob distribuce provozu do virtuálních počítačů
Vytvoření veřejného nástroje pro vyrovnávání zatížení pomocí New-AzLoadBalancer
## 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
Konfigurace virtuální sítě
Před nasazením virtuálních počítačů a otestováním nástroje pro vyrovnávání zatížení vytvořte podpůrné prostředky virtuální sítě.
Vytvořte virtuální síť pro back-endové virtuální počítače.
Vytvořte skupinu zabezpečení sítě, která definuje příchozí připojení k vaší virtuální síti.
Vytvořte hostitele Služby Azure Bastion pro bezpečnou správu virtuálních počítačů v back-endovém fondu.
Pomocí služby NAT Gateway můžete poskytovat odchozí internetový přístup k prostředkům v back-endovém fondu vašeho nástroje pro vyrovnávání zatížení.
Vytvoření virtuální sítě, skupiny zabezpečení sítě, hostitele bastionu a služby NAT Gateway
Vytvoření virtuální sítě pomocí rutiny New-AzVirtualNetwork
Vytvoření pravidla skupiny zabezpečení sítě pomocí rutiny New-AzNetworkSecurityRuleConfig
Vytvoření hostitele Služby Azure Bastion pomocí rutiny New-AzBastion
Vytvoření skupiny zabezpečení sítě pomocí rutiny New-AzNetworkSecurityGroup
Vytvoření prostředku služby NAT Gateway pomocí Rutiny New-AzNatGateway
Přidružení brány NAT k podsíti virtuální sítě pomocí rutiny New-AzVirtualNetworkSubnetConfig
Důležité
Hodinová cena začíná od okamžiku nasazení Bastionu bez ohledu na využití odchozích dat. Další informace najdete v tématu Ceny a skladové položky. Pokud bastion nasazujete jako součást kurzu nebo testu, doporučujeme tento prostředek po dokončení jeho použití odstranit.
## 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
Vytvoření virtuálních počítačů
V této části vytvoříte dva virtuální počítače pro back-endový fond nástroje pro vyrovnávání zatížení.
Vytvoření dvou síťových rozhraní pomocí New-AzNetworkInterface
Nastavení uživatelského jména a hesla správce pro virtuální počítače pomocí Get-Credential
Vytvořte virtuální počítače pomocí:
# 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
}
Nasazení virtuálních počítačů a hostitele bastionu se odesílají jako úlohy PowerShellu. Pokud chcete zobrazit stav úloh, použijte příkaz 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
Než přejdete k dalším krokům, ujistěte se, že je stav vytvoření virtuálního počítače dokončený.
Poznámka:
Azure poskytuje výchozí odchozí IP adresu pro virtuální počítače, které nemají přiřazenou veřejnou IP adresu nebo jsou v back-endovém fondu interního základního nástroje pro vyrovnávání zatížení Azure. Výchozí mechanismus odchozích IP adres poskytuje odchozí IP adresu, která není konfigurovatelná.
Výchozí ip adresa odchozího přístupu je zakázaná, když dojde k jedné z následujících událostí:
- Virtuálnímu počítači se přiřadí veřejná IP adresa.
- Virtuální počítač se umístí do back-endového fondu standardního nástroje pro vyrovnávání zatížení s odchozími pravidly nebo bez něj.
- Prostředek Azure NAT Gateway je přiřazen k podsíti virtuálního počítače.
Virtuální počítače, které vytvoříte pomocí škálovacích sad virtuálních počítačů v flexibilním režimu orchestrace, nemají výchozí odchozí přístup.
Další informace o odchozích připojeních v Azure najdete v tématu Výchozí odchozí přístup v Azure a použití překladu zdrojových síťových adres (SNAT) pro odchozí připojení.
instalace IIS
Pomocí set-AzVMExtension nainstalujte rozšíření vlastních skriptů.
Rozšíření se spustí PowerShell Add-WindowsFeature Web-Server
pro instalaci webového serveru SLUŽBY IIS a potom aktualizuje stránku Default.htm tak, aby zobrazovala název hostitele virtuálního počítače:
Důležité
Než budete pokračovat, ujistěte se, že se nasazení virtuálních počítačů dokončila z předchozích kroků. Slouží Get-Job
ke kontrole stavu úloh nasazení virtuálního počítače.
## 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
}
Rozšíření se nasazují jako úlohy PowerShellu. Pokud chcete zobrazit stav úloh instalace, použijte 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
Než přejdete k dalším krokům, ujistěte se, že je stav úloh dokončený.
Testování Load Balanceru
Pomocí rutiny Get-AzPublicIpAddress získejte veřejnou IP adresu nástroje pro vyrovnávání zatížení:
$ip = @{
ResourceGroupName = $rg.name
Name = 'myPublicIP'
}
Get-AzPublicIPAddress @ip | select IpAddress
Zkopírujte veřejnou IP adresu a pak ji vložte do adresního řádku svého prohlížeče. V prohlížeči se zobrazí výchozí stránka webového serveru služby IIS.
Vyčištění prostředků
Pokud už je nepotřebujete, můžete pomocí příkazu Remove-AzResourceGroup odebrat skupinu prostředků, nástroj pro vyrovnávání zatížení a zbývající prostředky.
Remove-AzResourceGroup -Name $rg.name
Další kroky
V tomto rychlém startu:
Vytvoření Nástroje pro vyrovnávání zatížení Azure
Připojených 2 virtuálních počítačů k nástroji pro vyrovnávání zatížení
Otestovaný nástroj pro vyrovnávání zatížení
Další informace o Službě Azure Load Balancer najdete v dalších akcích: