Mulai cepat: Membuat penyeimbang beban publik untuk memuat keseimbangan VM menggunakan Azure PowerShell
Mulai menggunakan Azure Load Balancer dengan menggunakan Azure PowerShell untuk membuat load balancer internal dan dua komputer virtual. Sumber daya tambahan termasuk Azure Bastion, NAT Gateway, jaringan virtual, dan subnet yang diperlukan.
Prasyarat
Akun Azure dengan langganan aktif. Membuat akun secara gratis
Azure PowerShell diiinstal secara lokal atau Azure Cloud Shell
Jika Anda memilih untuk memasang dan menggunakan PowerShell secara lokal, artikel ini memerlukan modul Azure PowerShell versi 5.4.1 atau versi yang lebih baru. Jalankan Get-Module -ListAvailable Az
untuk menemukan versi terinstal. Jika Anda perlu peningkatan, lihat Instal modul Azure PowerShell. Jika Anda menjalankan PowerShell secara lokal, Anda juga harus menjalankan Connect-AzAccount
untuk membuat koneksi dengan Azure.
Buat grup sumber daya
Grup sumber daya Azure adalah kontainer logis tempat sumber daya Azure disebarkan dan dikelola.
Membuat grup sumber daya menggunakan New-AzResourceGroup.
New-AzResourceGroup -Name 'CreateIntLBQS-rg' -Location 'eastus'
Konfigurasikan jaringan virtual
Saat Anda membuat penyeimbang beban internal, jaringan virtual dikonfigurasi sebagai jaringan untuk penyeimbang beban. Sebelum Anda menyebarkan VM dan menguji penyeimbang beban Anda, buat sumber daya jaringan virtual yang mendukung.
Membuat IP publik untuk gateway NAT
Membuat jaringan virtual untuk mesin virtual backend
Membuat grup keamanan jaringan untuk menentukan sambungan masuk ke jaringan virtual Anda
Membuat host Azure Bastion untuk mengelola mesin virtual di kumpulan backend dengan aman
Membuat alamat IP publik
Gunakan New-AzPublicIpAddress untuk membuat alamat IP publik untuk gateway NAT.
## Create public IP address for NAT gateway and place IP in variable ##
$gwpublicip = @{
Name = 'myNATgatewayIP'
ResourceGroupName = 'CreateIntLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
$gwpublicip = New-AzPublicIpAddress @gwpublicip
Untuk membuat alamat IP publik zonal di zona 1, gunakan perintah berikut:
## Create a zonal public IP address for NAT gateway and place IP in variable ##
$gwpublicip = @{
Name = 'myNATgatewayIP'
ResourceGroupName = 'CreateIntLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1
}
$gwpublicip = New-AzPublicIpAddress @gwpublicip
Catatan
Alamat IP publik digunakan oleh gateway NAT untuk menyediakan konektivitas keluar untuk komputer virtual di kumpulan backend. Ini disarankan ketika Anda membuat load balancer internal dan memerlukan sumber daya kumpulan backend untuk memiliki konektivitas keluar. Untuk informasi selengkapnya, lihat GATEWAY NAT.
Membuat jaringan virtual, grup keamanan jaringan, host bastion, dan gateway NAT
Membuat jaringan virtual dengan New-AzVirtualNetwork
Membuat aturan kelompok keamanan jaringan dengan New-AzNetworkSecurityRuleConfig
Buat host Azure Bastion dengan New-AzBastion
Membuat sumber daya gateway NAT dengan New-AzNatGateway
Menggunakan New-AzVirtualNetworkSubnetConfig untuk mengaitkan gateway NAT ke subnet jaringan virtual
Penting
Harga per jam dimulai sejak Bastion disebarkan, terlepas dari penggunaan data keluar. Untuk informasi selengkapnya, lihat Harga dan SKU. Jika Anda menyebarkan Bastion sebagai bagian dari tutorial atau pengujian, kami sarankan Anda menghapus sumber daya ini setelah Selesai menggunakannya.
## Create NAT gateway resource ##
$nat = @{
ResourceGroupName = 'CreateIntLBQS-rg'
Name = 'myNATgateway'
IdleTimeoutInMinutes = '10'
Sku = 'Standard'
Location = 'eastus'
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 = 'CreateIntLBQS-rg'
Location = 'eastus'
AddressPrefix = '10.1.0.0/16'
Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net
## Create public IP address for bastion host. ##
$bastionip = @{
Name = 'myBastionIP'
ResourceGroupName = 'CreateIntLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$bastionip = New-AzPublicIpAddress @bastionip
## Create bastion host ##
$bastion = @{
ResourceGroupName = 'CreateIntLBQS-rg'
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 = 'CreateIntLBQS-rg'
Location = 'eastus'
SecurityRules = $rule1
}
New-AzNetworkSecurityGroup @nsg
Membuat load balancer
Bagian ini menjelaskan cara untuk membuat dan mengonfigurasi komponen penyeimbang beban berikut:
Buat IP frontend dengan New-AzLoadBalancerFrontendIpConfig untuk kumpulan IP frontend. IP ini menerima lalu lintas yang masuk ke load balancer
Membuat kumpulan alamat backend dengan New-AzLoadBalancerBackendAddressPoolConfig untuk lalu lintas yang dikirim dari frontend load balancer
Membuat pemeriksaan kesehatan menggunakan Add-AzLoadBalancerProbeConfig yang menentukan kesehatan instans mesin virtual backend
Membuat aturan penyeimbang muatan dengan Add-AzLoadBalancerRuleConfig yang menentukan bagaimana lalu lintas didistribusikan ke mesin virtual
Buat penyeimbang muatan publik menggunakan New-AzLoadBalancer
## Place virtual network created in previous step into a variable. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'CreateIntLBQS-rg'
}
$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 = 'CreateIntLBQS-rg'
Name = 'myLoadBalancer'
Location = 'eastus'
Sku = 'Standard'
FrontendIpConfiguration = $feip
BackendAddressPool = $bePool
LoadBalancingRule = $rule
Probe = $healthprobe
}
New-AzLoadBalancer @loadbalancer
Membuat komputer virtual
Di bagian ini, Anda membuat dua komputer virtual untuk kumpulan backend load balancer.
Buat tiga antarmuka jaringan menggunakan New-AzNetworkInterface
Atur nama pengguna dan kata sandi administrator untuk mesin virtual menggunakan Get-Credential
Buat komputer virtual dengan:
# 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 = 'CreateIntLBQS-rg'
}
$vnet = Get-AzVirtualNetwork @net
## Place the load balancer into a variable. ##
$lb = @{
Name = 'myLoadBalancer'
ResourceGroupName = 'CreateIntLBQS-rg'
}
$bepool = Get-AzLoadBalancer @lb | Get-AzLoadBalancerBackendAddressPoolConfig
## Place the network security group into a variable. ##
$sg = {
Name = 'myNSG'
ResourceGroupName = 'CreateIntLBQS-rg' @sg
}
$nsg = Get-AzNetworkSecurityGroup
## 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 = 'CreateIntLBQS-rg'
Location = 'eastus'
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 = 'CreateIntLBQS-rg'
Location = 'eastus'
VM = $vmConfig
Zone = "$i"
}
}
New-AzVM @vm -asjob
Penyebaran komputer virtual dan host bastion akan dikirimkan sebagai pekerjaan PowerShell. Untuk melihat status pekerjaan, gunakan 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
Catatan
Azure menyediakan IP akses keluar default untuk VM yang tidak diberi alamat IP publik atau berada di kumpulan backend load balancer Azure dasar internal. Mekanisme IP akses keluar default menyediakan alamat IP keluar yang tidak dapat dikonfigurasi.
IP akses keluar default dinonaktifkan saat salah satu peristiwa berikut terjadi:
- Alamat IP publik ditetapkan ke VM.
- VM ditempatkan di kumpulan backend load balancer standar, dengan atau tanpa aturan keluar.
- Sumber daya Azure NAT Gateway ditetapkan ke subnet VM.
VM yang Anda buat dengan menggunakan set skala komputer virtual dalam mode orkestrasi fleksibel tidak memiliki akses keluar default.
Untuk informasi selengkapnya tentang koneksi keluar di Azure, lihat Akses keluar default di Azure dan Menggunakan Terjemahan Alamat Jaringan Sumber (SNAT) untuk koneksi keluar.
Instal IIS
Gunakan Set-AzVMExtension untuk menginstal Custom Script Extension.
Ekstensi tersebut menjalankan PowerShell Add-WindowsFeature Web-Server
untuk menginstal server web IIS dan memperbarui halaman Default.htm untuk menampilkan nama host komputer virtual:
Penting
Pastikan penyebaran komputer virtual telah menyelesaikan langkah-langkah sebelumnya sebelum melanjutkan. Gunakan Get-Job
untuk memeriksa status pekerjaan penyebaran komputer virtual.
## 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 = 'CreateIntLBQS-rg'
VMName = "myVM$i"
Location = 'eastus'
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
}
Ekstensi tersebut disebarkan sebagai pekerjaan PowerShell. Untuk melihat status pekerjaan pemasangan, gunakan 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
Membuat mesin virtual pengujian
Buat komputer virtual dengan:
# Set the administrator and password for the VM. ##
$cred = Get-Credential
## Place the virtual network into a variable. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'CreateIntLBQS-rg'
}
$vnet = Get-AzVirtualNetwork @net
## Place the network security group into a variable. ##
$sg = {
Name = 'myNSG'
ResourceGroupName = 'CreateIntLBQS-rg' @sg
}
$nsg = Get-AzNetworkSecurityGroup
## Command to create network interface for VM ##
$nic = @{
Name = "myNicTestVM"
ResourceGroupName = 'CreateIntLBQS-rg'
Location = 'eastus'
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 = 'CreateIntLBQS-rg'
Location = 'eastus'
VM = $vmConfig
}
New-AzVM @vm
Menguji load balancer
Temukan alamat IP privat untuk penyeimbang beban di layar Ringkasan. Pilih Semua layanan di menu sebelah kiri, pilih Semua sumber daya, kemudian pilih myLoadBalancer.
Catat atau salin alamat di samping Alamat IP Privat diRingkasanmyLoadBalancer.
Pilih Semua layanan di menu sebelah kiri, pilih Semua sumber daya, kemudian dari daftar sumber daya, pilih myTestVM yang terletak di grup sumber daya CreateIntLBQS-rg.
Pada halaman Ringkasan, pilih Sambungkan, lalu Bastion.
Masukkan nama pengguna dan kata sandi yang dimasukkan selama pembuatan VM.
Buka Internet Explorer di myTestVM.
Masukkan alamat IP dari langkah sebelumnya ke bar alamat browser. Halaman server Web IIS kustom ditampilkan.
Untuk melihat load balancer mendistribusikan lalu lintas di ketiga VM, Anda dapat merefresh paksa browser web Anda dari mesin uji.
Membersihkan sumber daya
Jika tidak diperlukan lagi, Anda dapat menggunakan perintah Remove-AzResourceGroup untuk menghapus grup sumber daya, load balancer, dan sumber daya lainnya yang tersisa.
Remove-AzResourceGroup -Name 'CreateIntLBQS-rg'
Langkah berikutnya
Di mulai cepat ini:
Anda membuat load balancer internal
Melampirkan mesin virtual
Mengonfigurasi aturan lalu lintas penyeimbang muatan dan pemeriksaan kesehatan
Menguji load balancer
Untuk mempelajari informasi selengkapnya tentang Azure Load Balancer, lanjutkan ke: