הגדרה של מאזן עומסים פנימי אזורי של אפליקציות (ALB) עם קישוריות היברידית

בדף הזה מוסבר איך לפרוס מאזן עומסים פנימי אזורי של אפליקציות (ALB) כדי לאזן עומסים של תנועה לנקודות קצה ברשת שנמצאות בפריסה מקומית או בעננים ציבוריים אחרים, ושאפשר להגיע אליהן באמצעות קישוריות היברידית.

אם עדיין לא עשיתם זאת, כדאי לעיין בסקירה הכללית של קבוצות NEGs עם קישוריות היברידית כדי להבין את דרישות הרשת להגדרת איזון עומסים היברידי.

סקירה כללית של ההגדרה

בדוגמה שבדף הזה מוגדר הפריסה הבאה:

דוגמה למאזן עומסים פנימי אזורי של אפליקציות (ALB) לקישוריות היברידית.
דוגמה למאזן עומסים של אפליקציות (ALB) פנימי אזורי לקישוריות היברידית (לוחצים כדי להגדיל).

צריך להגדיר קישוריות היברידית לפני שמגדירים פריסה היברידית של איזון עומסים. הדף הזה לא כולל את ההגדרה של קישוריות היברידית.

בהתאם למוצר הקישוריות ההיברידית שבחרתם (Cloud VPN או Cloud Interconnect (מוקדש או שותף)), אתם יכולים להשתמש במסמכי המוצר הרלוונטיים.

הרשאות

כדי להגדיר איזון עומסים היברידי, צריכות להיות לכם ההרשאות הבאות:

  • מופעל Google Cloud

  • בסביבה המקומית או בסביבה אחרת שאינה בענןGoogle Cloud

    • הרשאות להגדרת נקודות קצה ברשת שמאפשרות לשירותים בסביבה המקומית או בסביבות ענן אחרות להיות נגישים מ-Google Cloud באמצעות שילוב של IP:Port. למידע נוסף, אפשר לפנות לאדמין של הרשת בסביבה שלכם.
    • הרשאות ליצור כללי חומת אש בסביבה המקומית או בסביבות ענן אחרות כדי לאפשר לבוחני בדיקת תקינות של Google להגיע לנקודות הקצה.

בנוסף, כדי לבצע את ההוראות בדף הזה, צריך ליצור NEG קישוריות היברידית, מאזן עומסים ו-NEGs אזוריים (ונקודות הקצה שלהם) שישמשו כבקאנדים מבוססי Google Cloudלמאזן העומסים.

צריך להיות לכם תפקיד בעלים או עריכה בפרויקט, או תפקידי IAM הבאים ב-Compute Engine.

משימה תפקיד נדרש
יצירת רשתות, רשתות משנה ורכיבים של מאזן עומסים אדמין של רשת מחשוב (roles/compute.networkAdmin)
הוספה והסרה של כללים לחומת האש אדמין לענייני אבטחה ב-Compute (roles/compute.securityAdmin)
יצירת מופעים אדמין מכונות של Compute (roles/compute.instanceAdmin)

הגדרת קישוריות היברידית

הסביבה שלכם Google Cloud וסביבות מקומיות או סביבות ענן אחרות צריכות להיות מחוברות באמצעות קישוריות היברידית, על ידי שימוש בחיבורי VLAN של Cloud Interconnect או במנהרות Cloud VPN עם מכשירי Cloud Router או מכשירי Router וירטואליים. מומלץ להשתמש בחיבור עם זמינות גבוהה.

‫Cloud Router שמופעל בו ניתוב דינמי גלובלי לומד על נקודת הקצה הספציפית באמצעות פרוטוקול Border Gateway Protocol ‏ (BGP) ומתכנת אותה ברשת ה-VPC שלכם, Google Cloud . ניתוב דינמי אזורי לא אפשרי. אין תמיכה גם בנתיבים סטטיים.

אתם יכולים להשתמש באותה רשת או ברשת VPC אחרת באותו פרויקט כדי להגדיר גם רשת היברידית (Cloud Interconnect,‏ Cloud VPN או מכונה וירטואלית של מכשיר נתב) וגם מאזן עומסים. חשוב לזכור:

  • אם אתם משתמשים ברשתות VPC שונות, שתי הרשתות צריכות להיות מחוברות באמצעות VPC Network Peering או להיות רשתות מסוג spoke ב-VPC באותו מרכז NCC.

  • אם אתם משתמשים באותה רשת VPC, ודאו שטווח ה-CIDR של רשת המשנה של רשת ה-VPC לא מתנגש עם טווחי ה-CIDR המרוחקים. כשכתובות IP חופפות, נתיבי תת-רשת מקבלים עדיפות על פני קישוריות מרחוק.

הוראות מפורטות זמינות במאמרים הבאים:

הגדרת הסביבה מחוץ ל- Google Cloud

