1. מבוא
ברוכים הבאים ל-Codelab בנושא מאזן עומסים חיצוני מסוג HTTPs עם ניהול מתקדם של תעבורת נתונים (Envoy)!
הגרסה העדכנית של מאזן העומסים החיצוני מסוג HTTP(S) עם ניהול מתקדם של תעבורת נתונים כוללת את כל התכונות של מאזן העומסים החיצוני הגלובלי הקיים מסוג HTTP(S) בגרסה הקלאסית, אבל עם רשימה הולכת וגדלה של יכולות ניהול מתקדם של תעבורת נתונים. חלק מהיכולות האלה חדשות במאזני העומסים שלנו, וחלקן מספקות תכונות משופרות ליכולות קיימות. רשימה חלקית של היכולות האלה כוללת:
- חלוקת תנועה משוקללת
- בקשה לשיתוף מסך
- זיהוי חריגים
- ניסיונות חוזרים של בקשות
- הזרקת תקלות
- אפשרויות נוספות של שיוך סשנים לשרתים בעורף האתר
- אפשרויות נוספות לשינוי כותרות
- שיתוף משאבים בין מקורות (CORS)
- אלגוריתמים חדשים לאיזון עומסים
מה תלמדו
- איך מגדירים קבוצה של מופעי מכונה מנוהלים ואת ה-VPC וכללי חומת האש שמשויכים אליה
- איך משתמשים בתכונות המתקדמות לניהול תנועה של מאזן העומסים החדש
- איך לוודא שתכונות הניהול המתקדם של התנועה פועלות כמצופה.
מה תצטרכו
- ידע בסיסי ברשתות ו-HTTP
- ידע בסיסי בשורת הפקודה של Unix/Linux
טופולוגיה ותיאור מקרה של Codelab

איור 1 – טופולוגיית ניתוב של מאזן עומסים מסוג HTTP
במהלך שיעור ה-Lab הזה תגדירו שלוש קבוצות של מכונות מנוהלות, אחת במזרח, אחת במערב ואחת במרכז. תצרו מאזן עומסים גלובלי חיצוני מסוג HTTPS. מאזן העומסים ישתמש בכמה תכונות מתוך רשימת היכולות המתקדמות שמאזן העומסים מבוסס-Envoy תומך בהן. אחרי הפריסה, תיצרו עומס מדומה ותוודאו שההגדרות שהגדרתם פועלות כמו שצריך.
2. הגדרה ודרישות
הגדרת סביבה בקצב אישי
- נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.



- שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. תמיד אפשר לעדכן את המיקום.
- מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud, והוא קבוע (אי אפשר לשנות אותו אחרי שהוא מוגדר). מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-
PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר לאורך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
מפעילים את Cloud Shell
אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-codelab הזה תשתמשו ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.
ב-מסוף Google Cloud, לוחצים על סמל Cloud Shell בסרגל הכלים שבפינה הימנית העליונה:

יחלפו כמה רגעים עד שההקצאה והחיבור לסביבת העבודה יושלמו. בסיום התהליך, אמור להופיע משהו כזה:

