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

1. Giriş

Bu kılavuzda, mevcut bir ağ yük dengeleyicinin hedef havuzu arka ucundan bölgesel arka uç hizmetine geçişiyle ilgili talimatlar verilmektedir.

Neler öğreneceksiniz?

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

Gerekenler

  • Yük dengeleyicilerle ilgili deneyim

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

Google Cloud müşterileri, Ağ Yük Dengeleme ile 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ışını kontrol etmesini kolaylaştırmak için kısa süre önce ağ yük dengeleme hizmetine arka uç hizmetleri desteği ekledik. Bu sayede müşterilerimiz, dağıtımlarında daha iyi ölçeklenebilirlik, hız, performans ve esneklik elde ederken tüm bunları kolayca yönetebilir.

Artık, önceki yaklaşım olan hedef havuzlarına kıyasla önemli bir gelişme olan ağ yük dengeleme ile arka uç hizmetlerini destekliyoruz. Arka uç hizmeti, yük dengeleyicilerimizin gelen trafiği ekli arka uçlara nasıl dağıttığını tanımlar ve yük dengeleyicinin nasıl davrandığı konusunda ayrıntılı kontrol sağlar.

3. Bölgesel arka uç hizmetlerinin avantajları

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

267db35a58145be.png

Bölgesel arka uç hizmetleri, kullanıma sunulduğu andan itibaren şunları sağlar:

  • Birleştirilmiş durum denetimi ile yüksek doğrulukta durum denetimi: Bölgesel arka uç hizmetleri sayesinde artık yük dengeleme durum denetimi özelliklerinden tam olarak yararlanabilir ve eski HTTP durum denetimlerinin kısıtlamalarından kurtulabilirsiniz. Uygunluk nedenleriyle, özel istek ve yanıt dizelerini veya HTTPS'yi destekleyen TCP durum denetimleri, ağ yük dengeleme müşterileri tarafından sıkça isteniyordu.
  • Yük devretme gruplarıyla daha iyi esneklik: Yük devretme gruplarıyla bir örnek grubunu birincil, diğerini ise ikincil olarak belirleyebilir ve etkin gruptaki örneklerin durumu belirli bir eşiğin altına düştüğünde trafiği yük devredebilirsiniz. Yük devretme mekanizması üzerinde daha fazla kontrol sahibi olmak için keepalived veya pacemaker gibi bir aracı kullanabilir ve arka uç örneğinin durum değişikliklerine göre sağlıklı veya başarısız bir durum denetimi gösterebilirsiniz.
  • Yönetilen örnek gruplarıyla ö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 belirleyebilir ve CPU kullanımına 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 yararlanabilirsiniz.

Codelab ağ topolojisi

Bu kılavuzda, mevcut bir ağ yük dengeleyicinin hedef havuzu arka ucundan bölgesel arka uç hizmetine geçişiyle ilgili talimatlar verilmektedir.

Bölgesel bir arka uç hizmetine geçerek 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 yararlanabilirsiniz.

Bu kılavuzda, aşağıdaki örnek hedef havuz tabanlı ağ yük dengeleyicinin bölgesel arka uç hizmeti kullanacak şekilde geçişi açıklanmaktadır.

b2ac8a09e53e27f8.png

Önce: Hedef havuzuyla ağ yük dengeleme

Sonuçta elde edilen 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 bölgesinde iki örnek ve us-central-1c bölgesinde iki örnek içeren geleneksel bir hedef havuz tabanlı ağ yük dengeleyiciniz olduğu varsayılmaktadır.

Bu tür bir geçiş için gereken genel 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 havuzuna yerleştirilebilecek örnek sayısıyla ilgili bir sınır olmasa da örnek gruplarının maksimum boyutu olduğunu unutmayın. Hedef havuzunuzda bu maksimum örnek sayısından fazla örnek varsa arka uçlarını birden fazla örnek grubuna bölmeniz gerekir. Mevcut dağıtımınızda yedek hedef havuzu varsa bu örnekler için ayrı bir örnek grubu oluşturun. Bu örnek grubu, yük devretme grubu olarak yapılandırılır.
  2. Bölgesel bir arka uç hizmeti oluşturun. Dağıtımınızda yedek hedef havuzu varsa arka uç hizmetini oluştururken yük devretme oranı belirtmeniz gerekir. Bu, hedef havuz dağıtımı için daha önce yapılandırılmış olan yük devretme oranıyla eşleşmelidir.
  3. Daha önce oluşturulan örnek gruplarını arka uç hizmetine ekleyin. Dağıtımınızda bir yedek hedef havuzu varsa ilgili yük devretme örnek grubunu arka uç hizmetine eklerken –failover işaretiyle işaretleyin.
  4. Yeni arka uç hizmetini işaret eden bir yönlendirme kuralı yapılandırın. Bu durumda 2 seçeneğiniz vardır:
  • (Önerilir) Mevcut yönlendirme kuralını arka uç hizmetine yönlendirecek şekilde güncelleyin. VEYA
  • Arka uç hizmetine yönlendiren yeni bir yönlendirme oluşturun. Bu işlem 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.

Yönlendirmesiz ortam kurulumu

  1. Cloud Console'da oturum açın ve 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

Proje kimliğini unutmayın. Bu kimlik, tüm Google Cloud projelerinde benzersiz bir addır (Yukarıdaki ad zaten alınmış olduğundan sizin için çalışmayacaktır). Bu codelab'in ilerleyen kısımlarında PROJECT_ID olarak adlandırılacaktır.

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

Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırma ücreti alınmaması için kaynakları nasıl kapatacağınız konusunda size tavsiyelerde bulunan "Temizleme" bölümündeki talimatları uyguladığınızdan emin olun. Google Cloud'un yeni kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.

Cloud Shell'i başlatma

Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak 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 Cloud Shell simgesini tıklayın:

bce75f34b2c53987.png

Ortamın temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır. İşlem tamamlandığında aşağıdakine benzer bir sonuç görürsünüz:

f6ef2b5f13479f3a.png

Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu laboratuvardaki çalışmalarınızın tamamını yalnızca bir tarayıcı kullanarak 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

Alt bölge başına 2 örnek oluşturun: us-central1-a ve us-central1-c

Cloud Shell'den 1. örneği 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. örneği 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 3. örneği 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. örneği 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 bir 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şturma

Hedef havuz oluşturma

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

Örneklerinizi us-central1-a hedef havuzuna ekleyin

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

Örneklerinizi us-central1-c hedef havuzuna ekleyin

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 havuzu işlevselliğini doğrulama

Yük dengeleyiciler → Ön uçlar (www-rule) seçeneğini belirleyerek ön uç IP adresini tanımlayın.

Harici IP adresine erişmek ve dört hedef örneği arasında yük dengeleme işlemini gözlemlemek için iş istasyonu terminalinizden curl komutunu kullanın. Doğrulama işlemi tamamlandıktan sonra terminali kapatın.

while true; do curl -m1 IP_ADDRESS; done

6. Ağ yük dengeleyiciyi hedef havuzdan arka uç hizmetine geçirme

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şturun ve bu hizmeti yeni oluşturulan durum denetimleriyle ilişkilendirin

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 yönlendirme kuralını arka uç hizmetlerini destekleyecek şekilde güncelleme

Aşağıdaki işlemleri yaparak "www-rule" iletim kuralı adını ve ilişkili IP adresini not edin:

Yük Dengeleyici → Ön Uçlar'ı seçin.

Ayrıca, dört hedef havuzu da belirtti.

Yük dengeleyiciyi seçin → "www-pool"u seçin

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

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

"www-pool" yük dengeleyicisinin artık "www-rule" ön ucuyla yapılandırılmadığını doğrulayın (aşağıdaki ekran görüntüsüne bakın).

Load Balancer → www-pool'u seçin

9a393b3ca4e0942c.png

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

Yük Dengeleyici → Ön Uçlar'ı seçin.

"www-rule" kural adını not edin. IP adresi korunur ve "my-backend-service" yük dengeleyici artık kullanılmaktadır.

Harici IP adresine erişmek ve yeni ilişkilendirilen arka uç hizmetinde yük dengeleme işlemini gözlemlemek için iş istasyonu terminalinizden curl komutunu kullanın. Doğrulama işlemi tamamlandı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 tebrik ederiz.

İşlediğimiz konular

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