כדי להגדיר את הסביבה המקומית או סביבת ענן אחרת לאיזון עומסים היברידי:

  • מגדירים נקודות קצה ברשת כדי לחשוף שירותים מקומיים ל-Google Cloud (IP:Port).
  • מגדירים כללים לחומת האש בסביבה המקומית או בסביבת ענן אחרת.
  • מגדירים את Cloud Router כך שיפרסם מסלולים מסוימים שנדרשים בסביבה הפרטית.

הגדרת נקודות קצה ברשת

אחרי שמגדירים קישוריות היברידית, מגדירים נקודות קצה אחת או יותר ברשת בסביבה המקומית או בסביבות ענן אחרות שאפשר להגיע אליהן דרך Cloud Interconnect או Cloud VPN או Router appliance באמצעות שילוב של IP:port. השילוב IP:port מוגדר כנקודת קצה אחת או יותר עבור ה-NEG של הקישוריות ההיברידית שנוצר בשלב Google Cloud בתהליך הזה.

אם יש כמה נתיבים לנקודת הקצה של ה-IP, הניתוב מתבצע לפי ההתנהגות שמתוארת בסקירה הכללית של Cloud Router.

הגדרת כללים לחומת האש

צריך ליצור את כללי חומת האש הבאים בסביבה המקומית או בסביבת ענן אחרת:

  • יוצרים כלל חומת אש שמאפשר תעבורת נתונים נכנסת (ingress) בסביבות מקומיות או בסביבות ענן אחרות כדי לאפשר לתעבורת נתונים מתת-הרשת של שרת proxy בלבד באזור להגיע לנקודות הקצה.
  • אין צורך לאפשר תעבורה מטווחים של בדיקות תקינות של Google עבור קבוצות NEG היברידיות. עם זאת, אם אתם משתמשים בשילוב של NEGs היברידיים ואזוריים בשירות קצה עורפי יחיד, אתם צריכים לאפשר תנועה מטווחים של בדיקות תקינות של Google עבור ה-NEGs האזוריים.

מגדירים את Cloud Router כך שיפרסם את טווחי כתובות ה-IP המותאמים אישית הבאים בסביבה המקומית או בסביבת ענן אחרת:

  • הטווח של תת-הרשת של האזור שמשמשת רק כפרוקסי.

הגדרת Google Cloud הסביבה

בשלבים הבאים, חשוב להשתמש באותה רשת VPC (שנקראת NETWORK בהליך הזה) ששימשה להגדרת קישוריות היברידית בין הסביבות.

בנוסף, מוודאים שהאזור שבו משתמשים (שנקרא REGION בהליך הזה) זהה לאזור שבו השתמשתם כדי ליצור את מנהרת Cloud VPN או את קובץ ה-VLAN המצורף של Cloud Interconnect.

הגדרת רשת המשנה ל-proxy בלבד

תת-הרשת הזו ל-proxy בלבד משמשת את כל מאזני העומסים האזוריים שמבוססים על Envoy באזור REGION.

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .
    מעבר לרשתות VPC
  2. עוברים לרשת ששימשה להגדרת קישוריות היברידית בין הסביבות.
  3. לוחצים על הוספת רשת משנה.
  4. מזינים שם: PROXY_ONLY_SUBNET_NAME.
  5. בוחרים אזור: REGION.
  6. מגדירים את Purpose (מטרה) לערך Regional Managed Proxy (שרת proxy מנוהל אזורי).
  7. מזינים טווח כתובות IP: PROXY_ONLY_SUBNET_RANGE.
  8. לוחצים על הוספה.

gcloud

יוצרים את התת-רשת של ה-proxy בלבד באמצעות הפקודה gcloud compute networks subnets create.

gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=REGION \
  --network=NETWORK \
  --range=PROXY_ONLY_SUBNET_RANGE

הגדרת רשת המשנה של מאזן העומסים

רשת המשנה הזו משמשת ליצירת בק-אנדים של קבוצות אזוריות של נקודות קצה ברשת (NEG) של מאזן העומסים, הקצה הקדמי וכתובת ה-IP הפנימית.

מסוף Cloud

  1. נכנסים לדף VPC networks במסוף Google Cloud .
    מעבר לרשתות VPC
  2. עוברים לרשת ששימשה להגדרת קישוריות היברידית בין הסביבות.
  3. בקטע Subnets (רשתות משנה):
    • מגדירים את מצב יצירת רשתות משנה למותאם אישית.
    • בקטע New subnet (רשת משנה חדשה), מזינים את הפרטים הבאים:
      • Name (שם): LB_SUBNET_NAME
      • אזור: REGION
      • טווח כתובות IP: LB_SUBNET_RANGE
    • לוחצים על סיום.
  4. לוחצים על יצירה.

gcloud

  1. יוצרים רשת משנה ברשת ששימשה להגדרת קישוריות היברידית בין הסביבות.

    gcloud compute networks subnets create LB_SUBNET_NAME \
        --network=NETWORK \
        --range=LB_SUBNET_RANGE \
        --region=REGION
    

