Ağ yük dengeleyicisini hedef havuzlardan bölgesel arka uç hizmetlerine geçirme

1. Giriş

Bu kılavuzda, mevcut bir ağ yük dengeleyicisini hedef havuz arka ucundan bölgesel arka uç hizmetine geçirmeye yönelik talimatlar yer almaktadır.

Neler öğreneceksiniz?

  • Bölgesel arka uç hizmetlerinin avantajlarını anlama
  • Hedef havuzları olan bir ağ yük dengeleyici oluşturma
  • Hedef havuz doğrulaması gerçekleştirme
  • Yönetilmeyen örnek gruplarını kullanarak bölgesel arka uç hizmeti oluşturma
  • Hedef havuzdan arka uç hizmetine taşıma işlemi gerçekleştirme
  • Arka uç hizmetleri doğrulaması gerçekleştirme

Gerekenler

  • Yük dengeleyicileri konusunda deneyim

2. Ağ Yük Dengeleme için bölgesel arka uç hizmetlerine genel bakış

Ağ Yükü Dengeleme sayesinde Google Cloud müşterileri, harici trafiği bir Google Cloud bölgesindeki sanal makineler arasında dağıtmak için güçlü bir araca sahip olur. Müşterilerimizin gelen trafiği yönetmesini ve yük dengeleyicinin davranış biçimini kontrol etmesini kolaylaştırmak amacıyla Ağ Yük Dengeleme'ye arka uç hizmetleri için kısa süre önce destek ekledik. Bu sayede müşterilerimize dağıtım sürecinde daha yüksek ölçek, hız, performans ve esneklik sağlar, bunları yönetmesi kolay bir yöntem sunar.

Artık arka uç hizmetlerini Ağ Yük Dengeleme ile destekliyoruz. Bu, önceki yaklaşım olan hedef havuzlara kıyasla önemli bir geliştirmedir. Arka uç hizmeti, yük dengeleyicilerimizin gelen trafiği ekli arka uçlara nasıl dağıttığını tanımlar ve yük dengeleyicinin davranış şekli üzerinde ayrıntılı kontrol sağlar.

3. Bölgesel arka uç hizmetlerinin avantajları

Yük dengeleyiciniz olarak bir bölgesel arka uç hizmeti seçmek, ortamınıza birçok avantaj sağlar.

267db35a58145be.png

Bölgesel arka uç hizmetleri size şunları sağlar:

  • Birleştirilmiş durum denetimi ile yüksek doğruluk oranı sunan durum denetimi: Bölgesel arka uç hizmetleri sayesinde artık yük dengeleme durum denetimi özelliklerinden tam olarak yararlanarak eski HTTP durum denetimlerinin kısıtlamalarından kurtulabilirsiniz. Uygunluk nedeniyle, özel istek ve yanıt dizeleri veya HTTPS desteği içeren TCP durum denetimleri, Ağ Yük Dengeleme müşterileri tarafından sıkça kullanılan bir istekti.
  • Yük devretme gruplarında daha iyi esneklik - Devir gruplarıyla, bir Örnek Grubunu birincil ve bir diğerini ikincil olarak atayabilir ve etkin gruptaki örneklerin durumu belirli bir eşiğin altına düştüğünde trafiği devretebilirsiniz. Yük devretme mekanizması üzerinde daha fazla kontrol sahibi olmak için keepalived veya pacemaker gibi bir aracı kullanabilir ve arka uç örneğinin durumundaki değişikliklere göre iyi durumda veya başarısız olan bir durum denetiminin gösterilmesini sağlayabilirsiniz.
  • Yönetilen Örnek Grupları ile ölçeklenebilirlik ve yüksek kullanılabilirlik: Bölgesel arka uç hizmetleri, arka uç olarak yönetilen örnek gruplarını destekler. Artık arka uç sanal makine örnekleriniz için bir şablon belirtebilir ve CPU kullanımı veya diğer izleme metriklerine göre otomatik ölçeklendirmeden yararlanabilirsiniz.

Yukarıdakilere ek olarak bağlantı odaklı protokol (TCP) için Bağlantı Boşaltma özelliğinden ve büyük dağıtımlar için daha hızlı programlama süresinden de yararlanabilirsiniz.

