Alıştırma - Genel yük dengeleyiciyi yapılandırma

Tamamlandı

Azure Load Balancer’ı yapılandırmak için Azure portalı, PowerShell veya Azure CLI kullanabilirsiniz.

Sağlık kuruluşunuzda, hasta portalı web sunucularının sağlığına göre tutarlı bir yanıt sağlamak için istemci trafiğini yük dengelemek istiyorsunuz. Bir kullanılabilirlik kümesinde, sağlık hizmetleri portalı web uygulamanız olarak görev yapmak üzere iki sanal makineniz (VM) vardır.

Burada bir yük dengeleyici kaynağı oluşturacak ve sanal makineler arasında yük dağıtmak için kullanacaksınız.

Hasta portalı web uygulamasını dağıtma

İlk olarak, patient-portal uygulamanızı tek bir kullanılabilirlik kümesinde iki sanal makineye dağıtın. Zaman kazanmak için, başlangıç olarak bir betik çalıştırıp bu uygulamayı oluşturalım. Betik şunları yapar:

  • Sanal makineler için bir sanal ağ ve ağ altyapısı oluşturur.
  • Bu sanal ağda iki sanal makine oluşturur.

Hasta portalı web uygulamasını dağıtmak için:

  1. Yeni bir kaynak grubu oluşturma. 3. adımda [sandbox resource group name] öğesini kendi kaynak grubu adınızla değiştirin.

  2. Aşağıdaki git clone komutunu Azure Cloud Shell'de çalıştırın. Komut, uygulama için kaynağı içeren depoyu kopyalar ve GitHub'dan kurulum betiğini çalıştırır. Ardından kopyalanan deponun dizininde değişiklik yapılır.

    git clone https://github.com/MicrosoftDocs/mslearn-improve-app-scalability-resiliency-with-load-balancer.git
    cd mslearn-improve-app-scalability-resiliency-with-load-balancer
    
  3. Adından da anlaşılacağı gibi, betik tek bir kullanılabilirlik kümesinde iki sanal makine oluşturur. Çalıştırılması yaklaşık iki dakika sürer.

    bash create-high-availability-vm-with-sets.sh <rgn>[sandbox resource group name]</rgn>
    
  4. Betik tamamlandığında Azure portalı menüsünde veya Giriş sayfasında Kaynak grupları’nı ve sonra da [sandbox resource group name] kaynak grubunu seçin. Betik tarafından oluşturulan kaynakları gözden geçirin.

Yük dengeleyici oluşturma

Şimdi de yük dengeleyiciyi oluşturalım.

  1. Azure portalı menüsünde veya Giriş sayfasında, Azure hizmetleri'nin altında Kaynak oluştur'u seçin. Kaynak oluştur bölmesi görüntülenir.

  2. Arama hizmeti ve market arama kutusuna Load Balancer yazın ve Enter tuşuna basın.

  3. Açılan listeden Yük Dengeleyici - Microsoft'u seçin. Ardından Oluştur’u seçin.

    Create a Load Balancer instance in the Azure portal.

  4. Temel Bilgiler sekmesinde, her ayar için aşağıdaki değerleri girin:

    Ayar Value
    Proje ayrıntıları
    Abonelik Aboneliğiniz
    Kaynak grubu Kaynak grubunuzu seçin. Örneğin, learn-ts-loadbalancer-rg
    Örnek ayrıntıları
    Veri Akışı Adı Benzersiz bir ad girin. Örneğin Pub-LB-PatientsPortal.
    Bölge Sanal makinelerin oluşturulduğu konumu seçin.
    SKU Standart
    Tür Public
    Katman Bölgesel

    Screenshot that shows the Basics tab of the Create a Load Balancer screen in the Azure portal.

Ön uç IP yapılandırması ekleme

  1. İleri: Ön uç IP yapılandırması'nı seçin.

  2. + Ön uç IP yapılandırması ekle'yi seçin. Ön uç IP yapılandırması ekle bölmesi görüntülenir.

  3. Her ayar için aşağıdaki değerleri girin.

    Ayar Değer
    Veri Akışı Adı Ön uç IP yapılandırması için benzersiz bir ad girin. Örneğin myFrontendIP
    Sanal Ağ bePortalVnet'i seçin
    Alt ağ bePortalSubnet'i seçin
    Atama Dinamik'i seçin

    Screenshot that shows the completed settings for the Add frontend IP configuration.

  4. İletişim kutusunu kapatmak için Ekle'yi seçin. Yük dengeleyici oluştur bölmesi görüntülenir.

Arka uç havuzu ekleme

  1. İleri: Arka uç havuzları'ı seçin.

  2. + Arka uç havuzu ekle'yi seçin. Arka uç havuzu ekle bölmesi görüntülenir.

  3. Her ayar için aşağıdaki değerleri girin.

    Ayar Değer
    Veri Akışı Adı Arka uç havuzu için benzersiz bir ad girin. Örneğin bepool-http.
    Sanal ağ bePortalVnet'in seçili olduğunu onaylayın.
  4. IP yapılandırmaları'nın altında Ekle'yi seçin. Arka uç havuzuna IP yapılandırmaları ekle bölmesi görüntülenir.

  5. Sanal makine'nin altında webVM1 ve webVM2 sanal makinelerini seçin ve Ekle'yi seçin.

    Screenshot that shows the settings on the Add IP configurations to backend pool pane.

  6. Arka uç havuzu ekle ekranı yeniden görünür. IP yapılandırmaları'nın altında webVM1 ve webVM2 sanal makinelerini seçin ve Kaydet'i seçin. Yük dengeleyici oluştur ekranı yeniden görünür.

    Screenshot that shows the settings completed on the Add backend pool screen.

Yük dengeleme kuralı ekleme

Son olarak yük dengeleyici için bir kural oluşturalım.

  1. İleri: Gelen kuralları'nı seçin.

  2. Yük dengeleme kuralı bölümünde + Yük dengeleme kuralı ekle'yi seçin. Yük dengeleme kuralı ekle bölmesi görüntülenir.

  3. Her ayar için aşağıdaki değerleri girin.

    Ayar Değer
    Veri Akışı Adı Yük dengeleme kuralı için bir ad. Örneğin, lbrule-http.
    IP Sürümü IPv4
    Ön uç IP adresi Daha önce adlandırdığınız Ön Uç IP adresini seçin.
    Arka uç havuzu Daha önce adlandırdığınız arka uç havuzunu seçin. Örneğin bepool-http.
    Protokol TCP
    Bağlantı noktası 80 girin (varsayılan).
    Arka uç bağlantı noktası 80 girin (varsayılan).
    Durumu araştırması Yeni oluştur bağlantısını seçin. Sistem durumu yoklaması ekle iletişim kutusu görüntülenir.
  4. Her ayar için aşağıdaki değerleri girin.

    Ayar Değer
    Veri Akışı Adı Sistem durumu yoklaması için bir ad. Örneğin, healthprobe-http.
    Protokol TCP
    Bağlantı noktası 80 girin (varsayılan).
    Aralık 5 girin (varsayılan). Bu değer araştırmalar arasında geçen süredir.
  5. kaydet'i seçerek iletişim kutusunu kapatın. Yük dengeleme kuralı ekle bölmesi yeniden görüntülenir.

  6. Her ayar için aşağıdaki değerleri girmeye devam edin.

    Ayar Value
    Oturum kalıcılığı* Hiçbiri (varsayılan)
    Boşta bekleme zaman aşımı (dakika) 4 seçin (varsayılan). Bu değer istemcilerin etkin tutma iletileri göndermesini beklemeden TCP veya HTTP bağlantısının açık tutulacağı süredir.
    Kayan IP Devre dışı (varsayılan).

    Add a new load balancing rule.

  7. Yük dengeleme kuralı yapılandırmasını tamamlamak için Kaydet'i seçin.

  8. Yük dengeleyici oluştur ekranı yeniden görünür. Gözden geçir ve oluştur’u seçin.

  9. Doğrulama başarılı olduğunda Oluştur'u seçin. Dağıtım tamamlandığında Kaynağa git'i seçin.

  10. Genel Bakış sayfasında Genel IP adresini kopyalayın ve kaydedin. Genel IP adresini görüntülemek için Daha fazlası... öğesini seçmeniz gerekebilir.