המכונה הווירטואלית הזו כוללת את כל הכלים שדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר מאוד את הביצועים והאימות ברשת. אפשר לבצע את כל העבודה ב-codelab הזה בדפדפן. לא צריך להתקין שום דבר.
לפני שמתחילים
ב-Cloud Shell, מוודאים שמזהה הפרויקט מוגדר
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
PROJECT_ID=[YOUR-PROJECT-NAME]
echo $PROJECT_ID
הפעלת ממשקי API
הפעלת כל השירותים הנדרשים
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com
3. יצירת רשת VPC
יצירת רשת VPC
מ-Cloud Shell
gcloud compute networks create httplbs --subnet-mode=auto
פלט
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
אחרי שיוצרים את ה-VPC, יוצרים כללים לחומת האש. כלל חומת האש ישמש כדי לאפשר לכל כתובות ה-IP לגשת לכתובת ה-IP החיצונית של האתר של אפליקציית הבדיקה ביציאה 80 לתנועת HTTP.
מ-Cloud Shell
gcloud compute firewall-rules create httplb-allow-http-rule \ --allow tcp:80 \ --network httplbs \ --source-ranges 0.0.0.0/0 \ --priority 700
פלט
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. הגדרת קבוצות של מופעי מכונה מנוהלים
צריך להגדיר קבוצות של מופעים מנוהלים שכוללות את התבניות של משאבי הקצה העורפי שמשמשים את מאזן העומסים של HTTP. קודם ניצור תבניות של מופעים שמגדירות את התצורה של מכונות וירטואליות שייווצרו לכל אזור. בשלב הבא, לכל בק-אנד באזור, ניצור קבוצה של מופעי מכונה מנוהלים שמפנה לתבנית של הגדרות מכונה.
ההיקף של קבוצות מנוהלות של מופעי מכונה יכול להיות אזורי או אזורי. בשיעור ה-Lab הזה ניצור שלוש קבוצות אזוריות של מופעים מנוהלים: אחת ב-us-east1, אחת ב-us-west1 ואחת ב-us-central1.
בקטע הזה אפשר לראות סקריפט לטעינה בזמן ההפעלה שנוצר מראש, שיהיה רלוונטי ליצירת המכונה. סקריפט לטעינה בזמן ההפעלה הזה מתקין ומפעיל יכולות של שרת אינטרנט, שנשתמש בהן כדי לדמות אפליקציית אינטרנט. מוזמנים לעיין בסקריפט הזה.
יצירת תבניות מופעים למזרח, למערב ולמרכז
השלב הראשון הוא ליצור את תבנית של הגדרות מכונה us-east-1.
מ-Cloud Shell
gcloud compute instance-templates create us-east1-template \
--region=us-east1 \
--network=httplbs \
--tags=http-server, \
--image-family=debian-12 \
--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'
פלט
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
השלב הבא הוא ליצור את תבנית של הגדרות מכונה us-west-1.
מ-Cloud Shell
gcloud compute instance-templates create us-west1-template \
--region=us-west1 \
--network=httplbs \
--tags=http-server, \
--image-family=debian-12 \
--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'
פלט
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
השלב הבא הוא ליצור את תבנית של הגדרות מכונה us-central-1.
מ-Cloud Shell
gcloud compute instance-templates create us-central1-template \
--region=us-central1 \
--network=httplbs \
--tags=http-server, \
--image-family=debian-12 \
--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'
פלט
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
עכשיו אפשר לוודא שתבניות המופעים נוצרו בהצלחה באמצעות הפקודה הבאה ב-gcloud:
מ-Cloud Shell
gcloud compute instance-templates list
פלט
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
יצירה של קבוצות מופעי מכונה מנוהלים (MIG) במזרח, במערב ובמרכז
עכשיו צריך ליצור קבוצה של מופעי מכונה מנוהלים מתבניות המכונות שיצרנו קודם.
מ-Cloud Shell
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
פלט
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
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
פלט
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
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
פלט
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
כדי לוודא שקבוצות המופעים נוצרו בהצלחה, מריצים את פקודת gcloud הבאה:
מ-Cloud Shell
gcloud compute instance-groups list
פלט
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
אימות הפונקציונליות של שרת האינטרנט
כל מופע מוגדר להפעיל שרת אינטרנט של Apache עם סקריפט PHP פשוט שמציג:

