Rychlý start: Vytvoření interního nástroje pro vyrovnávání zatížení virtuálních počítačů pomocí Azure PowerShellu
Začínáme s Azure Load Balancerem vytvořením interního nástroje pro vyrovnávání zatížení a dvěma virtuálními počítači pomocí Azure PowerShellu. 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 = 'CreateINTLBQS-rg'
Location = 'westus2'
}
New-AzResourceGroup @rg
Konfigurace virtuální sítě
Při vytváření interního nástroje pro vyrovnávání zatížení se virtuální síť nakonfiguruje jako síť pro nástroj pro vyrovnávání zatížení. 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ření veřejné IP adresy pro službu NAT Gateway
Vytvoření virtuální sítě pro back-endové virtuální počítače
Vytvoření skupiny zabezpečení sítě pro definování příchozích připojení k vaší virtuální síti
Vytvoření hostitele služby Azure Bastion pro bezpečnou správu virtuálních počítačů v back-endovém fondu
Vytvoření veřejné IP adresy
Pomocí rutiny New-AzPublicIpAddress vytvořte veřejnou IP adresu pro bránu NAT.
## 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
Pokud chcete vytvořit zónovou veřejnou IP adresu v zóně 1, použijte následující příkaz:
## 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
Poznámka:
Veřejnou IP adresu používá služba NAT Gateway k poskytování odchozího připojení pro virtuální počítače v back-endovém fondu. To se doporučuje, když vytvoříte interní nástroj pro vyrovnávání zatížení a potřebujete prostředky back-endového fondu, aby měly odchozí připojení. Další informace najdete v tématu NAT Gateway.
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í 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 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
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ření back-endového fondu adres pomocí rutiny New-AzLoadBalancerBackendAddressPoolConfig pro provoz odesílaný z front-endu nástroje pro vyrovnávání zatížení
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 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
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í tří 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 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
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
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
Vytvoření testovacího virtuálního počítače
Vytvořte virtuální počítač pomocí:
# 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
Testování Load Balanceru
Na obrazovce Přehled najděte privátní IP adresu nástroje pro vyrovnávání zatížení. V nabídce vlevo vyberte Všechny služby , vyberte Všechny prostředky a pak vyberte myLoadBalancer.
Poznamenejte si nebo zkopírujte adresu vedle privátní IP adresy v přehledu myLoadBalancer.
V nabídce vlevo vyberte Všechny služby , vyberte Všechny prostředky a pak v seznamu prostředků vyberte myTestVM , který se nachází ve skupině prostředků CreateIntLBQS-rg .
Na stránce Přehled vyberte Připojit a pak Bastion.
Zadejte uživatelské jméno a heslo zadané během vytváření virtuálního počítače.
Otevřete Internet Explorer na myTestVM.
Zadejte IP adresu z předchozího kroku do adresního řádku prohlížeče. Zobrazí se vlastní stránka webového serveru IIS.
Pokud chcete zobrazit distribuci provozu nástroje pro vyrovnávání zatížení napříč všemi třemi virtuálními počítači, můžete vynutit aktualizaci webového prohlížeče z testovacího počítače.
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řili jste interní nástroj pro vyrovnávání zatížení.
Připojené virtuální počítače
Konfigurace pravidla provozu nástroje pro vyrovnávání zatížení a sondy stavu
Otestovaný nástroj pro vyrovnávání zatížení
Další informace o Službě Azure Load Balancer najdete v dalších akcích: