1. Giriş
Bu kılavuzda, mevcut bir ağ yük dengeleyiciyi hedef havuz arka ucundan bölgesel arka uç hizmetine geçirmeyle ilgili talimatlar verilmektedir.
Neler öğreneceksiniz?
- Bölgesel arka uç hizmetlerinin avantajlarını anlama
- Hedef havuzlarla ağ yük dengeleyici oluşturma
- Hedef havuz doğrulaması yapma
- Yönetilmeyen örnek gruplarını kullanarak bölgesel arka uç hizmeti oluşturma
- Hedef havuzu arka uç hizmetine taşıma
- Arka uç hizmetlerini doğrulama
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 nasıl davrandığını kontrol etmesini kolaylaştırmak için kısa süre önce Ağ Yük Dengelemesi'ne arka uç hizmetleri desteği ekledik. Bu sayede müşterilerimizin dağıtımlarında ölçek, hız, performans ve esneklik artışı elde etmelerini sağlıyoruz. Üstelik tüm bunları kolayca yönetebilecekleri bir şekilde sunuyoruz.
Artık arka uç hizmetlerini ağ yük dengelemeyle destekliyoruz. Bu, önceki yaklaşım olan hedef havuzlarına kıyasla önemli bir geliştirmedir. Arka uç hizmeti, yük dengeleyicilerimizin gelen trafiği bağlı arka uçlara nasıl dağıttığını tanımlar ve yük dengeleyicinin nasıl davrandığıyla ilgili 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 birçok avantaj sağlar.
Bölgesel arka uç hizmetleri, kullanıma hazır olarak ş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. Uyumluluk nedeniyle, özel istek ve yanıt dizeleri veya HTTPS desteğine sahip TCP durum denetimleri, Ağ Yük Dengelemesi müşterileri tarafından sıklıkla istenen bir özellikti.
- Yük devretme gruplarıyla daha iyi esneklik: Yük devretme gruplarıyla bir örnek grubunu birincil, diğerini ikincil olarak belirleyebilir 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 denetime sahip 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ı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 de yararlanabilirsiniz.
Codelab ağ topolojisi
Bu kılavuzda, mevcut bir ağ yük dengeleyiciyi hedef havuz arka ucundan bölgesel arka uç hizmetine geçirmeyle ilgili talimatlar verilmektedir.
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 dengeleyiciyi bölgesel arka uç hizmeti kullanmaya geçirmek için yapmanız gerekenler açıklanmaktadır.
Önce: Hedef havuz içeren 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.
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 gereken genel adımlar şunlardır:
- Hedef havuz örneklerini ö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 bir sınırlama 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ız yedek hedef havuzu içeriyorsa bu örnekler için ayrı bir örnek grubu oluşturun. Bu örnek grubu, yük devretme grubu olarak yapılandırılır.
- Bölgesel bir arka uç hizmeti oluşturun. Dağıtımınızda yedek hedef havuzu varsa arka uç hizmetini oluştururken bir yedekleme 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.
- Daha önce oluşturulmuş örnek gruplarını arka uç hizmetine ekleyin. Dağıtımınızda yedek hedef havuzu varsa ilgili yedekleme örneği grubunu arka uç hizmetine eklerken –failover işaretiyle işaretleyin.
- Yeni arka uç hizmetine işaret eden bir iletim kuralı yapılandırın. Bunun için 2 seçeneğiniz vardır:
- (Önerilir) Mevcut yönlendirme kuralını arka uç hizmetine işaret edecek şekilde güncelleyin. VEYA
- Arka uç hizmetini işaret eden yeni bir yönlendirme oluşturun. Bunun için yük dengeleyicinin ön uç için yeni bir IP adresi oluşturmanız gerekir. Ardından, DNS ayarlarınızı eski hedef havuz tabanlı yük dengeleyicinin IP adresinden yeni IP adresine sorunsuz bir şekilde geçiş yapacak şekilde değiştirin.
Kendine ait tempoda ortam oluşturma
- 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.
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, bu kod laboratuvarının ilerleyen bölümlerinde PROJECT_ID
olarak anılacaktır.
- Sonraki adımda, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir.
Bu codelab'i çalıştırmak çok pahalı olmayacaktır. Bu eğiticinin dışında faturalandırılmamak için "Temizleme" bölümündeki kaynakları nasıl kapatacağınıza dair talimatları uygulayın. Google Cloud'un yeni kullanıcıları 300 ABD doları değerindeki ücretsiz deneme programına uygundur.
Cloud Shell'i başlatma
Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir olsa da bu kod laboratuvarında bulutta ç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:
Ortam sağlanıp bağlantı kurulabilmesi için birkaç saniye beklemeniz gerekir. İşlem tamamlandığında aşağıdakine benzer bir ekran görürsünüz:
Bu sanal makinede ihtiyaç duyacağınız tüm geliştirme araçları yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansını ve kimlik doğrulamayı büyük ölçüde iyileştirir. Bu laboratuvardaki tüm çalışmalarınızı 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, us-central1-a ve us-central1-c başına 2 örnek oluşturma
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 ö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. ö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"
Bu sanal makine örneklerine harici trafiğe 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şturun
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 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 havuz işlevini doğrulama
Yük Dengeleyiciler → Ön Uçlar (www-rule)'ı seçerek ö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
Arka uç hizmeti oluşturun ve 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ğıdakileri yaparak "www-rule" iletim kuralı adını ve ilişkili IP adresini not edin:
Yük Dengeleyici → Ön Uçlar'ı seçin
Ayrıca, her bir projede yer alan
Yük Dengeleyici'yi seçin → "www-pool"u seçin
Mevcut yönlendirme 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 ucu ile yapılandırılmadığını doğrulayın (aşağıdaki ekran görüntüsüne bakın)
Yük Dengeleyici → www-pool'u seçin
Ön uç yönlendirme kuralının artık "arka-ucum-hizmeti" yük dengeleyiciyle ilişkili olduğunu doğrulama
Yük dengeleyici seçin → Ön uçlar
"www-rule" kural adının IP adresinin korunduğunu ve "my-backend-service" yük dengeleyicisinin artık kullanıldığını unutmayın
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 havuzlarla ağ yük dengeleyici oluşturma
- Hedef havuz doğrulaması yapma
- Yönetilmeyen örnek gruplarını kullanarak bölgesel arka uç hizmeti oluşturma
- Hedef havuzu arka uç hizmetine taşıma
- Arka uç hizmetlerini doğrulama