1. מבוא
ברוכים הבאים לסדנת הקוד בנושא איזון עומסים חיצוני מסוג HTTPs עם ניהול מתקדם של תעבורת נתונים (Envoy)!
הגרסה העדכנית של מאזן העומסים החיצוני מסוג HTTP(S) עם ניהול מתקדם של תעבורת נתונים כוללת את כל התכונות של מאזן העומסים החיצוני הגלובלי הקיים מסוג HTTP(S) בגרסה הקלאסית, אבל עם רשימה הולכת וגדלה של יכולות ניהול מתקדם של תעבורת נתונים. חלק מהיכולות האלה חדשות במאזני העומסים שלנו, וחלקן מספקות תכונות משופרות ליכולות קיימות. רשימה חלקית של היכולות האלה כוללת:
- חלוקת תנועה משוקללת
- בקשה לשיתוף מסך
- זיהוי חריגים
- ניסיונות חוזרים של בקשות
- הזרקת תקלות
- אפשרויות נוספות של שיוך סשנים לשרת קצה עורפי
- אפשרויות נוספות לשינוי כותרות
- שיתוף משאבים בין מקורות (CORS)
- אלגוריתמים חדשים לאיזון עומסים
מה תלמדו
- איך מגדירים קבוצת מופעים מנוהלת ואת ה-VPC וכללי חומת האש שמשויכים אליה
- איך משתמשים בתכונות המתקדמות לניהול תנועה של מאזן העומסים החדש
- איך לוודא שהתכונות המתקדמות לניהול תנועה פועלות כמצופה.
מה צריך להכין
- ידע בסיסי ברשתות וב-HTTP
- ידע בסיסי בשורת הפקודה של Unix/Linux
טופולוגיה ותיאור מקרה של Codelab
איור 1 – טופולוגיית ניתוב של מאזן עומסים מסוג HTTP
במהלך שיעור ה-Lab הזה תגדירו שלוש קבוצות של מכונות מנוהלות, אחת במזרח, אחת במערב ואחת במרכז. תצרו מאזן עומסים גלובלי חיצוני מסוג HTTPS. מאזן העומסים ישתמש בכמה תכונות מהרשימה של היכולות המתקדמות שמאזן העומסים מבוסס-Envoy תומך בהן. אחרי הפריסה, יוצרים עומס מדומה ומוודאים שההגדרות שהגדרתם פועלות כמו שצריך.
2. הגדרה ודרישות
הגדרת סביבה בקצב אישי
- נכנסים ל-Google Cloud Console ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או חשבון Google Workspace, אתם צריכים ליצור חשבון.
- שם הפרויקט הוא השם המוצג למשתתפים בפרויקט. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. תמיד אפשר לעדכן את המיקום.
- מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud, והוא קבוע (אי אפשר לשנות אותו אחרי שהוא מוגדר). מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית. בדרך כלל לא צריך לדעת מה היא. ברוב המדריכים לתכנות תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-
PROJECT_ID
). אם לא אהבתם את המזהה שנוצר, תוכלו ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא נשארת לאורך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
הפעלת Cloud Shell
אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-codelab הזה תשתמשו ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.
ב-Google Cloud Console, לוחצים על סמל 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. קודם ניצור תבניות של מופעים שמגדירות את התצורה של מכונות וירטואליות שייווצרו לכל אזור. בשלב הבא, ניצור קבוצה של מופעי מכונה מנוהלים (MIG) לכל קצה עורפי באזור, עם הפניה לתבנית של מופע מכונה.
קבוצות של מופעי מכונה בניהול יכולות להיות אזוריות או אזוריות. בשיעור ה-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
יצירה של קבוצות מנוהלות של מופעי מכונה במזרח, במערב ובמרכז
עכשיו צריך ליצור קבוצה של מופעי מכונה מנוהלים מתבניות המכונות שיצרנו קודם.
מ-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
הוספת קבוצות של מכונות וירטואליות ל-Backend Services
אחרי שיצרנו את השירותים המתאימים לקצה העורפי לכל אשכול אפליקציות, אנחנו צריכים להוסיף לכל שירות לקצה העורפי את קבוצות המכונות המנוהלות שיצרנו קודם.
מוסיפים את ה-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 לשירות backend.
מ-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 לשירות backend.
מ-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, כך שהתצורות האלה ישפיעו רק על תנועה שתואמת לנתיב הזה. הגדרנו ש-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. עוברים לכרטיסייה 'מעקב' ורואים את התרשים שבהמשך.
תוכלו לראות את פיצול התנועה בזמן אמת ל-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
עכשיו, אחרי שסיימנו עם סביבת ה-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 ועוד ( קישור)