כדי לוודא ששרתי האינטרנט פועלים בצורה תקינה, עוברים אל Compute Engine -> VM instances (מכונות וירטואליות). מוודאים שהמופעים החדשים (לדוגמה, us-east1-mig-xxx) נוצרו בהתאם להגדרות של קבוצת המופעים.
עכשיו, שולחים בקשת אינטרנט בדפדפן כדי לוודא ששרת האינטרנט פועל (יכול להיות שייקח דקה עד שהוא יתחיל לפעול). בדף VM instances (מכונות וירטואליות) בקטע Compute Engine, בוחרים מופע שנוצר על ידי קבוצת המופעים ולוחצים על כתובת ה-IP החיצונית (הציבורית) שלו.
לחלופין, בדפדפן, עוברים אל http://<IP_Address>
5. הגדרת מאזן העומסים
יצירת בדיקת תקינות
קודם צריך ליצור בדיקת תקינות בסיסית כדי לוודא שהשירותים שלנו פועלים בצורה תקינה. אנחנו ניצור בדיקת בריאות בסיסית, אבל יש הרבה אפשרויות מתקדמות יותר להתאמה אישית.
מ-Cloud Shell
gcloud compute health-checks create http http-basic-check \
--port 80
שמירת כתובת IP חיצונית
בשלב הזה צריך לשמור כתובת IP סטטית שזמינה באופן גלובלי, שתצורף בהמשך למאזן העומסים.
מ-Cloud Shell
gcloud compute addresses create lb-ipv4-2 \
--ip-version=IPV4 \
--global
חשוב לשים לב לכתובת ה-IP שהוזמנה.
gcloud compute addresses describe lb-ipv4-2 \
--format="get(address)" \
--global
יצירת שירותים לקצה העורפי
עכשיו צריך ליצור שירות לקצה העורפי לכל אחת מקבוצות המופעים המנוהלות שיצרנו קודם. אחד למזרח, אחד למערב ואחד למרכז.
יצירת שירות לקצה העורפי עבור קבוצת מופעי מכונה מנוהלים במזרח.
מ-Cloud Shell
gcloud compute backend-services create east-backend-service \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=HTTP \
--port-name=http \
--health-checks=http-basic-check \
--global
יצירת שירות לקצה העורפי עבור קבוצת מופעי מכונה מנוהלים במערב.
מ-Cloud Shell
gcloud compute backend-services create west-backend-service \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=HTTP \
--port-name=http \
--health-checks=http-basic-check \
--global
יצירת שירות לקצה העורפי לקבוצת מופעי מכונה מנוהלים מרכזית.
מ-Cloud Shell
gcloud compute backend-services create central-backend-service \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=HTTP \
--port-name=http \
--health-checks=http-basic-check \
--global
הוספת קבוצות של מכונות מנוהלות (MIG) לשירותי קצה עורפי
אחרי שיצרנו את השירותים המתאימים לקצה העורפי לכל אשכול אפליקציות, אנחנו צריכים להוסיף לכל שירות לקצה העורפי את קבוצות המכונות המנוהלות שיצרנו קודם.
מוסיפים את ה-MIG המזרחי לשירות הקצה העורפי.
מ-Cloud Shell
gcloud compute backend-services add-backend east-backend-service \
--balancing-mode='UTILIZATION' \
--instance-group=us-east1-mig \
--instance-group-zone=us-east1-b \
--global
הוספת West MIG לשירות לקצה העורפי.
מ-Cloud Shell
gcloud compute backend-services add-backend west-backend-service \
--balancing-mode='UTILIZATION' \
--instance-group=us-west1-mig \
--instance-group-zone=us-west1-a \
--global
הוספת Central MIG לשירות לקצה העורפי.
מ-Cloud Shell
gcloud compute backend-services add-backend central-backend-service \
--balancing-mode='UTILIZATION' \
--instance-group=us-central1-mig \
--instance-group-zone=us-central1-a \
--global
יצירת מפת כתובות URL
מפת URL היא המקום שבו יופיעו התכונות המתקדמות לניהול תנועה במעבדה הזו. צריך ליצור קובץ .yaml שיכיל את ההגדרות. בקובץ .yaml שיצרנו, הגדרנו התאמה של קידומת ב- /roundrobbin, כך שהתצורות האלה ישפיעו רק על תנועה שתואמת ל- /roundrobbin. הגדרנו ש-50% מהתנועה יועברו אל east-backend-service ו-50% מהתנועה יועברו אל west-backend-service. בנוסף, הוספנו ערך של כותרת תגובה:{test}, שיופיע בכל התגובות. בסופו של דבר, הוספנו שכל התנועה תשוכפל לשירות העורפי המרכזי. התנועה משוכפלת ונשלחת לכאן למטרות בדיקה בלבד.
שומרים את הדוגמה כקובץ .yaml במחשב.
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
יוצרים את מיפוי כתובות ה-URL על ידי ייבוא המסמך מהמחשב. חשוב לזכור שנתיב המקור יהיה שונה בהתאם למקום שבו שומרים את קובץ ה-YAML.
מ-Cloud Shell
gcloud compute url-maps import web-map-http \ --source /Users/[USERNAME]/Documents/Codelab/lbconfig.yaml \ --global
יצירת חזית קדמית של HTTP
השלב האחרון ביצירת מאזן העומסים הוא יצירת קצה קדמי. כך תמפו את כתובת ה-IP ששמרתם קודם למפת URL של מאזן העומסים שיצרתם.
מ-Cloud Shell
gcloud compute target-http-proxies create http-lb-proxy-adv \
--url-map=web-map-http
לאחר מכן צריך ליצור כלל העברה גלובלי שימפה את כתובת ה-IP שהוזמנה קודם לשרת ה-proxy של HTTP.
מ-Cloud Shell
gcloud 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. איך מוודאים שהתכונות המתקדמות לניהול תנועה פועלות
כדי לוודא שהתכונה 'פיצול תנועה' שיישמתם פועלת, אתם צריכים ליצור עומס מסוים. לשם כך, ניצור מכונה וירטואלית חדשה כדי לדמות עומס.
יצירת כלל של חומת אש שמאפשרת SSH
כדי להתחבר למכונה הווירטואלית באמצעות SSH, שממנה ניצור תעבורת נתונים, קודם צריך ליצור כלל חומת אש שיאפשר תעבורת נתונים מסוג SSH למכונה הווירטואלית.
מ-Cloud Shell
gcloud compute firewall-rules create fw-allow-ssh \
--network=httplbs \
--action=allow \
--direction=ingress \
--target-tags=allow-ssh \
--rules=tcp:22
פלט
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED fw-allow-ssh httplbs INGRESS 1000 tcp:22 False
יצירת Siege-vm
עכשיו תיצרו את siege-vm שבו תשתמשו כדי ליצור עומס
מ-Cloud Shell
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'
פלט
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
אחר כך תוכלו להתחבר ב-SSH למכונה הווירטואלית שיצרתם. אחרי שיוצרים את המכונה, לוחצים על SSH כדי להפעיל טרמינל ולהתחבר.
אחרי שמתחברים, מריצים את הפקודה הבאה כדי ליצור עומס. משתמשים בכתובת ה-IP ששמרתם קודם למאזן העומסים החיצוני של HTTP.
מ-Cloud Shell
siege -c 250 http://[$lb-ipv4-2]/roundrobbin
פלט
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...
בדיקת חלוקת העומס
עכשיו, כשה-Siege פועל, הגיע הזמן לבדוק שהתנועה מתחלקת באופן שווה בין קבוצות מופעי מכונה מנוהלים במזרח ובמערב. בנוסף, אפשר לבדוק שהשיקוף של התנועה פועל והתנועה נשלחת לקבוצת מופעי מכונה מנוהלים המרכזית.
ב-Cloud Console, בתפריט הניווט, לוחצים על Network Services (שירותי רשת) > Load balancing (איזון עומסים). בוחרים את מאזן העומסים web-map-http. עוברים לכרטיסייה Monitoring (מעקב) ורואים את התרשים שלמטה.