IP adresleri oluşturma

İlk olarak yük dengeleyici için bir genel IP adresine ihtiyacımız vardır.

  1. Cloud Shell'de şu komutu çalıştırarak PowerShell'i başlatın:

    pwsh
    
  2. PowerShell'de yeni bir genel IP adresi oluşturun:

    $Location = $(Get-AzureRmResourceGroup -ResourceGroupName <rgn>[sandbox resource group name]</rgn>).Location
    
    $publicIP = New-AzPublicIpAddress `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Location $Location `
      -AllocationMethod "Static" `
      -Name "myPublicIP"
    
  3. Ön uç IP'sini oluşturmak için New-AzLoadBalancerFrontendIpConfig cmdlet'ini kullanın. Aşağıdaki kod, myFrontEnd adlı bir ön uç IP yapılandırması oluşturur ve myPublicIP adresini ekler:

    $frontendIP = New-AzLoadBalancerFrontendIpConfig `
      -Name "myFrontEnd" `
      -PublicIpAddress $publicIP
    

Yük dengeleyiciyi oluşturma

PowerShell kullanarak yük dengeleyiciyi yapılandırırken, dengeleyicinin kendisini oluşturmadan önce arka uç adres havuzunu, durum araştırmasını ve kuralı oluşturmalısınız.

  1. New-AzLoadBalancerBackendAddressPoolConfig cmdlet'ini çalıştırarak bir arka uç adres havuzu oluşturun. Son adımlarda sanal makineleri bu arka uç havuzuna ekleyeceksiniz. Aşağıdaki örnek myBackEndPool adlı bir arka uç adres havuzu oluşturur:

    $backendPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "myBackEndPool"
    
  2. Yük dengeleyicinin sağlık portalının durumunu izlemesine izin vermek için bir sağlık araştırması oluşturun. Durum araştırması, durum denetimlerine verdikleri yanıtlara göre sanal makineleri dinamik olarak yük dengeleyici rotasyonuna ekler ve kaldırır.

    $probe = New-AzLoadBalancerProbeConfig `
      -Name "myHealthProbe" `
      -Protocol http `
      -Port 80 `
      -IntervalInSeconds 5 `
      -ProbeCount 2 `
      -RequestPath "/"
    
  3. Artık trafiğin sanal makinelere nasıl dağıtılacağını tanımlamak için bir yük dengeleyici kuralına ihtiyacınız vardır. Gerekli kaynak ve hedef bağlantı noktalarının yanı sıra gelen trafik için ön uç IP yapılandırması ve trafiği almak için arka uç IP havuzu tanımlamanız gerekir. Yalnızca durumu iyi olan sanal makinelerin trafik almasını sağlamak için kullanılacak durum araştırmasını da tanımlamanız gerekir.

    $lbrule = New-AzLoadBalancerRuleConfig `
      -Name "myLoadBalancerRule" `
      -FrontendIpConfiguration $frontendIP `
      -BackendAddressPool $backendPool `
      -Protocol Tcp `
      -FrontendPort 80 `
      -BackendPort 80 `
      -Probe $probe
    
  4. Artık New-AzLoadBalancer cmdlet'ini çalıştırarak temel yük dengeleyiciyi oluşturabilirsiniz:

    $lb = New-AzLoadBalancer `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Name 'MyLoadBalancer' `
      -Location $Location `
      -FrontendIpConfiguration $frontendIP `
      -BackendAddressPool $backendPool `
      -Probe $probe `
      -LoadBalancingRule $lbrule
    
  5. Betiğin arka uç havuzu bilgilerini kullanmak için oluşturduğu ağ arabirimlerini güncelleştirerek sanal makineleri arka uç havuzuna bağlayın.

    $nic1 = Get-AzNetworkInterface -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name "webNic1"
    $nic2 = Get-AzNetworkInterface -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name "webNic2"
    
    $nic1.IpConfigurations[0].LoadBalancerBackendAddressPools = $backendPool
    $nic2.IpConfigurations[0].LoadBalancerBackendAddressPools = $backendPool
    
    Set-AzNetworkInterface -NetworkInterface $nic1 -AsJob
    Set-AzNetworkInterface -NetworkInterface $nic2 -AsJob
    
  6. Yük dengeleyicinin genel IP adresini ve web sitenizin URL'sini almak için aşağıdaki komutu çalıştırın:

    Write-Host http://$($(Get-AzPublicIPAddress `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Name "myPublicIP").IpAddress)
    