Codelab ağ topolojisi

Bu kılavuzda, mevcut bir ağ yük dengeleyicisini hedef havuz arka ucundan bölgesel arka uç hizmetine geçirmeye yönelik talimatlar yer almaktadır.

Bölgesel arka uç hizmetine geçmek, eski olmayan durum denetimleri (TCP, SSL, HTTP, HTTPS ve HTTP/2 için), yönetilen örnek grupları, bağlantı boşaltma ve yük devretme politikası gibi özelliklerden yararlanmanıza olanak tanır.

Bu kılavuzda, aşağıdaki örnek hedef havuz tabanlı ağ yük dengeleyicisini bunun yerine bölgesel bir arka uç hizmeti kullanacak şekilde dönüştürme adımları açıklanmaktadır

b2ac8a09e53e27f8.png

Önce: Hedef havuzla Ağ Yük Dengeleme

Bunun sonucunda, arka uç hizmeti tabanlı ağ yük dengeleyici dağıtımınız aşağıdaki gibi görünür.

f628fdad64c83af3.png

Sonra: Bölgesel arka uç hizmetiyle Ağ Yük Dengeleme

Bu örnekte, us-central-1a alt bölgesinde iki ve us-central-1c alt bölgesinde 2 örneği olan geleneksel bir hedef havuz tabanlı ağ yük dengeleyicinizin olduğu varsayılmıştır.

Bu tür bir geçiş için gerekli üst düzey adımlar şunlardır:

  1. Hedef havuz örneklerinizi örnek grupları halinde gruplandırın. Arka uç hizmetleri yalnızca yönetilen veya yönetilmeyen örnek gruplarıyla çalışır. Tek bir hedef havuza yerleştirilebilecek örnek sayısıyla ilgili herhangi bir sınırlama olmasa da örnek gruplarının maksimum boyuta sahip olduğunu unutmayın. Hedef havuzunuzdaki örnek sayısı bu maksimum değerden fazlaysa arka uçlarını birden fazla örnek grubuna bölmeniz gerekir. Mevcut dağıtımınız yedek bir hedef havuz içeriyorsa bu örnekler için ayrı bir örnek grubu oluşturun. Bu örnek grubu bir yük devretme grubu olarak yapılandırılacak.
  2. Bölgesel arka uç hizmeti oluşturun. Dağıtımınızda yedek hedef havuz varsa arka uç hizmetini oluştururken bir yük devretme oranı belirtmeniz gerekir. Bu oran, hedef havuz dağıtımı için daha önce yapılandırılan yük devretme oranıyla eşleşmelidir.
  3. Daha önce oluşturulmuş örnek gruplarını arka uç hizmetine ekleyin. Dağıtımınızda yedek hedef havuz varsa ilgili yük devretme örneği grubunu arka uç hizmetine eklerken ilgili yük devretme işaretiyle işaretleyin.
  4. Yeni arka uç hizmetine işaret eden bir iletim kuralı yapılandırın. Burada 2 seçeneğiniz vardır:
  • (Önerilir) Mevcut iletim kuralını arka uç hizmetine işaret edecek şekilde güncelleyin. VEYA
  • Arka uç hizmetine yönlendiren yeni bir yönlendirme oluşturun. Bunun için yük dengeleyicinin ön ucu için yeni bir IP adresi oluşturmanız gerekir. Ardından DNS ayarlarınızı değiştirerek eski hedef havuz tabanlı yük dengeleyicinin IP adresinden yeni IP adresine sorunsuz bir şekilde geçiş yapın.

Kendi hızınızda ortam kurulumu

  1. Cloud Console'da oturum açıp yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

Tüm Google Cloud projelerinde benzersiz bir ad olan proje kimliğini unutmayın (yukarıdaki ad zaten alınmış ve size uygun olmayacaktır!). Bu kod laboratuvarın ilerleyen bölümlerinde PROJECT_ID olarak adlandırılacaktır.

  1. Sonraki adımda, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir.

Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. "Temizleme" bölümündeki talimatları izlediğinizden emin olun. bölümünde, bu eğiticinin dışında faturalandırmayla karşılaşmamanız için kaynakları nasıl kapatacağınız konusunda tavsiyelerde bulunuyoruz. Yeni Google Cloud kullanıcıları, 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.