שמירת כתובת ה-IP של מאזן העומסים

כברירת מחדל, כתובת IP אחת משמשת לכל כלל העברה. אתם יכולים לשריין כתובת IP משותפת, כדי להשתמש באותה כתובת IP עם כמה כללי העברה. עם זאת, אם רוצים לפרסם את מאזן העומסים באמצעות Private Service Connect, לא משתמשים בכתובת IP משותפת לכלל ההעברה.

המסוף

אפשר לשמור כתובת IP פנימית עצמאית באמצעות מסוףGoogle Cloud .

  1. עוברים לדף רשתות VPC.

    מעבר לרשתות VPC

  2. לוחצים על הרשת ששימשה להגדרת קישוריות היברידית בין הסביבות.
  3. לוחצים על כתובות IP פנימיות סטטיות ואז על שריון כתובת סטטית.
  4. מזינים שם: LB_IP_ADDRESS.
  5. בשדה רשת משנה, בוחרים באפשרות LB_SUBNET_NAME.
  6. אם רוצים לציין איזו כתובת IP להזמין, בקטע כתובת IP סטטית בוחרים באפשרות אני רוצה לבחור ואז ממלאים כתובת IP מותאמת אישית. אחרת, המערכת מקצה לכם באופן אוטומטי כתובת IP בתת-הרשת.
  7. אם רוצים להשתמש בכתובת ה-IP הזו עם כמה כללי העברה, בקטע מטרה בוחרים באפשרות משותפת.
  8. כדי לסיים את התהליך, לוחצים על שמירה.

gcloud

  1. מריצים את הפקודה compute addresses create ב-CLI של gcloud:

    gcloud compute addresses create LB_IP_ADDRESS \
      --region=REGION \
      --subnet=LB_SUBNET_NAME \
    
  2. משתמשים בפקודה compute addresses describe כדי לראות את כתובת ה-IP שהוקצתה:

    gcloud compute addresses describe LB_IP_ADDRESS \
      --region=REGION
    

    אם רוצים להשתמש באותה כתובת IP עם כמה כללי העברה, צריך לציין --purpose=SHARED_LOADBALANCER_VIP.

יצירת כללים לחומת אש עבור קבוצות אזוריות של נקודות קצה ברשת (zonal NEGs)

בדוגמה הזו, יוצרים את הכללים הבאים של חומת האש עבור קצוות העורף של ה-NEG האזורי ב- Google Cloud:

  • fw-allow-health-check: כלל תעבורת נתונים נכנסת (ingress), שרלוונטי למופעים שמתבצע בהם איזון עומסים, שמאפשר תנועה מטווחים של בדיקות תקינות. Google Cloud בדוגמה הזו נעשה שימוש בתג היעד allow-health-check כדי לזהות את מכונות ה-VM של ה-backend שאליהן צריך להחיל את התג. אין צורך לאפשר תעבורה מטווחים של בדיקות תקינות של Google עבור קבוצות NEG היברידיות. עם זאת, אם אתם משתמשים בשילוב של NEGs היברידיים ואזוריים בשירות קצה עורפי יחיד, אתם צריכים לאפשר תנועה מטווחים של בדיקות תקינות של Google עבור ה-NEGs האזוריים.
  • fw-allow-ssh: כלל תעבורת נתונים נכנסת (ingress) שמאפשר קישוריות SSH נכנסת ביציאה 22 ב-TCP מכל כתובת. אפשר לבחור טווח IP של מקורות שהוא יותר מוגבל עבור הכלל הזה. לדוגמה, אפשר לציין רק את טווחי ה-IP של המערכות שמהן תפעילו סשנים של SSH. בדוגמה הזו נעשה שימוש בתג היעד allow-ssh כדי לזהות את המכונות הווירטואליות שצריך להחיל עליהן את התג.
  • fw-allow-proxy-only-subnet: כלל תעבורה נכנסת שמאפשר לחיבורים מרשת המשנה של ה-proxy בלבד להגיע לשרתי הקצה העורפיים.