תוכלו לראות את פיצול התנועה בזמן אמת ל-MIG הזה. התנועה מחולקת באופן שווה כי הגדרתם חלוקה של 50/50 בשיטת Round Robin.
כדי לוודא שמדיניות שיקוף התנועה שיצרתם פועלת, צריך לבדוק את ניצול המשאבים של קבוצת מופעי מכונה מנוהלים central-backend-service. כדי לעשות זאת, עוברים אל compute (מחשוב), compute engine, instance groups (קבוצות מופעים) ובוחרים באפשרות us-central1-mig. לאחר מכן עוברים לכרטיסייה 'מעקב'.

יוצגו תרשימים שמאכלסים את הנתונים, כדי להראות שהתנועה משוכפלת לקבוצת מופעי מכונה מנוהלים זו.
Stop the Siege
עכשיו, אחרי שהוכחתם שחלוקת התנועה המתקדמת פועלת, הגיע הזמן להפסיק את המצור. כדי לעשות זאת, חוזרים לטרמינל ה-SSH של siege-vm ומקישים על CTRL+C כדי להפסיק את הפעלת siege.
אימות של כותרת התגובה שנשלחת
לפני שמבצעים ניקוי, אפשר לוודא במהירות שמאזן העומסים של HTTP שולח את כותרת התגובה המתאימה. הגדרתם לשלוח את בדיקת הכותרת עם ערך התוכן. הפעלת פקודת curl מ-Cloud Shell תיתן את התגובה הצפויה.
מ-Cloud Shell
curl -svo /dev/null http://lb-ipv4-2/roundrobbin
פלט
* 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. ניקוי מעבדה
עכשיו, אחרי שסיימנו עם סביבת ה-Lab, הגיע הזמן להסיר אותה. כדי למחוק את סביבת הבדיקה, מריצים את הפקודות הבאות.
מ-Cloud Shell
gcloud compute instances delete siege-vm --zone=us-east4-c gcloud compute forwarding-rules delete http-content-rule --global gcloud compute target-http-proxies delete http-lb-proxy-adv gcloud compute url-maps delete web-map-http gcloud compute backend-services delete east-backend-service --global gcloud compute backend-services delete west-backend-service --global gcloud 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. מעולה!
סיימתם את ה-Codelab בנושא מאזן עומסים חיצוני מסוג HTTPs עם ניהול מתקדם של תעבורת נתונים (Envoy).
מה נכלל
- איך מגדירים קבוצה של מופעי מכונה מנוהלים ואת ה-VPC וכללי חומת האש שמשויכים אליה
- איך משתמשים בתכונות המתקדמות לניהול תנועה של מאזן העומסים החדש
- איך לוודא שתכונות הניהול המתקדם של התנועה פועלות כמצופה.
השלבים הבאים
- מומלץ לנסות חלק מהתכונות המתקדמות האחרות של ניתוב, כמו כתיבה מחדש של כתובות URL, הוספה של כותרות CORS ועוד ( קישור)