Yüksek Kullanılabilirliğe Sahip Sanal Makineler Arasında Yük Dengeleme
Bu PowerShell komut dosyası örneği, yüksek oranda kullanılabilir ve yük dengeli bir yapılandırmada birkaç Windows Server 2016 sanal makinesini çalıştırmak için gereken her şeyi oluşturur. Komut dosyasını çalıştırdıktan sonra, bir Azure Kullanılabilirlik Kümesine katılmış ve bir Azure Yük Dengeleyici aracılığıyla erişilebilen üç sanal makineniz olacaktır.
$rgName='TestRG'
$location='westeurope'
# Kullanici objesi oluşturma
$cred = Get-Credential -Message 'VM için kullanici adi ve parola girin.'
# Kaynak grubu olusturma.
New-AzResourceGroup -Name $rgName -Location $location
# Sanal ag olusturma.
$subnet = New-AzVirtualNetworkSubnetConfig -Name 'TestSubnet' -AddressPrefix 192.168.1.0/24
$vnet = New-AzVirtualNetwork -ResourceGroupName $rgName -Name TestVnet' `
-AddressPrefix 192.168.0.0/16 -Location $location -Subnet $subnet
# Public IP adres olusturma.
$publicIp = New-AzPublicIpAddress -ResourceGroupName $rgName -Name 'TestPublicIP' `
-Location $location -AllocationMethod Dynamic
# Web sitesi icin bir front-end IP yapilandirması olusturma.
$feip = New-AzLoadBalancerFrontendIpConfig -Name 'TestFrontEndPool' -PublicIpAddress $publicIp
# Back-end adres pool olusturma.
$bepool = New-AzLoadBalancerBackendAddressPoolConfig -Name 'TestBackEndPool'
# 80 numarali baglanti noktasinda bir yuk dengeleme probu olusturma.
$probe = New-AzLoadBalancerProbeConfig -Name 'TestHealthProbe' -Protocol Http -Port 80 `
-RequestPath / -IntervalInSeconds 360 -ProbeCount 5
# 80 numarali baglanti noktasi icin bir yuk dengeleyici kurali oluştuma
$rule = New-AzLoadBalancerRuleConfig -Name 'TestLoadBalancerRuleWeb' -Protocol Tcp `
-Probe $probe -FrontendPort 80 -BackendPort 80 `
-FrontendIpConfiguration $feip -BackendAddressPool $bePool
# 3389 numarali baglanti noktasi icin üç NAT kurali olusturma
$natrule1 = New-AzLoadBalancerInboundNatRuleConfig -Name 'TestLoadBalancerRDP1' -FrontendIpConfiguration $feip `
-Protocol tcp -FrontendPort 4221 -BackendPort 3389
$natrule2 = New-AzLoadBalancerInboundNatRuleConfig -Name 'TestLoadBalancerRDP2' -FrontendIpConfiguration $feip `
-Protocol tcp -FrontendPort 4222 -BackendPort 3389
$natrule3 = New-AzLoadBalancerInboundNatRuleConfig -Name 'TestLoadBalancerRDP3' -FrontendIpConfiguration $feip `
-Protocol tcp -FrontendPort 4223 -BackendPort 3389
# Yük dengeleyici oluşturma.
$lb = New-AzLoadBalancer -ResourceGroupName $rgName -Name 'TestLoadBalancer' -Location $location `
-FrontendIpConfiguration $feip -BackendAddressPool $bepool `
-Probe $probe -LoadBalancingRule $rule -InboundNatRule $natrule1,$natrule2,$natrule3
# 3389 numaralı bağlantı noktası için bir ağ güvenlik grubu kuralı oluşturma
$rule1 = New-AzNetworkSecurityRuleConfig -Name 'TestNetworkSecurityGroupRuleRDP' -Description 'Allow RDP' `
-Access Allow -Protocol Tcp -Direction Inbound -Priority 1000 `
-SourceAddressPrefix Internet -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 3389
# 80 numaralı bağlantı noktası için bir ağ güvenlik grubu kuralı oluşturma
$rule2 = New-AzNetworkSecurityRuleConfig -Name 'TestNetworkSecurityGroupRuleHTTP' -Description 'Allow HTTP' `
-Access Allow -Protocol Tcp -Direction Inbound -Priority 2000 `
-SourceAddressPrefix Internet -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 80
# Ağ güvenlik grubu oluşturma
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $RgName -Location $location `
-Name 'TestNetworkSecurityGroup' -SecurityRules $rule1,$rule2
# Üç sanal ağ kartı oluşturma ve genel IP adresi ve NSG ile ilişkilendirme
$nicVM1 = New-AzNetworkInterface -ResourceGroupName $rgName -Location $location `
-Name 'TestNic1' -LoadBalancerBackendAddressPool $bepool -NetworkSecurityGroup $nsg `
-LoadBalancerInboundNatRule $natrule1 -Subnet $vnet.Subnets[0]
$nicVM2 = New-AzNetworkInterface -ResourceGroupName $rgName -Location $location `
-Name 'TestNic2' -LoadBalancerBackendAddressPool $bepool -NetworkSecurityGroup $nsg `
-LoadBalancerInboundNatRule $natrule2 -Subnet $vnet.Subnets[0]
$nicVM3 = New-AzNetworkInterface -ResourceGroupName $rgName -Location $location `
-Name 'TestNic3' -LoadBalancerBackendAddressPool $bepool -NetworkSecurityGroup $nsg `
-LoadBalancerInboundNatRule $natrule3 -Subnet $vnet.Subnets[0]
# Bir kullanılabilirlik kümesi oluşturmaa
$as = New-AzAvailabilitySet -ResourceGroupName $rgName -Location $location `
-Name 'TestAvailabilitySet' -Sku Aligned -PlatformFaultDomainCount 3 -PlatformUpdateDomainCount 3
# Üç sanal makine oluşturma
# ############## VM1 ###############
# Sanal makine yapılandırması oluşturma
$vmConfig = New-AzVMConfig -VMName 'TestVM1' -VMSize Standard_DS2 -AvailabilitySetId $as.Id | `
Set-AzVMOperatingSystem -Windows -ComputerName 'TestVM1' -Credential $cred | `
Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer `
-Skus 2016-Datacenter -Version latest | Add-AzVMNetworkInterface -Id $nicVM1.Id
# Sanal makine oluşturma
$vm1 = New-AzVM -ResourceGroupName $rgName -Location $location -VM $vmConfig
# ############## VM2 ###############
# Sanal makine yapılandırması oluşturma
$vmConfig = New-AzVMConfig -VMName 'TestVM2' -VMSize Standard_DS2 -AvailabilitySetId $as.Id | `
Set-AzVMOperatingSystem -Windows -ComputerName 'TestVM2' -Credential $cred | `
Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer `
-Skus 2016-Datacenter -Version latest | Add-AzVMNetworkInterface -Id $nicVM2.Id
# Sanal makine oluşturma
$vm2 = New-AzVM -ResourceGroupName $rgName -Location $location -VM $vmConfig
# ############## VM3 ###############
# Sanal makine yapılandırması oluşturma
$vmConfig = New-AzVMConfig -VMName 'TestVM3' -VMSize Standard_DS2 -AvailabilitySetId $as.Id | `
Set-AzVMOperatingSystem -Windows -ComputerName 'TestVM3' -Credential $cred | `
Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer `
-Skus 2016-Datacenter -Version latest | Add-AzVMNetworkInterface -Id $nicVM3.Id
# Sanal makine oluşturma
$vm3 = New-AzVM -ResourceGroupName $rgName -Location $location -VM $vmConfig