המסוף

  1. נכנסים לדף Firewall policies במסוף Google Cloud .
    מעבר אל Firewall policies
  2. לוחצים על יצירת כלל חומת אש כדי ליצור את הכלל שיאפשר תעבורת נתונים מ
      בדיקות תקינות:
    1. מזינים שם של fw-allow-health-check.
    2. בקטע רשת, בוחרים באפשרות NETWORK.
    3. בקטע יעדים, בוחרים באפשרות תגי יעד ספציפיים.
    4. בשדה Target tags (תגי יעד) כותבים allow-health-check.
    5. מגדירים את Source filter בתור IPv4 ranges.
    6. מגדירים את Source IPv4 ranges לערכים 35.191.0.0/16,130.211.0.0/22.
    7. בקטע Protocols and ports [פרוטוקולים ויציאות], בוחרים באפשרות Specified protocols and ports [פרוטוקולים ויציאות ספציפיים].
    8. בוחרים באפשרות TCP ומזינים את הערך 80 בשדה של מספר היציאה.
    9. לוחצים על יצירה.
  3. לוחצים שוב על יצירת כלל לחומת האש כדי ליצור את הכלל שמאפשר חיבורי SSH נכנסים:
    1. Name (שם): fw-allow-ssh
    2. רשת: NETWORK
    3. עדיפות: 1000
    4. כיוון התנועה: כניסה
    5. פעולה במקרה של התאמה: לאפשר
    6. יעדים: תגי יעד שצוינו
    7. תגי טירגוט: allow-ssh
    8. מסנן מקור: טווחים של כתובות IPv4
    9. טווחי IPv4 של המקור: 0.0.0.0/0
    10. פרוטוקולים ויציאות: בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
    11. בוחרים באפשרות TCP ומזינים את הערך 22 בשדה של מספר היציאה.
    12. לוחצים על יצירה.
  4. לוחצים שוב על יצירת כלל לחומת האש כדי ליצור את הכלל שיאפשר חיבורים נכנסים מתת-רשת של שרת proxy בלבד:
    1. Name (שם): fw-allow-proxy-only-subnet
    2. רשת: NETWORK
    3. עדיפות: 1000
    4. כיוון התנועה: כניסה
    5. פעולה במקרה של התאמה: לאפשר
    6. יעדים: תגי יעד שצוינו
    7. תגי טירגוט: allow-proxy-only-subnet
    8. מסנן מקור: טווחים של כתובות IPv4
    9. טווחי IPv4 של המקור: PROXY_ONLY_SUBNET_RANGE
    10. פרוטוקולים ויציאות: בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
    11. בוחרים באפשרות TCP ומזינים את הערך 80 בשדה של מספר היציאה.
    12. לוחצים על יצירה.

gcloud

  1. יוצרים את הכלל fw-allow-health-check-and-proxy כדי לאפשר לבדיקות התקינות להגיע לשרתים העורפיים ביציאת TCP‏ 80: Google Cloud

    gcloud compute firewall-rules create fw-allow-health-check \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=35.191.0.0/16,130.211.0.0/22 \
        --rules=tcp:80
    
  2. יוצרים את כלל חומת האש fw-allow-ssh כדי לאפשר קישוריות SSH למכונות וירטואליות עם תג הרשת allow-ssh. אם לא מציינים את source-ranges, Google Cloud הכלל יפורש כאילו הוא מתייחס לכל מקור.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  3. יוצרים כלל חומת אש שמאפשר תעבורת נתונים נכנסת (ingress) לתת-רשת של שרת proxy בלבד, כדי לאפשר למאזן העומסים לתקשר עם שרתים עורפיים ביציאת TCP מספר 80:

    gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-proxy-only-subnet \
        --source-ranges=PROXY_ONLY_SUBNET_RANGE \
        --rules=tcp:80
    

הגדרת ה-NEG האזורי

לשרתי קצה עורפיים שמבוססים על Google Cloud, מומלץ להגדיר כמה קבוצות אזוריות של נקודות קצה ברשת (NEGs) באותו אזור שבו הגדרתם קישוריות היברידית.

בדוגמה הזו, הגדרנו קבוצת נקודות קצה אזורית (עם נקודות קצה מסוג GCE_VM_IP_PORT) באזור REGION. קודם יוצרים את המכונות הווירטואליות באזור GCP_NEG_ZONE. לאחר מכן, יוצרים NEG אזורי באותו GCP_NEG_ZONE ומוסיפים את נקודות הקצה ברשת של המכונות הווירטואליות ל-NEG.

יצירת מכונות וירטואליות

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .
    לדף VM instances
  2. לוחצים על Create instance.
  3. מגדירים את Name לערך vm-a1.
  4. בשדה Region, בוחרים באפשרות REGION, ובשדה Zone בוחרים כל תחום. במאמר הזה, נתייחס לזה כאל GCP_NEG_ZONE.
  5. בקטע Boot disk מוודאים שהאפשרות Debian GNU/Linux 12 (bookworm)‎ מסומנת באפשרויות של דיסק האתחול. לוחצים על בחירה כדי לשנות את התמונה, אם צריך.
  6. לוחצים על אפשרויות מתקדמות ומבצעים את השינויים הבאים:

    • לוחצים על Networking ומוסיפים את תגי הרשת הבאים: allow-ssh,allow-health-check ו-allow-proxy-only-subnet.
    • לוחצים על Edit בקטע Network interfaces, מבצעים את השינויים הבאים ולוחצים על Done:
      • רשת: NETWORK
      • Subnet (רשת משנה): LB_SUBNET_NAME
      • כתובת IP פנימית ראשית: זמנית (אוטומטית)
      • כתובת IP חיצונית: זמנית
    • לוחצים על ניהול. בשדה 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://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
  7. לוחצים על יצירה.

  8. חוזרים על השלבים הבאים כדי ליצור מכונה וירטואלית שנייה, באמצעות השילוב הבא של שם ואזור:

    • שם: vm-a2, אזור: GCP_NEG_ZONE

