1. מבוא
ברוכים הבאים ל-External HTTPs LB עם Codelab ניהול מתקדם (Envoy)!
הגרסה העדכנית של מאזן העומסים החיצוני של HTTP(S) עם ניהול מתקדם של תעבורת נתונים כוללת את כל התכונות של מאזן העומסים הקלאסי הגלובלי של HTTP(S) החיצוני, אבל עם רשימה שהולכת וגדלה של יכולות לניהול מתקדם של תעבורת נתונים. חלק מהיכולות האלה חדשות במאזני העומסים שלנו, וחלקן מספקות תכונות משופרות ליכולות הקיימות. רשימה חלקית של היכולות האלה כוללת:
- פיצול תנועה משוקלל
- בקשת שיקוף
- זיהוי חריגות
- ניסיונות חוזרים של בקשות
- החדרת תקלה
- אפשרויות נוספות של תחום עניין משותף לסשן לקצה העורפי
- אפשרויות נוספות לטרנספורמציה של כותרת
- שיתוף משאבים בין מקורות (CORS)
- אלגוריתמים חדשים של איזון עומסים
מה תלמדו
- איך מגדירים קבוצת מכונות מנוהלות ואת כללי ה-VPC וחומת האש המשויכים
- איך משתמשים בתכונות המתקדמות של ניהול תעבורת הנתונים במאזן העומסים החדש
- איך לוודא שהתכונות המתקדמות לניהול תנועה פועלות כמצופה.
מה צריך להכין
- רשתות בסיסיות וידע על HTTP
- ידע בסיסי בשורת הפקודה Unix/Linux
טופולוגיה של Codelab ו תרחיש לדוגמה
איור 1 – הטופולוגיה של ניתוב מאזן העומסים ב-HTTP
במהלך שיעור ה-Lab הזה תגדירו שלוש קבוצות של מכונות מנוהלות, אחת במזרח, במערב ובמרכז. הפעולה הזו תיצור מאזן עומסים חיצוני מסוג https חיצוני. במאזן העומסים ייעשה שימוש בכמה תכונות מרשימת היכולות המתקדמות שנתמכות במאזן העומסים שמבוסס על הגבל. לאחר הפריסה תיווצר סימולציה של טעינה מסוימת ותוודאו שההגדרות שהגדרתם פועלות כראוי.
2. הגדרה ודרישות
הגדרת סביבה בקצב עצמאי
- נכנסים למסוף Google Cloud ויוצרים פרויקט חדש או עושים שימוש חוזר בפרויקט קיים. אם אין לכם עדיין חשבון Gmail או חשבון Google Workspace, עליכם ליצור חשבון.
- Project name הוא השם המוצג של המשתתפים בפרויקט. זו מחרוזת תווים שלא נעשה בה שימוש ב-Google APIs, ואפשר לעדכן אותה בכל שלב.
- Project ID חייב להיות ייחודי בכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו (אי אפשר לשנות אותו אחרי שמגדירים אותו). מסוף Cloud יוצר מחרוזת ייחודית באופן אוטומטי; בדרך כלל לא מעניין אותך מה זה. ברוב ה-Codelabs תצטרכו להפנות אל מזהה הפרויקט (ובדרך כלל הוא מזוהה כ-
PROJECT_ID
), כך שאם הוא לא מוצא חן בעיניכם, תוכלו ליצור פרויקט אקראי אחר או לנסות בעצמכם ולבדוק אם הוא זמין. ואז המכשיר 'קפוא' לאחר יצירת הפרויקט. - יש ערך שלישי, Project Number, שחלק מממשקי ה-API משתמשים בו. מידע נוסף על כל שלושת הערכים האלה זמין במסמכי התיעוד.
- בשלב הבא צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים או בממשקי API של Cloud. מעבר ב-Codelab הזה לא אמור לעלות הרבה, אם בכלל. כדי להשבית את המשאבים ולא לצבור חיובים מעבר למדריך הזה, פועלים לפי ההנחיות למחיקת המשאבים. בסוף ה-Codelab. משתמשים חדשים ב-Google Cloud זכאים להצטרף לתוכנית תקופת ניסיון בחינם בשווי 1,200 ש"ח.
הפעלת Cloud Shell
אומנם אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-Codelab הזה משתמשים ב-Google Cloud Shell, סביבת שורת הפקודה שפועלת ב-Cloud.
ממסוף GCP, לוחצים על הסמל של Cloud Shell בסרגל הכלים שבפינה השמאלית העליונה:
נדרשים רק כמה דקות כדי להקצות את הסביבה ולהתחבר אליה. בסיום התהליך, אתם אמורים לראות משהו כזה:
למכונה הווירטואלית הזו נטען כל כלי הפיתוח הדרושים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר משמעותית את ביצועי הרשת והאימות. כל העבודה בשיעור ה-Lab הזה יכולה להתבצע באמצעות דפדפן בלבד.
לפני שמתחילים
ב-Inside Cloud Shell, מוודאים שמזהה הפרויקט מוגדר
פרויקט עם רשימת ההגדרות האישיות של gcloud
פרויקט הגדרת התצורה של gcloud [YOUR-PROJECT-NAME]
PROJECT_ID=[YOUR-PROJECT-NAME]
הדהוד $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-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'
פלט
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-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'
פלט
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-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'
פלט
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 -> מכונות וירטואליות. חשוב לוודא שהמכונות החדשות (למשל us-east1-mig-xxx) נוצרו בהתאם להגדרות של קבוצות המופעים שלהן.
עכשיו יש ליצור באמצעותו בקשת אינטרנט בדפדפן כדי לוודא ששרת האינטרנט פועל (יכול להיות שייקח דקה להתחיל לעבוד). בדף מכונות ה-VM בקטע 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 לשירותים לקצה העורפי
עכשיו, אחרי שיצרנו את השירותים לקצה העורפי המתאים לכל אשכול של אפליקציות, צריך להוסיף לכל שירות לקצה העורפי את קבוצות המכונות המנוהלות שיצרנו קודם.
הוספת East 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 היא המקום שבו יפעלו התכונות המתקדמות לניהול תנועה בשיעור ה-Lab הזה. עלינו ליצור קובץ yaml שיכיל את ההגדרה שלו. יצרנו בקובץ ה- .yaml התאמת קידומת ב-/roundrobbin, כך שרק התאמת תנועה /roundrobbin תושפע מההגדרות האלה. ציינו ש-50% מהתנועה צריכה לעבור לשירות הקצה העורפי לכיוון המזרחי ו-50% מהתנועה צריכים לעבור לשירות הקצה העורפי לכיוון מערב. הוספנו גם את הערך {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...
בדיקה של הפצת העומס
עכשיו, כשה-Sege פועל, הגיע הזמן לבדוק שהתנועה מתחלקת באופן שווה בין קבוצות המכונות המנוהלות לכיוון מזרח ומערב. בנוסף, אתם יכולים לבדוק ששיקוף התנועה פועל ושהתנועה נשלחת לקבוצת המכונות המנוהלות המרכזיות.
במסוף Cloud, בתפריט הניווט, לוחצים על Network Services > איזון עומסים. בוחרים את מאזן העומסים web-map-http. עוברים לכרטיסייה Monitoring כדי לראות את התרשים הבא.
תהיה לך אפשרות לראות את פיצול התנועה בזמן אמת ל-MIG הזה. התנועה מחולקת באופן שווה כי הגדרת חלוקה של 'רובין' בצורת 50/50.
כדי לוודא שהמדיניות של שיקוף התנועה שיצרתם פועלת, צריך לבדוק את השימוש בקבוצת המופעים המנוהלים של שירות קצה עורפי מרכזי. כדי לעשות זאת, עוברים אל 'Compute Engine', 'Compute Engine' ו'קבוצות של מכונות', ובוחרים ב-us-central1-mig. בשלב הבא עוברים לכרטיסייה 'מעקב'.
יוצגו התרשימים שמדגימים שהתנועה שוחזרה לקבוצת המופעים המנוהלת הזו.
עצירת המצור
עכשיו, אחרי שהוכחתם שפיצול התנועה המתקדם עובד, הגיע הזמן לעצור את המצור. כדי לעשות זאת, חוזרים למסוף SSH של siege-vm ומקישים על CTRL+C כדי להפסיק את המצור.
אימות כותרת התגובה שנשלחת
לפני הניקוי אפשר לוודא במהירות שכותרת התגובה המתאימה נשלחת על ידי מאזן העומסים של 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. מעולה!
השלמת את ה-External HTTPs LB באמצעות Codelab לניהול מתקדם של תעבורת נתונים (Envoy)!
אילו נושאים דיברנו?
- איך מגדירים קבוצת מכונות מנוהלות ואת כללי ה-VPC וחומת האש המשויכים
- איך משתמשים בתכונות המתקדמות של ניהול תעבורת הנתונים במאזן העומסים החדש
- איך לוודא שהתכונות המתקדמות לניהול תנועה פועלות כמצופה.
השלבים הבאים
- כדאי לנסות כמה מתכונות הניתוב המתקדמות האחרות, כמו שכתוב של כתובות URL, הוספת כותרות CORS ועוד הרבה יותר ( קישור)