GSP007
Genel Bakış
Bu uygulamalı laboratuvarda, Compute Engine sanal makinelerinde çalışan bir geçişli ağ yük dengeleyicisinin (NLB) nasıl oluşturulacağını öğreneceksiniz. 4. katman (L4) NLB; IP adresleri ve bağlantı noktası numaraları gibi ağ düzeyindeki bilgilere göre trafiği işler ve trafiğin içeriğini incelemez.
Google Cloud'da yük dengelemenin birkaç yöntemi vardır.
Bu laboratuvar, aşağıdaki yük dengeleyicileri oluşturma konusunda size yol gösterir:
Temel kavramları öğrenmenize yardımcı olacağından komutları kendi başınıza yazmanız önerilir. Birçok laboratuvarda gerekli komutları içeren bir kod bloğu bulunur. Kod bloğundaki komutları laboratuvar çalışmaları sırasında kolayca kopyalayıp uygun yerlere yapıştırabilirsiniz.
Hedefler
Bu laboratuvarda, aşağıdaki görevleri nasıl gerçekleştireceğinizi öğreneceksiniz:
- Kaynaklarınız için varsayılan bölgeyi ve alt bölgeyi yapılandırma
- Birden fazla web sunucusu örneği oluşturma
- Yük dengeleme hizmeti yapılandırma
- Trafiği dağıtmak için bir iletim kuralı yapılandırma
Kurulum ve şartlar
Laboratuvarı Başlat düğmesini tıklamadan önce
Buradaki talimatları okuyun. Laboratuvarlar süreli olduğundan duraklatılamaz. Start Lab'i (Laboratuvarı başlat) tıkladığınızda başlayan zamanlayıcı, Google Cloud kaynaklarının ne süreyle kullanımınıza açık durumda kalacağını gösterir.
Bu uygulamalı laboratuvarı kullanarak, laboratuvar etkinliklerini simülasyon veya demo ortamı yerine gerçek bir bulut ortamında gerçekleştirebilirsiniz. Bunu yapabilmeniz için size yeni, geçici kimlik bilgileri verilir. Bu kimlik bilgilerini laboratuvar süresince Google Cloud'da oturum açmak ve Google Cloud'a erişmek için kullanabilirsiniz.
Bu laboratuvarı tamamlamak için gerekenler:
- Standart bir internet tarayıcısına erişim (Chrome Tarayıcı önerilir)
Not: Bu laboratuvarı çalıştırmak için tarayıcıyı gizli modda (önerilen) veya gizli tarama penceresinde açın. Aksi takdirde, kişisel hesabınızla öğrenci hesabınız arasında oluşabilecek çakışmalar nedeniyle kişisel hesabınızdan ek ücret alınabilir.
- Laboratuvarı tamamlamak için yeterli süre (Laboratuvarlar başlatıldıktan sonra duraklatılamaz.)
Not: Bu laboratuvar için yalnızca öğrenci hesabını kullanın. Farklı bir Google Cloud hesabı kullanırsanız bu hesaptan ödeme alınabilir.
Laboratuvarınızı başlatma ve Google Cloud konsolunda oturum açma
-
Start Lab (Laboratuvarı Başlat) düğmesini tıklayın. Laboratuvar için ödeme yapmanız gerekiyorsa ödeme yöntemini seçebileceğiniz bir iletişim kutusu açılır.
Sağdaki Lab setup and access (Laboratuvar kurulumu ve erişimi) panelinde şunlar yer alır:
-
Open Google Cloud console (Google Cloud konsolunu aç) düğmesi
- Bu laboratuvarda kullanmanız gereken geçici kimlik bilgileri (kullanıcı adı ve şifre)
- Bu laboratuvarda ilerlemek için gerekebilecek diğer bilgiler
Laboratuvar zamanlayıcısının sayfanın üst kısmına yakın bir yerde bulunduğunu ve kalan süreyi gösterdiğini unutmayın.
-
Open Google Cloud console'u (Google Cloud konsolunu aç) tıklayın (veya Chrome Tarayıcı'yı kullanıyorsanız sağ tıklayıp Bağlantıyı gizli pencerede aç'ı seçin).
Laboratuvar, kaynakları çalıştırır ve sonra "Oturum açın" sayfasını gösteren başka bir sekme açar.
İpucu: Sekmeleri ayrı pencerelerde, yan yana açın.
Not: Bir hesap seçin iletişim kutusunu görürseniz Başka bir hesap kullan'ı tıklayın.
-
Gerekirse aşağıdaki kullanıcı adını kopyalayıp Oturum açın iletişim kutusuna yapıştırın.
{{{user_0.username | "Username"}}}
Kullanıcı adını Lab setup and access (Laboratuvar kurulumu ve erişimi) panelinde de bulabilirsiniz.
-
Next'i (Sonraki) tıklayın.
-
Aşağıdaki şifreyi kopyalayıp Welcome (Hoş geldiniz) iletişim kutusuna yapıştırın.
{{{user_0.password | "Password"}}}
Şifreyi Lab setup and access (Laboratuvar kurulumu ve erişimi) panelinde de bulabilirsiniz.
-
Next'i (Sonraki) tıklayın.
Önemli: Laboratuvarın sizinle paylaştığı giriş bilgilerini kullanmanız gerekir. Google Cloud hesabınızın kimlik bilgilerini kullanmayın.
Not: Bu laboratuvarda kendi Google Cloud hesabınızı kullanabilmek için ek ücret ödemeniz gerekebilir.
-
Sonraki sayfalarda ilgili düğmeleri tıklayarak ilerleyin:
- Hüküm ve koşulları kabul edin.
- Geçici bir hesap kullandığınızdan, kurtarma seçenekleri veya iki faktörlü kimlik doğrulama eklemeyin.
- Ücretsiz denemelere kaydolmayın.
Birkaç saniye sonra Google Cloud konsolu bu sekmede açılır.
Not: Google Cloud ürün ve hizmetlerine erişmek için gezinme menüsünü tıklayın veya Search (Arama) alanına hizmetin veya ürünün adını yazın.
Cloud Shell'i etkinleştirme
Cloud Shell, çok sayıda geliştirme aracı içeren bir sanal makinedir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Cloud Shell, Google Cloud kaynaklarınıza komut satırı erişimi sağlar.
-
Google Cloud konsolunun üst kısmından Activate Cloud Shell (Cloud Shell'i etkinleştir)
simgesini tıklayın.
-
Aşağıdaki pencereleri tıklayın:
- Cloud Shell bilgi penceresinde devam edin.
- Google Cloud API çağrıları yapmak için Cloud Shell'e kimlik bilgilerinizi kullanma yetkisi verin.
Bağlandığınızda kimliğiniz zaten doğrulanmıştır. Proje ise Project_ID'nize () göre ayarlanmıştır. Çıkış, bu oturum için Project_ID'yi tanımlayan bir satır içerir:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud, Google Cloud'un komut satırı aracıdır. Cloud Shell'e önceden yüklenmiştir ve sekmeyle tamamlamayı destekler.
- (İsteğe bağlı) Etkin hesap adını şu komutla listeleyebilirsiniz:
gcloud auth list
-
Authorize'ı (Yetkilendir) tıklayın.
Çıkış:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (İsteğe bağlı) Proje kimliğini şu komutla listeleyebilirsiniz:
gcloud config list project
Çıkış:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Not: gcloud ile ilgili tüm belgeleri, Google Cloud'daki gcloud CLI'a genel bakış rehberinde bulabilirsiniz.
1. görev: Tüm kaynaklar için varsayılan bölge ve alt bölgeyi ayarlama
-
Varsayılan bölgeyi ayarlayın:
gcloud config set compute/region {{{project_0.default_region | Region}}}
-
gcloud config set compute/region {{{project_0.default_region | Region}}}
gcloud config set compute/zone {{{project_0.default_zone | Zone}}}
Cloud Shell'de varsayılan alt bölgeyi ayarlayın:
Bölge ve alt bölge seçme hakkında daha fazla bilgiye Compute Engine'in Bölgeler ve alt bölgeler belgesinden ulaşabilirsiniz.https://cloud.google.com/compute/docs/zones
2. görev: Birden fazla web sunucusu örneği oluşturma
Bu yük dengeleme senaryosu için üç Compute Engine sanal makine örneği oluşturup bu örneklere Apache'yi yükleyeceksiniz. Ardından, HTTP trafiğinin örneklere ulaşmasına izin veren bir güvenlik duvarı kuralı ekleyeceksiniz.
Burada sunulan kod, alt bölgeyi olarak ayarlar.
tags alanını ayarlamak, bu örneklerin tümüne aynı anda başvurmanıza (ör. bir güvenlik duvarı kuralıyla) olanak tanır.
Bu komutlar ayrıca tüm örneklere Apache'yi yükler ve her örnek için benzersiz bir ana sayfa sağlar.
gcloud compute instances create www1 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "
" | tee /var/www/html/index.html'
Aşağıdaki kodu kullanarak varsayılan alt bölgenizde bir sanal makine (www1) oluşturun:
gcloud compute instances create www1 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "
gcloud compute instances create www2 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "
Web Server: www1
" | tee /var/www/html/index.html'
" | tee /var/www/html/index.html'
gcloud compute instances create www3 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "
Aşağıdaki kodu kullanarak varsayılan alt bölgenizde bir sanal makine (www2) oluşturun:
" | tee /var/www/html/index.html'
gcloud compute instances create www2 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "Web Server: www2
gcloud compute firewall-rules create www-firewall-network-lb \
--target-tags network-lb-tag --allow tcp:80
" | tee /var/www/html/index.html'
Varsayılan alt bölgenizde bir sanal makine (
www3) oluşturun.
gcloud compute instances create www3 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "Web Server: www3
gcloud compute instances list
" | tee /var/www/html/index.html'
curl http://[IP_ADDRESS]
Harici trafiğin sanal makine örneklerine ulaşmasına izin vermek için bir güvenlik duvarı kuralı oluşturun:
gcloud compute firewall-rules create www-firewall-network-lb \
--target-tags network-lb-tag --allow tcp:80
Şimdi örneklerinizin harici IP adreslerini almanız ve bu örneklerin çalıştıklarını doğrulamanız gerekiyor.
Örneklerinizi listelemek için aşağıdaki komutu çalıştırın. Örneklerin IP adreslerini EXTERNAL_IP sütununda görebilirsiniz:
gcloud compute instances list
gcloud compute addresses create network-lb-ip-1 \
--region {{{project_0.default_region | Region}}}
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1].
curl komutunu kullanarak örneklerin çalıştığını birer birer doğrulayın. [IP_ADDRESS] yerine her sanal makinenizin harici IP adresini yazın:
curl http://[IP_ADDRESS]
gcloud compute http-health-checks create basic-check
Bir grup web sunucusu oluşturduğunuzu doğrulamak için Check my progress'i (İlerleme durumumu kontrol et) tıklayın.
Birden fazla web sunucusu örneği oluşturma
3. görev: Yük dengeleme hizmetini yapılandırma
Yük dengeleme hizmetini yapılandırdığınızda sanal makine örnekleriniz, yapılandırdığınız statik harici IP adresine gelen paketleri alır.
Compute Engine görüntüsüyle oluşturulan örnekler bu IP adresini işleyecek şekilde otomatik olarak yapılandırılır.
Not:
Ağ yük dengeleme hizmetini ayarlama hakkında daha fazla bilgiye Arka uç hizmeti tabanlı harici geçiş ağ yük dengeleyicisine genel bakış rehberinden ulaşabilirsiniz.
- https://cloud.google.com/compute/docs/load-balancing/network/
gcloud compute target-pools create www-pool \
--region {{{project_0.default_region | Region}}} --http-health-check basic-check
- Yük dengeleyiciniz için statik bir harici IP adresi oluşturun:
gcloud compute addresses create network-lb-ip-1 \
--region {{{project_0.default_region | Region}}}
gcloud compute target-pools add-instances www-pool \
--instances www1,www2,www3
Çıkış:
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1].
Eski bir HTTP durum denetimi kaynağı ekleyin:-
gcloud compute http-health-checks create basic-check
Web sunucularını hedefleyen bir L4 ağ yük dengeleyicisi oluşturduğunuzu doğrulamak için Check my progress'i (İlerleme durumumu kontrol et) tıklayın.
Yük dengeleme hizmetini yapılandırma
gcloud compute forwarding-rules create www-rule \
--region {{{project_0.default_region | Region}}} \
--ports 80 \
--address network-lb-ip-1 \
--target-pool www-pool
4. görev: Hedef havuzu ve iletim kuralını oluşturmaHedef havuz, harici geçişli NLB'lerden gelen trafiği alan bir arka uç örnekleri grubudur. Bir hedef havuzun tüm arka uç örnekleri aynı Google Cloud bölgesinde bulunmalıdır.
- Hedef havuzu oluşturmak ve hizmetin çalışması için gerekli olan durum denetimini kullanmak amacıyla aşağıdaki komutu çalıştırın:
gcloud compute target-pools create www-pool \
--region {{{project_0.default_region | Region}}} --http-health-check basic-check
gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}}
-
Daha önce oluşturduğunuz örnekleri havuza ekleyin:
IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}} --format="json" | jq -r .IPAddress)
-
gcloud compute target-pools add-instances www-pool \
--instances www1,www2,www3
echo $IPADDRESS
Ardından iletim kuralını oluşturursunuz. İletim kuralı, ağ trafiğinin yük dengeleyicinin arka uç hizmetlerine nasıl yönlendirileceğini belirtir.https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts
while true; do curl -m1 $IPADDRESS; done
İletim kuralı ekleyin:
gcloud compute forwarding-rules create www-rule \
--region {{{project_0.default_region | Region}}} \
--ports 80 \
--address network-lb-ip-1 \
--target-pool www-pool
Hedef havuzu ve iletimi kuralını oluşturduğunuzu doğrulamak için Check my progress'i (İlerleme durumumu kontrol et) tıklayın.
Hedef havuzu ve iletim kuralını oluşturma
5. görev: Örneklerinize trafik gönderme
Yük dengeleme hizmetini yapılandırdığınıza göre, iletim kuralına trafik göndermeye başlayabilir ve trafiğin farklı örneklere nasıl dağıtıldığını izleyebilirsiniz.