gcloud

כדי ליצור את המכונות הווירטואליות, מריצים את הפקודה הבאה פעמיים, ומשתמשים בשילובים האלה לשם של המכונה הווירטואלית והאזור שלה. תוכן הסקריפט זהה בשתי המכונות הווירטואליות.

  • VM_NAME מתוך vm-a1 וכל אזור GCP_NEG_ZONE שתבחרו
  • VM_NAME של vm-a2 ובאותו אזור GCP_NEG_ZONE

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \
        --subnet=LB_SUBNET_NAME \
        --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://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    

יצירת ה-NEG האזורי

המסוף

כדי ליצור קבוצת נקודות קצה ברשת אזורית:

  1. נכנסים לדף Network Endpoint Groups במסוף Google Cloud .
    כניסה לדף Network Endpoint Groups
  2. לוחצים על יצירת קבוצת נקודות קצה ברשת.
  3. מזינים שם ל-NEG האזורי. בפרוצדורה הזו, הוא נקרא GCP_NEG_NAME.
  4. בוחרים את סוג קבוצת נקודות הקצה ברשת: קבוצת נקודות קצה ברשת (אזורית).
  5. בוחרים באפשרות רשת: NETWORK
  6. בוחרים את תת-הרשת: LB_SUBNET_NAME
  7. בוחרים את האזור: GCP_NEG_ZONE
  8. מזינים את יציאת ברירת המחדל: 80.
  9. לוחצים על יצירה.

מוסיפים נקודות קצה ל-NEG האזורי:

  1. נכנסים לדף Network Endpoint Groups במסוף Google Cloud .
    כניסה לדף Network endpoint groups
  2. לוחצים על Name (שם) של קבוצת נקודות הקצה ברשת שנוצרה בשלב הקודם (GCP_NEG_NAME). מוצג הדף Network endpoint group details (פרטים של קבוצת נקודות הקצה ברשת).
  3. בקטע Network endpoints in this group (נקודות קצה ברשת בקבוצה הזו), לוחצים על Add network endpoint (הוספת נקודת קצה ברשת). מוצג הדף Add network endpoint.
  4. בוחרים מכונה וירטואלית כדי להוסיף את כתובות ה-IP הפנימיות שלה כנקודות קצה ברשת. בקטע Network interface (ממשק רשת), מוצגים השם, האזור ורשת המשנה של מכונת ה-VM.
  5. בשדה כתובת IPv4, מזינים את כתובת ה-IPv4 של נקודת הקצה החדשה ברשת.
  6. בוחרים את סוג היציאה.
    1. אם בוחרים באפשרות ברירת מחדל, נקודת הקצה משתמשת ביציאת ברירת המחדל 80 לכל נקודות הקצה בקבוצת נקודות הקצה ברשת. זה מספיק לדוגמה שלנו כי שרת Apache משרת בקשות ביציאה 80.
    2. אם בוחרים באפשרות בהתאמה אישית, מזינים את מספר היציאה של נקודת הקצה שבה רוצים להשתמש.
  7. כדי להוסיף עוד נקודות קצה, לוחצים על הוספת נקודת קצה ברשת וחוזרים על השלבים הקודמים.
  8. אחרי שמוסיפים את כל נקודות הקצה, לוחצים על יצירה.

gcloud

  1. יוצרים NEG אזורי (עם GCE_VM_IP_PORT נקודות קצה) באמצעות הפקודה gcloud compute network-endpoint-groups create:

    gcloud compute network-endpoint-groups create GCP_NEG_NAME \
        --network-endpoint-type=GCE_VM_IP_PORT \
        --zone=GCP_NEG_ZONE \
        --network=NETWORK \
        --subnet=LB_SUBNET_NAME
    

    אפשר לציין --default-port כשיוצרים את ה-NEG, או לציין מספר יציאה לכל נקודת קצה, כמו שמוצג בשלב הבא.

  2. הוספת נקודות קצה ל-GCP_NEG_NAME.

    gcloud compute network-endpoint-groups update GCP_NEG_NAME \
        --zone=GCP_NEG_ZONE \
        --add-endpoint='instance=vm-a1,port=80' \
        --add-endpoint='instance=vm-a2,port=80'
    

הגדרת NEG קישוריות היברידית

כשיוצרים את קבוצת ה-NEG, משתמשים בZONE שממזער את המרחק הגיאוגרפי בין Google Cloud לבין הסביבה המקומית או סביבת ענן אחרת. לדוגמה, אם אתם מארחים שירות בסביבה מקומית בפרנקפורט, גרמניה, אתם יכולים לציין את האזור europe-west3-a Google Cloud כשאתם יוצרים את ה-NEG.