Yük dengeleyici oluşturma

Şimdi de yük dengeleyiciyi ve onunla ilişkili kaynakları oluşturmak için Azure CLI’yı kullanalım.

  1. Yeni bir genel IP adresi oluşturun.

    az network public-ip create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --allocation-method Static \
      --name myPublicIP
    
  2. Yük dengeleyiciyi oluşturun.

    az network lb create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --name myLoadBalancer \
      --public-ip-address myPublicIP \
      --frontend-ip-name myFrontEndPool \
      --backend-pool-name myBackEndPool
    
  3. Yük dengeleyicinin sağlık portalının durumunu izlemesine izin vermek için bir sağlık araştırması oluşturun. Sistem durumu yoklaması, sistem durumu denetimlerine verdikleri yanıta göre sanal makineleri dinamik olarak yük dengeleyici rotasyonuna ekler veya kaldırır.

    az network lb probe create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --lb-name myLoadBalancer \
      --name myHealthProbe \
      --protocol tcp \
      --port 80  
    
  4. Şimdi, trafiğin sanal makinelere nasıl dağıtılacağını tanımlamak için bir yük dengeleyici kuralına ihtiyacınız vardır. Gerekli kaynak ve hedef bağlantı noktalarının yanı sıra gelen trafik için ön uç IP yapılandırması ve trafiği almak için arka uç IP havuzu tanımlamanız gerekir. Yalnızca durumu iyi olan sanal makinelerin trafik almasını sağlamak için kullanılacak durum araştırmasını da tanımlamanız gerekir.

    az network lb rule create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --lb-name myLoadBalancer \
      --name myHTTPRule \
      --protocol tcp \
      --frontend-port 80 \
      --backend-port 80 \
      --frontend-ip-name myFrontEndPool \
      --backend-pool-name myBackEndPool \
      --probe-name myHealthProbe
    
  5. Betikte arka uç havuzu bilgilerini kullanmak için oluşturduğunuz ağ arabirimlerini güncelleştirerek sanal makineleri arka uç havuzuna bağlayın.

    az network nic ip-config update \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --nic-name webNic1 \
      --name ipconfig1 \
      --lb-name myLoadBalancer \
      --lb-address-pools myBackEndPool
    
    az network nic ip-config update \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --nic-name webNic2 \
      --name ipconfig1 \
      --lb-name myLoadBalancer \
      --lb-address-pools myBackEndPool
    
  6. Yük dengeleyicinin genel IP adresini ve web sitenizin URL'sini almak için aşağıdaki komutu çalıştırın:

    echo http://$(az network public-ip show \
                    --resource-group <rgn>[sandbox resource group name]</rgn> \
                    --name myPublicIP \
                    --query ipAddress \
                    --output tsv)
    

Yük dengeleyici yapılandırmasını test etme

Şimdi de yük dengeleyicinin kullanılabilirlik ve sistem durumu sorunlarını dinamik olarak nasıl işleyebildiğini göstermek için dengeleyici kurulumunu test edelim.

  1. Yeni bir tarayıcı sekmesinde not aldığınız genel IP adresine göz atın. Sanal makinelerden birinin yanıtı tarayıcıda görüntülenir.

  2. Yanıtın her iki sanal makineden de rastgele döndürüldüğünü görmek için Ctrl+F5 tuşlarına birkaç kez basarak "yenilemeye zorlamayı" deneyin.

  3. Azure portalı menüsünde veya Giriş sayfasında Tüm kaynaklar'ı seçin. Ardından webVM1'i ve ardından Durdur'u seçin.

  4. Web sitesinin gösterildiği sekmeye dönün ve web sayfasını yenilenmeye zorlayın. Tüm istekler webVM2’den döndürülür.