Cloud Shell'i başlatma

Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

GCP Console'da, sağ üstteki araç çubuğunda yer alan Cloud Shell simgesini tıklayın:

bce75f34b2c53987.png

Ortamı sağlamak ve bağlamak yalnızca birkaç dakika sürer. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:

f6ef2b5f13479f3a.png

İhtiyacınız olan tüm geliştirme araçlarını bu sanal makinede bulabilirsiniz. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu laboratuvardaki tüm çalışmalarınızı yalnızca bir tarayıcıyla yapabilirsiniz.

Cloud Shell'e giriş yapın ve proje kimliğinizi ayarlayın

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]

Perform setting your projectID:
projectid=YOUR-PROJECT-ID

echo $projectid

4. VPC ağı oluştur

VPC Ağı

Cloud Shell'den

gcloud compute networks create network-lb --subnet-mode custom

Alt Ağ Oluştur

Cloud Shell'den

gcloud compute networks subnets create network-lb-subnet \
        --network network-lb --range 10.0.0.0/24 --region us-central1

Güvenlik Duvarı Kuralları Oluşturma

Cloud Shell'den

gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag

Yönetilmeyen örnekler oluşturma

Her alt bölge için us-central1-a ve alt bölge başına 2 örnek oluşturun us-central1-c

Cloud Shell'den 1. örnek oluşturun

gcloud compute instances create www1 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-a \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart
echo '<!doctype html><html><body><h1>www1</h1></body></html>' | tee /var/www/html/index.html"

Cloud Shell'den 2. örnek oluşturun

gcloud compute instances create www2 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-a \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart 
echo '<!doctype html><html><body><h1>www2</h1></body></html>' | tee /var/www/html/index.html"

Cloud Shell'den örnek 3'ü oluşturun

gcloud compute instances create www3 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-c \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update 
sudo apt-get install apache2 -y 
sudo service apache2 restart 
echo '<!doctype html><html><body><h1>www3</h1></body></html>' | tee /var/www/html/index.html"

Cloud Shell'den 4. örnek oluşturun

gcloud compute instances create www4 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-c \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update 
sudo apt-get install apache2 -y 
sudo service apache2 restart
echo '<!doctype html><html><body><h1>www4</h1></body></html>' | tee /var/www/html/index.html"

Harici trafiğin bu sanal makine örneklerine ulaşmasına izin vermek için güvenlik duvarı kuralı oluşturun

Cloud Shell'den

gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag

Yük dengeleyiciniz için statik bir harici IP adresi oluşturma

Cloud Shell'den

gcloud compute addresses create network-lb-ip-1 \
    --region us-central1

Eski bir HTTP durum denetimi kaynağı ekleme

Cloud Shell'den

gcloud compute http-health-checks create basic-check

5. İletim kuralı ve hedef havuz oluştur

Hedef havuz oluşturma

gcloud compute target-pools create www-pool \
            --region us-central1 --http-health-check basic-check

Örneklerinizi hedef havuza ekleyin, us-central1-a

gcloud compute target-pools add-instances www-pool \
--instances www1,www2 \
--instances-zone us-central1-a

Örneklerinizi hedef havuza ekleyin, us-central1-c

gcloud compute target-pools add-instances www-pool \
--instances www3,www4 \
--instances-zone us-central1-c

İletim kuralı ekleme

gcloud compute forwarding-rules create www-rule \
--region us-central1 \
--ports 80 \
--address network-lb-ip-1 \
--target-pool www-pool

Hedef havuz işlevini doğrulayın

Yük Dengeleyiciler → Ön uçlar (www-rule) seçeneğini belirleyerek ön uç IP adresini belirleyin

Harici IP adresine erişmek ve dört hedef örneği arasında yük dengelemeyi gözlemlemek için iş istasyonu terminalinizdeki curl komutunu kullanın. Doğrulandıktan sonra terminali kapatın.

while true; do curl -m1 IP_ADDRESS; done

6. Ağ yük dengeleyicisini hedef havuzdan arka uç hizmetine taşıma