בנוסף, אם אתם משתמשים ב-Cloud Interconnect, אזור ZONE ששימש ליצירת ה-NEG צריך להיות באותו אזור שבו הוגדר צירוף ל-Interconnect.

רשימת האזורים והתחומים הזמינים מופיעה במסמכי העזרה של Compute Engine: אזורים ותחומים זמינים.

המסוף

כדי ליצור קבוצה של נקודות קצה ברשת עם קישוריות היברידית:

  1. נכנסים לדף Network Endpoint Groups במסוף Google Cloud .
    כניסה לדף Network endpoint groups
  2. לוחצים על יצירת קבוצת נקודות קצה ברשת.
  3. מזינים שם ל-NEG ההיברידי. בפרוצדורה הזו, הוא נקרא ON_PREM_NEG_NAME.
  4. בוחרים את הסוג של קבוצת נקודות קצה ברשת: קבוצה של נקודות קצה ברשת (אזורית) לקישוריות היברידית.
  5. בוחרים באפשרות רשת: NETWORK
  6. בוחרים את תת-הרשת: LB_SUBNET_NAME
  7. בוחרים את האזור: ON_PREM_NEG_ZONE
  8. מזינים את יציאת ברירת המחדל.
  9. לוחצים על יצירה.

הוספת נקודות קצה ל-NEG של קישוריות היברידית:

  1. נכנסים לדף Network Endpoint Groups במסוף Google Cloud .
    כניסה לדף Network Endpoint Groups
  2. לוחצים על Name של קבוצת נקודות הקצה ברשת שנוצרה בשלב הקודם (ON_PREM_NEG_NAME). מוצג הדף Network endpoint group detail.
  3. בקטע Network endpoints in this group (נקודות קצה ברשת בקבוצה הזו), לוחצים על Add network endpoint (הוספת נקודת קצה ברשת). מוצג הדף Add network endpoint.
  4. מזינים את כתובת ה-IP של נקודת הקצה החדשה ברשת.
  5. בוחרים את סוג היציאה.
    1. אם בוחרים באפשרות ברירת מחדל, נקודת הקצה משתמשת ביציאת ברירת המחדל לכל נקודות הקצה בקבוצת נקודות הקצה ברשת.
    2. אם בוחרים באפשרות בהתאמה אישית, אפשר להזין מספר יציאה אחר לשימוש בנקודת הקצה.
  6. כדי להוסיף עוד נקודות קצה, לוחצים על הוספת נקודת קצה ברשת וחוזרים על השלבים הקודמים.
  7. אחרי שמוסיפים את כל נקודות הקצה שאינןGoogle Cloud , לוחצים על יצירה.

gcloud

  1. יוצרים NEG של קישוריות היברידית באמצעות הפקודה gcloud compute network-endpoint-groups create.

    gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=ON_PREM_NEG_ZONE \
        --network=NETWORK
    
  2. מוסיפים את נקודת הקצה של המכונה הווירטואלית של ה-Backend המקומי אל ON_PREM_NEG_NAME:

    gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \
        --zone=ON_PREM_NEG_ZONE \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
    

אפשר להשתמש בפקודה הזו כדי להוסיף את נקודות הקצה ברשת שהגדרתם קודם לכן במקום או בסביבת הענן. חוזרים על שלב --add-endpoint כמה פעמים שצריך.

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

הגדרת מאזן העומסים

המסוף

