1. Giriş
Gelişmiş Trafik Yönetimi (Envoy) ile Harici HTTPs LB'ye hoş geldiniz!
HTTP(S) Harici Yük Dengeleyici'nin Gelişmiş Trafik Yönetimi içeren en son sürümü, mevcut Klasik Küresel Harici HTTP(S) Yük Dengeleyicimizin tüm özelliklerini içerir ancak Gelişmiş Trafik Yönetimi özelliklerinin gittikçe büyüyen bir listesine sahiptir. Bu özelliklerden bazıları yük dengeleyicilerimiz için yeni, bazıları da mevcut özelliklere gelişmiş özellikler sağlar. Bu özelliklerin kısmi bir listesi şunlardır:
- Ağırlıklı Trafiği Bölme
- Yansıtma İsteğinde Bulunun
- Aksesuar Algılama
- Yeniden Deneme İsteğinde Bulunun
- Hata Ekleme
- Ek Arka Uç Oturumu Yakın İlgi Alanı seçenekleri
- Ek Üstbilgi Dönüştürme seçenekleri
- Kaynaklar Arası Kaynak Paylaşımı (CORS)
- Yeni Yük Dengeleme Algoritmaları
Neler öğreneceksiniz?
- Yönetilen örnek grubu oluşturma, ilişkili VPC ve güvenlik duvarı kuralları
- Yeni yük dengeleyicinin gelişmiş trafik yönetimi özelliklerini kullanma
- Gelişmiş trafik yönetimi özelliklerinin beklendiği gibi çalıştığını doğrulama.
Gerekenler
- Temel Ağ İletişimi ve HTTP bilgisi
- Temel Unix/Linux komut satırı bilgisi
Codelab topolojisi ve kullanım alanı
Şekil 1 - HTTP Yük Dengeleyici Yönlendirme Topolojisi
Bu kod laboratuvarı sırasında biri Doğu, Batı ve Merkezi olmak üzere üç yönetilen örnek grubu kuracaksınız. Global bir harici https yük dengeleyici oluşturacaksınız. Yük dengeleyici, envoy tabanlı yük dengeleyicinin desteklediği gelişmiş özellikler listesindeki çeşitli özellikleri kullanır. Dağıtımdan sonra yük simülasyonu oluşturur ve ayarladığınız yapılandırmaların düzgün şekilde çalıştığını doğrularsınız.
2. Kurulum ve Gereksinimler
Kendi hızınızda ortam kurulumu
- Google 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.
- Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir ve bunu istediğiniz zaman güncelleyebilirsiniz.
- Proje Kimliği, tüm Google Cloud projelerinde benzersiz olmalıdır ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de, Proje Kimliğine referans vermeniz gerekir (ve bu kimlik genellikle
PROJECT_ID
olarak tanımlanır). Beğenmezseniz başka bir rastgele kod oluşturun ya da kendi proje kimliğinizi deneyip mevcut olup olmadığına bakın. Sıcaklık "soğudu" takip etmeniz gerekir. - Bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırmayla karşılaşmamak için kaynakları kapatmak istiyorsanız tüm "temizleme" işlemlerini uygulayın buradaki talimatları uygulayın. 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:
Ortamı sağlamak ve bağlamak yalnızca birkaç dakika sürer. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:
İ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.
Başlamadan önce
Cloud Shell'de proje kimliğinizin ayarlandığından emin olun
gcloud yapılandırma listesi projesi
gcloud yapılandırma seti projesi [PROJE-ADINIZ]
PROJECT_ID=[YOUR-PROJECT-NAME]
yankı $PROJECT_ID
API'leri etkinleştirme
Gerekli tüm hizmetleri etkinleştirin
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com
3. VPC ağını oluşturma
VPC ağı oluşturma
Cloud Shell'den
gcloud compute networks create httplbs --subnet-mode=auto
Çıkış
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/httplbs]. NAME: httplbs SUBNET_MODE: AUTO BGP_ROUTING_MODE: REGIONAL IPV4_RANGE: GATEWAY_IPV4:
VPC güvenlik duvarı kuralları oluşturma
VPC'yi oluşturduktan sonra güvenlik duvarı kuralları oluşturacaksınız. Güvenlik duvarı kuralı, tüm IP'lerin http trafiği için test uygulamasının web sitesinin 80 numaralı bağlantı noktasındaki harici IP'sine erişmesine izin vermek amacıyla kullanılır.
Cloud Shell'den
gcloud compute firewall-rules create httplb-allow-http-rule \ --allow tcp:80 \ --network httplbs \ --source-ranges 0.0.0.0/0 \ --priority 700
Çıkış
Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/httplb-allow-http-rule]. Creating firewall...done. NAME: httplb-allow-http-rule NETWORK: httplbs DIRECTION: INGRESS PRIORITY: 700 ALLOW: tcp:80 DENY: DISABLED: False
4. Yönetilen Örnek Gruplarını Ayarlama
HTTP yük dengeleyici tarafından kullanılan arka uç kaynaklarına yönelik kalıpları içeren yönetilen örnek grupları oluşturmanız gerekir. İlk olarak, her bölge için oluşturulacak sanal makinelerin yapılandırmasını tanımlayan Örnek Şablonları oluşturacağız. Daha sonra her bölgedeki bir arka uç için örnek şablonuna referans veren bir yönetilen örnek grubu oluşturacağız.
Yönetilen örnek grupları, alt bölgesel veya bölgesel olabilir. Bu laboratuvar alıştırması için biri us-east1, diğeri us-west1 ve us-central1'de olmak üzere üç adet bölgesel yönetilen örnek grubu oluşturacağız.
Bu bölümde, örnek oluşturulduğunda referans verilen, önceden oluşturulmuş bir başlangıç komut dosyası görebilirsiniz. Bu başlangıç komut dosyası, bir web uygulamasını simüle etmek için kullanacağımız web sunucusu özelliklerini yükler ve etkinleştirir. Bu komut dosyasını inceleyebilirsiniz.
Doğu, Batı ve Merkezi Örnek Şablonları Oluşturma
İlk adım, us-east-1 örnek şablonunu oluşturmaktır.
Cloud Shell'den
gcloud compute instance-templates create us-east1-template \ --region=us-east1 \ --network=httplbs \ --tags=http-server, \ --image-family=debian-9 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Çıkış
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-east1-template]. NAME: us-east1-template MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: CREATION_TIMESTAMP: 2021-11-11T11:02:37.511-08:00
Sonraki adım, us-west-1 örnek şablonunu oluşturmaktır.
Cloud Shell'den
gcloud compute instance-templates create us-west1-template \ --region=us-west1 \ --network=httplbs \ --tags=http-server, \ --image-family=debian-9 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Çıkış
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-west1-template]. NAME: us-west1-template MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: CREATION_TIMESTAMP: 2021-11-11T11:03:08.577-08:00
Sonraki adım, us-central-1 örnek şablonunu oluşturmaktır.
Cloud Shell'den
gcloud compute instance-templates create us-central1-template \ --region=us-central1 \ --network=httplbs \ --tags=http-server, \ --image-family=debian-9 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Çıkış
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-central1-template]. NAME: us-central1-template MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: CREATION_TIMESTAMP: 2021-11-11T11:03:44.179-08:00
Artık aşağıdaki gcloud komutuyla örnek şablonlarımızın başarıyla oluşturulduğunu doğrulayabilirsiniz:
Cloud Shell'den
gcloud compute instance-templates list
Çıkış
NAME MACHINE_TYPE PREEMPTIBLE CREATION_TIMESTAMP us-central1-template n1-standard-1 2021-11-09T09:25:37.263-08:00 us-east1-template n1-standard-1 2021-11-09T09:24:35.275-08:00 us-west1-template n1-standard-1 2021-11-09T09:25:08.016-08:00
Doğu, Batı ve Merkezi Yönetilen Örnek Gruplarını oluşturma
Şimdi, daha önce oluşturduğumuz örnek şablonlarından bir yönetilen örnek grubu oluşturmamız gerekiyor.
Cloud Shell'den
gcloud compute instance-groups managed create us-east1-mig \ --base-instance-name=us-east1-mig \ --size=1 \ --template=us-east1-template \ --zone=us-east1-b
Çıkış
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-east1-b/instanceGroupManagers/us-east1-mig]. NAME: us-east1-mig LOCATION: us-east1-b SCOPE: zone BASE_INSTANCE_NAME: us-east1-mig SIZE: 0 TARGET_SIZE: 1 INSTANCE_TEMPLATE: us-east1-template AUTOSCALED: no
Cloud Shell'den
gcloud compute instance-groups managed create us-west1-mig \ --base-instance-name=us-west1-mig \ --size=1 \ --template=us-west1-template \ --zone=us-west1-a
Çıkış
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroupManagers/us-west1-mig]. NAME: us-west1-mig LOCATION: us-west1-a SCOPE: zone BASE_INSTANCE_NAME: us-west1-mig SIZE: 0 TARGET_SIZE: 1 INSTANCE_TEMPLATE: us-west1-template AUTOSCALED: no
Cloud Shell'den
gcloud compute instance-groups managed create us-central1-mig \ --base-instance-name=us-central1-mig \ --size=1 \ --template=us-central1-template \ --zone=us-central1-a
Çıkış
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-central1-a/instanceGroupManagers/us-central1-mig]. NAME: us-central1-mig LOCATION: us-central1-a SCOPE: zone BASE_INSTANCE_NAME: us-central1-mig SIZE: 0 TARGET_SIZE: 1 INSTANCE_TEMPLATE: us-central1-template AUTOSCALED: no
Örnek gruplarımızın başarıyla oluşturulduğunu aşağıdaki gcloud komutuyla doğrulayabiliriz:
Cloud Shell'den
gcloud compute instance-groups list
Çıkış
NAME LOCATION SCOPE NETWORK MANAGED INSTANCES us-central1-mig us-central1 zone httplbs Yes 1 us-west1-mig us-west1 zone httplbs Yes 1 us-east1-mig us-east1 zone httplbs Yes 1
Web Sunucusu İşlevselliğini Doğrulama
Her örnek, aşağıdakileri oluşturan basit bir PHP komut dosyasına sahip bir Apache web sunucusu çalıştıracak şekilde yapılandırılır:
Web sunucularınızın düzgün çalıştığından emin olmak için Compute Engine'e gidin -> Sanal makine örnekleri Yeni örneklerinizin (ör. us-east1-mig-xxx), örnek grubu tanımlarına göre oluşturulduğundan emin olun.
Şimdi, web sunucusunun çalıştığından emin olmak için tarayıcınızda bir web isteğinde bulunun (bu işlemin başlatılması bir dakika sürebilir). Compute Engine altındaki sanal makine örnekleri sayfasında, örnek grubunuz tarafından oluşturulan bir örneği seçin ve harici (herkese açık) IP'sini tıklayın.
Alternatif olarak, tarayıcınızda http://<IP_Address> adresine gidin.
5. Yük Dengeleyiciyi kurma
Durum Denetimi Oluştur
Öncelikle, hizmetlerimizin sorunsuz bir şekilde çalıştığından emin olmak için temel bir durum denetimi oluşturmamız gerekir. Temel bir durum denetimi oluşturacağız. Çok daha fazla gelişmiş özelleştirme mevcut.
Cloud Shell'den
gcloud compute health-checks create http http-basic-check \ --port 80
Harici IP Adresini Ayırt
Bu adım için daha sonra Yük Dengeleyici'ye eklenecek olan genel olarak kullanılabilir statik bir IP adresi ayırmanız gerekir.
Cloud Shell'den
gcloud compute addresses create lb-ipv4-2 \ --ip-version=IPV4 \ --global
Ayrılmış IP adresini not ettiğinizden emin olun.
gcloud compute addresses describe lb-ipv4-2 \ --format="get(address)" \ --global
Arka Uç Hizmetleri Oluşturma
Şimdi daha önce oluşturduğumuz yönetilen örnek gruplarının her biri için birer arka uç hizmeti oluşturmamız gerekiyor. Biri Doğu, Batı ve Orta için.
Doğu tarafından yönetilen örnek grubu için arka uç hizmeti oluşturuluyor.
Cloud Shell'den
gcloud beta compute backend-services create east-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
Batı tarafından yönetilen örnek grubu için arka uç hizmeti oluşturuluyor.
Cloud Shell'den
gcloud beta compute backend-services create west-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
Central yönetilen örnek grubu için arka uç hizmeti oluşturuluyor.
Cloud Shell'den
gcloud beta compute backend-services create central-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
Arka Uç Hizmetlerine MIG ekleme
Her uygulama kümesi için ilgili arka uç hizmetlerini oluşturduğumuza göre şimdi daha önce oluşturduğumuz Yönetilen Örnek Gruplarını her arka uç hizmetine eklememiz gerekiyor.
Arka uç hizmetine East MIG'yi ekleyin.
Cloud Shell'den
gcloud beta compute backend-services add-backend east-backend-service \ --balancing-mode='UTILIZATION' \ --instance-group=us-east1-mig \ --instance-group-zone=us-east1-b \ --global
Arka uç hizmetine West MIG'yi ekleyin.
Cloud Shell'den
gcloud beta compute backend-services add-backend west-backend-service \ --balancing-mode='UTILIZATION' \ --instance-group=us-west1-mig \ --instance-group-zone=us-west1-a \ --global
Arka uç hizmetine West MIG'yi ekleyin.
Cloud Shell'den
gcloud beta compute backend-services add-backend central-backend-service \ --balancing-mode='UTILIZATION' \ --instance-group=us-central1-mig \ --instance-group-zone=us-central1-a \ --global
URL Eşlemesi Oluştur
URL eşlemesi, bu laboratuvarda kullanılan gelişmiş trafik yönetimi özelliklerinin yayınlanacağı yerdir. Yapılandırmayı içeren bir .yaml dosyası oluşturmamız gerekir. .yaml dosyası için /roundrobbin işlevinde bir önek eşleşmesi oluşturduk. Bu nedenle, bu yapılandırmalardan yalnızca /roundrobbin eşleştirmesi etkilenecek. Trafiğin% 50'sinin doğu-arka uç hizmetine, %50'sinin ise batı-arka uç hizmetine gitmesi gerektiğini belirttik. Ayrıca, tüm yanıtlarda yer alacak bir yanıt başlığı değeri:{test} ekledik. Son olarak, tüm trafiğin merkezi arka uç hizmetine yansıtılması gerektiğini ekledik. Trafik yinelenir ve yalnızca test amacıyla buraya gönderilir.
Örneği makinenize bir .yaml dosyası olarak kaydedin.
defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service kind: compute #urlMap name: web-map-http hostRules: - hosts: - '*' pathMatcher: matcher1 pathMatchers: - defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service name: matcher1 routeRules: - matchRules: - prefixMatch: /roundrobbin priority: 2 headerAction: responseHeadersToAdd: - headerName: test headerValue: value replace: True routeAction: weightedBackendServices: - backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service weight: 50 - backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/west-backend-service weight: 50 retryPolicy: retryConditions: ['502', '504'] numRetries: 3 perTryTimeout: seconds: 1 nanos: 50 requestMirrorPolicy: backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/central-backend-service
Dokümanı makinenizden içe aktaran URL Eşleme'yi oluşturun. Kaynak yolunun, .yaml dosyasını kaydettiğiniz yere bağlı olarak farklı olacağını unutmayın.
Cloud Shell'den
gcloud beta compute url-maps import web-map-http \ --source /Users/[USERNAME]/Documents/Codelab/lbconfig.yaml \ --global
HTTP Ön Ucu oluşturma
Yük dengeleyici oluşturmanın son adımı ön uç oluşturmaktır. Bu işlem, daha önce ayırdığınız IP adresini, oluşturduğunuz yük dengeleyici URL eşlemesiyle eşler.
Cloud Shell'den
gcloud beta compute target-http-proxies create http-lb-proxy-adv \ --url-map=web-map-http
Ardından, daha önce ayrılan IP adresini HTTP proxy ile eşleyecek bir genel iletim kuralı oluşturmanız gerekir.
Cloud Shell'den
gcloud beta compute forwarding-rules create http-content-rule \ --load-balancing-scheme EXTERNAL_MANAGED \ --address=lb-ipv4-2 \ --global \ --target-http-proxy=http-lb-proxy-adv \ --ports=80
6. Gelişmiş Trafik Özelliklerinin Çalıştığını Doğrulama
Uygulanan trafik bölme özelliğinin çalıştığını doğrulamak için bir miktar yük oluşturmanız gerekir. Bunun için yükü simüle edecek yeni bir sanal makine oluşturacağız.
SSH Güvenlik Duvarına İzin Ver Kuralı Oluştur
Sizden trafik oluşturacağımız sanal makineye SSH uygulamak için öncelikle bir güvenlik duvarı kuralı oluşturmanız gerekir. Bu kural, sanal makineye giden SSH trafiğine izin verir.
Cloud Shell'den
gcloud compute firewall-rules create fw-allow-ssh \ --network=httplbs \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Çıkış
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED fw-allow-ssh httplbs INGRESS 1000 tcp:22 False
Sege-vm oluşturma
Şimdi yük oluşturmak için kullanacağınız siege-vm'i oluşturacaksınız
Cloud Shell'den
gcloud compute instances create siege-vm \ --network=httplbs \ --zone=us-east4-c \ --machine-type=e2-medium \ --tags=allow-ssh,http-server \ --metadata=startup-script='sudo apt-get -y install siege'
Çıkış
NAME ZONE MACHINE_TYPE INTERNAL_IP EXTERNAL_IP STATUS siege-vm us-east4-c e2-medium 10.150.0.3 34.85.218.119 RUNNING
Ardından, oluşturduğunuz sanal makineye SSH üzerinden bağlanabilirsiniz. Bağlantı oluşturulduktan sonra SSH'yi tıklayarak bir terminal açıp bağlanın.
Bağlantı kurulduktan sonra yük oluşturmak için aşağıdaki komutu çalıştırın. Harici http yük dengeleyici için daha önce ayırdığınız IP adresini kullanın.
Cloud Shell'den
siege -c 250 http://$lb-ipv4-2/roundrobbin
Çıkış
New configuration template added to /home/cloudcurriculumdeveloper/.siege Run siege -C to view the current settings in that file [alert] Zip encoding disabled; siege requires zlib support to enable it: No such file or directory ** SIEGE 4.0.2 ** Preparing 250 concurrent users for battle. The server is now under siege...
Yük Dağıtımını Kontrol Etme
Siege çalıştığına göre trafiğin doğu ve batıda yönetilen örnek gruplarına eşit şekilde dağıtıldığını kontrol edebilirsiniz. Ayrıca, trafik yansıtmanın çalıştığından ve trafiğin merkezi yönetilen örnek grubuna gönderilip gönderilmediğini de kontrol edebilirsiniz.
Cloud Console'un Gezinme menüsünde Ağ Hizmetleri > Yük dengeleme. Backends'i (Arka uçlar) tıklayın. Aşağıdaki ekran görüntüsünde görüldüğü gibi gelişmiş menüyü tıklayın.
Arka uç hizmetleri sekmesine gidip doğu arka uç hizmetini seçin
Bu MIG'ye göre trafiğin bölündüğünü gerçek zamanlı olarak görebileceksiniz. Ücreti not alın. Birazdan batı-arka uç hizmetiyle karşılaştırabilirsiniz.
Benzer şekilde west-backend-service'e gidin. Bu hizmete yönelik trafik de göreceksiniz. Trafiğin 50/50'lik çevrimli bir şekilde bölünmesini yapılandırdığınız için bu ücret, doğu-arka uç hizmetinde gösterilen yüzdeye benzer olacaktır.
Oluşturduğunuz trafik yansıtma politikasının çalıştığından emin olmak için merkezi arka uç hizmeti yönetilen örnek grubunun kullanımını kontrol etmeniz gerekir. Bunun için Compute Engine, Compute Engine ve örnek gruplarına gidip us-central1-mig'i seçin. Ardından izleme sekmesine gidin.
Trafiğin bu yönetilen örnek grubuna yansıtıldığını gösteren grafikler gösterilir.
Kuşatma'yı Durdurun
Artık gelişmiş trafik bölme işlevinin işe yaradığını gösterdiğinize göre, kuşatmayı durdurmanın zamanı geldi. Bunu yapmak için siege-vm SSH terminaline dönün ve CTRL+C tuşlarına basarak siege'in çalışmasını durdurun.
Gönderilen Yanıt Başlığını Doğrulama
Temizlemeden önce http yük dengeleyici tarafından uygun yanıt başlığının gönderilip gönderilmediğini hızlı bir şekilde doğrulayabilirsiniz. Bu sayfayı, içerik değeriyle başlık testini gönderecek şekilde yapılandırmıştınız. Cloud Shell'den curl komutu çalıştırıldığında beklenen yanıt verilir.
Cloud Shell'den
curl -svo /dev/null http://lb-ipv4-2/roundrobbin
Çıkış
* Trying lb-ipv4-2.. * TCP_NODELAY set * Connected to lb-ipv4-2 ( lb-ipv4-2) port 80 (#0) > GET /roundrobbin HTTP/1.1 > Host: lb-ipv4-2 > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 404 Not Found < date: Wed, 10 Nov 2021 17:05:27 GMT < server: envoy < Content-Length: 273 < content-type: text/html; charset=iso-8859-1 < via: 1.1 google < test: value < { [273 bytes data] * Connection #0 to host 34.149.2.26 left intact * Closing connection 0
7. Laboratuvar Temizleme
Laboratuvar ortamını tamamladığımıza göre sıra onu ortadan kaldırmaya geldi. Test ortamını silmek için lütfen aşağıdaki komutları çalıştırın.
Cloud Shell'den
gcloud compute instances delete siege-vm gcloud alpha compute forwarding-rules delete http-content-rule --global gcloud alpha compute target-http-proxies delete http-lb-proxy-adv gcloud alpha compute url-maps delete web-map-http gcloud alpha compute backend-services delete east-backend-service --global gcloud alpha compute backend-services delete west-backend-service --global gcloud alpha compute backend-services delete central-backend-service --global gcloud compute addresses delete lb-ipv4-2 --global gcloud compute health-checks delete http-basic-check gcloud compute instance-groups managed delete us-east1-mig --zone us-east1-b gcloud compute instance-groups managed delete us-west1-mig --zone us-west1-a gcloud compute instance-groups managed delete us-central1-mig --zone us-central1-a gcloud compute instance-templates delete "us-east1-template" gcloud compute instance-templates delete "us-west1-template" gcloud compute instance-templates delete "us-central1-template" gcloud compute firewall-rules delete httplb-allow-http-rule gcloud compute firewall-rules delete fw-allow-ssh gcloud compute networks delete httplbs
8. Tebrikler!
Gelişmiş Trafik Yönetimi (Envoy) Codelab'ini kullanarak Harici HTTPs LB'yi tamamladınız.
İşlediklerimiz
- Yönetilen örnek grubu oluşturma, ilişkili VPC ve güvenlik duvarı kuralları
- Yeni yük dengeleyicinin gelişmiş trafik yönetimi özelliklerini kullanma
- Gelişmiş trafik yönetimi özelliklerinin beklendiği gibi çalıştığını doğrulama.
Sonraki adımlar
- URL'yi yeniden yazma ve CORS başlıkları ekleme gibi diğer gelişmiş yönlendirme özelliklerinden bazılarını deneyin ( bağlantı)