Arka uç hizmetiniz için birleştirilmiş durum denetimleri oluşturma

gcloud compute health-checks create tcp my-tcp-health-check --port 80 --region us-central1

Hedef havuzdaki mevcut örneklerden örnek grupları oluşturma

gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1a --zone=us-central1-a

gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1a --zone=us-central1-a --instances=www1,www2

Hedef havuzdaki mevcut örneklerden örnek grupları oluşturma

gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1c --zone=us-central1-c

gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1c --zone=us-central1-c --instances=www3,www4

Bir arka uç hizmeti oluşturma ve bunu yeni oluşturulan durum denetimleriyle ilişkilendirme

gcloud compute backend-services create my-backend-service --region us-central1 --health-checks my-tcp-health-check --health-checks-region us-central1 --load-balancing-scheme external

Arka uç hizmetinizi yapılandırma ve örnek gruplarını ekleme

gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1a --instance-group-zone us-central1-a --region us-central1

gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1c --instance-group-zone us-central1-c --region us-central1

Mevcut iletim kuralını arka uç hizmetlerini destekleyecek şekilde güncelleme

İletim kuralı olarak "www-rule"u not edin. ve ilişkili IP adresini girin:

Yük dengeleyici seçin → Ön uçlar

Ayrıca, her bir projede yer alan

Yük Dengeleyici'yi seçin → "www-pool"u seçin

Mevcut iletim kuralını güncelleyerek trafiği arka uç hizmetlerine yönlendirin

gcloud compute forwarding-rules set-target www-rule --region=us-central1 --backend-service my-backend-service --region us-central1

Yük dengeleyiciyi doğrulama: "www-pool" artık "www-rule" ön ucuyla yapılandırılmıyor (aşağıdaki ekran görüntüsüne bakın)

Yük Dengeleyici seçin → www-pool

9a393b3ca4e0942c.png

Ön uç iletim kuralının artık yük dengeleyici "my-backend-service" ile ilişkilendirildiğini doğrulayın

Yük dengeleyici seçin → Ön uçlar

Kural adı olarak "www-rule"a dikkat edin. IP adresi korunur ve yük dengeleyici "arka uç-hizmetim" şeklindedir artık kullanılıyor

Harici IP adresine erişmek ve yeni ilişkilendirilen arka uç hizmeti genelinde yük dengelemeyi gözlemlemek için iş istasyonu terminalinizdeki curl komutunu kullanın. Doğrulandıktan sonra terminali kapatın.

while true; do curl -m1 IP_ADDRESS; done

7. Temizleme Adımları

gcloud compute forwarding-rules delete www-rule --region=us-central1 --quiet
 
gcloud compute backend-services delete my-backend-service --region us-central1 --quiet
 
gcloud compute target-pools delete www-pool --region us-central1 --quiet
 
gcloud compute addresses delete network-lb-ip-1 --region us-central1 --quiet

gcloud compute firewall-rules delete www-firewall-network-lb --quiet
 
gcloud compute instances delete www4 --zone us-central1-c --quiet
 
gcloud compute instances delete www3 --zone us-central1-c --quiet
 
gcloud compute instances delete www2 --zone us-central1-a --quiet

gcloud compute instances delete www1 --zone us-central1-a --quiet
 
gcloud compute networks subnets delete network-lb-subnet --region us-central1 --quiet

gcloud compute networks delete network-lb --quiet

gcloud compute instance-groups unmanaged delete www-instance-group-central1a --zone us-central1-a --quiet

gcloud compute instance-groups unmanaged delete www-instance-group-central1c --zone us-central1-c --quiet

8. Tebrikler!

Codelab'i tamamladığınız için tebrikler.

İşlediklerimiz

  • Bölgesel arka uç hizmetlerinin avantajlarını anlama
  • Hedef havuzları olan bir ağ yük dengeleyici oluşturma
  • Hedef havuz doğrulaması gerçekleştirme
  • Yönetilmeyen örnek gruplarını kullanarak bölgesel arka uç hizmeti oluşturma
  • Hedef havuzdan arka uç hizmetine taşıma işlemi gerçekleştirme
  • Arka uç hizmetleri doğrulaması gerçekleştirme