gcloud

  1. יוצרים בדיקת תקינות לשרתי הקצה העורפיים.
       gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
           --region=REGION \
           --use-serving-port
       
    בדיקות תקינות של קצה עורפי היברידי של NEG מגיעות משרתי proxy של Envoy ברשת המשנה של proxy בלבד, ואילו בדיקות של קצה עורפי אזורי של NEG מגיעות מ[טווחים של כתובות IP מרכזיות של Google לבדיקות תקינות](/load-balancing/docs/health-check-concepts#ip-ranges).
  2. יוצרים שירות קצה עורפי עבור קצה עורפי שמבוסס על Google Cloud. מוסיפים את ה-NEG האזורי ואת ה-NEG של הקישוריות ההיברידית כשרתי קצה לשירות הקצה הזה.
      gcloud compute backend-services create BACKEND_SERVICE \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --protocol=HTTP \
          --health-checks=HTTP_HEALTH_CHECK_NAME \
          --health-checks-region=REGION \
          --region=REGION
      
  3. מוסיפים את ה-NEG האזורי כקצה עורפי לשירות הקצה העורפי.
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --region=REGION \
        --balancing-mode=RATE \
        --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
        --network-endpoint-group=GCP_NEG_NAME \
        --network-endpoint-group-zone=GCP_NEG_ZONE
    
    פרטים על הגדרת מצב איזון זמינים במסמכי התיעוד של ה-CLI של gcloud בנושא הפרמטר --max-rate-per-endpoint.
  4. מוסיפים את ה-NEG ההיברידי כקצה עורפי לשירות הקצה העורפי.
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --region=REGION \
        --balancing-mode=RATE \
        --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
        --network-endpoint-group=ON_PREM_NEG_NAME \
        --network-endpoint-group-zone=ON_PREM_NEG_ZONE
    
    פרטים על הגדרת מצב האיזון זמינים במסמכי התיעוד של ה-CLI של gcloud בנושא הפרמטר --max-rate-per-endpoint.
  5. יוצרים מפת URL כדי לנתב בקשות נכנסות לשירות הקצה העורפי:
    gcloud compute url-maps create URL_MAP_NAME \
        --default-service BACKEND_SERVICE \
        --region=REGION
    
  6. אופציונלי: מבצעים את השלב הזה אם משתמשים ב-HTTPS בין הלקוח לבין מאזן העומסים. הדרישה הזו לא חלה על מאזני עומסים מסוג HTTP.

    אתם יכולים ליצור אישורים של Compute Engine או של Certificate Manager. אפשר להשתמש בכל אחת מהשיטות הבאות כדי ליצור אישורים באמצעות Certificate Manager:

    אחרי שיוצרים אישורים, מצרפים אותם ישירות לשרת ה-proxy של היעד.

    כדי ליצור משאב של אישור SSL בניהול עצמי ב-Compute Engine:
    gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
        --certificate CRT_FILE_PATH \
        --private-key KEY_FILE_PATH
    
  7. יוצרים שרת proxy של HTTP(S) ליעד כדי להפנות בקשות למפת URL.

    כדי ליצור מאזן עומסים מסוג HTTP, יוצרים פרוקסי ליעד HTTP:
    gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
        --url-map=URL_MAP_NAME \
        --url-map-region=REGION \
        --region=REGION
    
    למאזן עומסים מסוג HTTPS, יוצרים שרת proxy ליעד HTTPS. ה-proxy הוא החלק במאזן העומסים שמכיל את אישור ה-SSL לאיזון עומסים של HTTPS, ולכן בשלב הזה צריך גם לטעון את האישור.
    gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
        --ssl-certificates=SSL_CERTIFICATE_NAME \
        --url-map=URL_MAP_NAME \
        --url-map-region=REGION \
        --region=REGION
    
  8. יוצרים כלל העברה כדי להפנות בקשות נכנסות לשרת ה-proxy. אל תשתמשו בתת-הרשת של שרת proxy בלבד כדי ליצור את כלל ההעברה.

    למאזן עומסים מסוג HTTP:
      gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network=NETWORK \
          --subnet=LB_SUBNET_NAME \
          --address=LB_IP_ADDRESS \
          --ports=80 \
          --region=REGION \
          --target-http-proxy=TARGET_HTTP_PROXY_NAME \
          --target-http-proxy-region=REGION
    
    למאזן עומסים מסוג HTTPS:
      gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network=NETWORK \
          --subnet=LB_SUBNET_NAME \
          --address=LB_IP_ADDRESS \
          --ports=443 \
          --region=REGION \
          --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
          --target-https-proxy-region=REGION
    

חיבור הדומיין למאזן העומסים

אחרי שיוצרים את מאזן העומסים, רושמים את כתובת ה-IP שמשויכת למאזן העומסים – לדוגמה, 30.90.80.100. כדי להפנות את הדומיין למאזן העומסים, צריך ליצור רשומת A באמצעות שירות הרישום של הדומיין. אם הוספתם מספר דומיינים לאישור ה-SSL, צריך להוסיף רשומת A לכל אחד מהם, כשכולם מפנים לכתובת ה-IP של מאזן העומסים. לדוגמה, כדי ליצור רשומות A בשביל www.example.com ובשביל example.com, משתמשים בפקודה הבאה:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

אם אתם משתמשים ב-Cloud DNS כספק ה-DNS, תוכלו לעיין במאמר בנושא הוספה, שינוי ומחיקה של רשומות.

בדיקת מאזן העומסים

כדי לבדוק את מאזן העומסים, יוצרים מכונה וירטואלית של לקוח באותו אזור שבו נמצא מאזן העומסים. לאחר מכן שולחים תנועה מהלקוח למאזן העומסים.

יצירת מכונה וירטואלית של לקוח

בדוגמה הזו נוצרת מכונה וירטואלית של לקוח (vm-client) באותו אזור שבו נמצאות קבוצות ה-NEG של הבק-אנד. הלקוח משמש לאימות התצורה של מאזן העומסים ולהדגמת ההתנהגות הצפויה כפי שמתואר בקטע בדיקה.

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .
    לדף VM instances
  2. לוחצים על Create instance.
  3. מגדירים את Name לערך vm-client.
  4. מגדירים את Zone לערך CLIENT_VM_ZONE.
  5. לוחצים על אפשרויות מתקדמות ומבצעים את השינויים הבאים:
    • לוחצים על Networking ומוסיפים את הערך allow-ssh לNetwork tags.
    • לוחצים על לחצן העריכה בקטע Network interfaces, מבצעים את השינויים הבאים ולוחצים על Done:
      • רשת: NETWORK
      • Subnet (רשת משנה): LB_SUBNET_NAME
      • כתובת IP פנימית ראשית: זמנית (אוטומטית)
      • כתובת IP חיצונית: זמנית
  6. לוחצים על יצירה.

gcloud

המכונה הווירטואלית של הלקוח יכולה להיות בכל אזור באותו אזור שבו נמצא מאזן העומסים, והיא יכולה להשתמש בכל רשת משנה באותו אזור. בדוגמה הזו, הלקוח נמצא באזור CLIENT_VM_ZONE והוא משתמש באותה רשת משנה כמו המכונות הווירטואליות של הבק-אנד.

gcloud compute instances create vm-client \
    --zone=CLIENT_VM_ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=LB_SUBNET_NAME

הפניית תנועה למאזן העומסים

אחרי שמגדירים את מאזן העומסים, אפשר להתחיל לשלוח תנועה לכתובת ה-IP של מאזן העומסים.

  1. משתמשים ב-SSH כדי להתחבר למכונת הלקוח.

    gcloud compute ssh client-vm \
      --zone=CLIENT_VM_ZONE
    
  2. מוצאים את כתובת ה-IP של מאזן העומסים. משתמשים בפקודה compute addresses describe כדי לראות את כתובת ה-IP שהוקצתה:

    gcloud compute addresses describe l7-ilb-ip-address \
      --region=us-west1
    
  3. מוודאים שמאזן העומסים מציג שמות מארחים של קצה עורפי כמצופה. מחליפים את IP_ADDRESS בכתובת ה-IP של מאזן העומסים.

    כדי לבצע בדיקה של HTTP, מריצים את הפקודה:

    curl IP_ADDRESS
    

    כדי להריץ בדיקה של HTTPS:

  curl -k -s 'https://DOMAIN_NAME:443' --connect-to DOMAIN_NAME:443:IP_ADDRESS:443
  

מחליפים את DOMAIN_NAME בשם הדומיין של האפליקציה, לדוגמה, test.example.com.

הדגל -k גורם ל-curl לדלג על אימות האישור.

הבדיקה של נקודות הקצה שאינןGoogle Cloud תלויה בשירות שחשפתם דרך נקודת הקצה של ה-NEG ההיברידי.

אפשרויות הגדרה נוספות

בקטע הזה אנחנו מרחיבים את דוגמת ההגדרה ומציגים אפשרויות הגדרה חלופיות ונוספות. כל המשימות הן אופציונליות. אפשר לבצע אותן בכל סדר.

עדכון פסק הזמן של שמירת החיבור בחיים ב-HTTP של הלקוח

מאזן העומסים שנוצר בשלבים הקודמים הוגדר עם ערך ברירת מחדל לזמן הקצוב לתפוגה של חיבור HTTP פעיל של לקוח.

כדי לעדכן את הזמן הקצוב לתפוגה של הלקוח ב-HTTP keepalive, פועלים לפי ההוראות הבאות.

המסוף

  1. נכנסים לדף Load balancing במסוף Google Cloud .

    כניסה לדף Load balancing

  2. לוחצים על השם של מאזן העומסים שרוצים לשנות.
  3. לוחצים על עריכה.
  4. לוחצים על Frontend configuration.
  5. מרחיבים את הקטע תכונות מתקדמות. בשדה HTTP keepalive timeout, מזינים ערך של פסק זמן.
  6. לוחצים על עדכון.
  7. כדי לבדוק את השינויים, לוחצים על בדיקה וסיום ואז על עדכון.

gcloud

למאזן עומסים מסוג HTTP, מעדכנים את ה-proxy של HTTP היעד באמצעות הפקודה gcloud compute target-http-proxies update.

      gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \
          --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
          --region=REGION
      

במאזן עומסים מסוג HTTPS, מעדכנים את שרת ה-proxy של HTTPS באמצעות הפקודה gcloud compute target-https-proxies update.

      gcloud compute target-https-proxies update TARGET_HTTP_PROXY_NAME \
          --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
          --region REGION
      

מחליפים את מה שכתוב בשדות הבאים:

  • TARGET_HTTP_PROXY_NAME: השם של ה-proxy ל-HTTP של היעד.
  • TARGET_HTTPS_PROXY_NAME: השם של שרת ה-proxy ל-HTTPS של היעד.
  • HTTP_KEEP_ALIVE_TIMEOUT_SEC: ערך הזמן הקצוב לתפוגה של HTTP keepalive, מ-5 עד 600 שניות.

המאמרים הבאים