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

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

אחרי שתשלימו את המשימות האלה, תוכלו להפעיל שירותים נוספים (כמו Cloud CDN ו-Google Cloud Armor) ותכונות מתקדמות לניהול תנועה.

אם עדיין לא עשיתם זאת, כדאי לעיין בסקירה הכללית של קבוצות 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)

אופציונלי: שימוש בכתובות BYOIP

באמצעות העברת כתובות IP משלכם (BYOIP), אתם יכולים לייבא כתובות ציבוריות משלכם אלGoogle Cloud כדי להשתמש בכתובות עם משאבי Google Cloud . לדוגמה, אם מייבאים כתובות IPv4 משלכם, אפשר להקצות אחת מהן לכלל ההעברה כשמגדירים את מאזן העומסים. כשפועלים לפי ההוראות במסמך הזה כדי , צריך לספק את כתובת ה-BYOIP ככתובת ה-IP.

מידע נוסף על השימוש ב-BYOIP זמין במאמר בנושא העברת כתובות IP משלכם.

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

הסביבה שלכם 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) מGoogle Cloud טווחי בדיקת התקינות.

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

הגדרת סביבת Google Cloud הפרויקט

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

יצירת רשת המשנה לשרתי הקצה העורפי

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

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

המסוף

כדי לתמוך בתנועה של IPv4 ו-IPv6, פועלים לפי השלבים הבאים:

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    מעבר לרשתות VPC

  2. עוברים לרשת ששימשה להגדרת קישוריות היברידית בין הסביבות.

    • לוחצים על Edit.
    • בקטע Subnet creation mode (מצב יצירת רשת משנה), בוחרים באפשרות Custom (בהתאמה אישית).
    • לוחצים על Save.
  3. אופציונלי: אם רוצים להגדיר טווחי כתובות IPv6 פנימיות ברשתות משנה ברשת הזו, מבצעים את השלבים הבאים:

    1. בקטע VPC network ULA internal IPv6 range (טווח IPv6 פנימי של ULA ברשת VPC), בוחרים באפשרות Enabled (מופעל).
    2. בקטע הקצאת טווח פנימי של IPv6, בוחרים באפשרות אוטומטית או ידנית.

      אם בוחרים באפשרות Manually, צריך להזין טווח של /48 מתוך הטווח fd20::/20. אם הטווח נמצא בשימוש, תתבקשו לספק טווח אחר.

  4. בכרטיסייה Subnets, לוחצים על Add subnet.

  5. בחלונית Add a subnet, מגדירים את השדות הבאים:

    1. בשדה Name, מציינים שם לרשת המשנה.
    2. בשדה אזור, בוחרים אזור.
    3. בשדה טווח כתובות IP, מזינים טווח של כתובות IP.
    4. בשביל IP stack type, בוחרים באפשרות IPv4 and IPv6 (dual-stack).
    5. בשדה IPv6 access type (סוג הגישה ל-IPv6), בוחרים באפשרות External (חיצוני).
    6. לוחצים על הוספה.

כדי לתמוך בתנועה של IPv4, פועלים לפי השלבים הבאים:

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    מעבר לרשתות VPC

  2. עוברים לרשת ששימשה להגדרת קישוריות היברידית בין הסביבות.

    • לוחצים על Edit.
    • בקטע Subnet creation mode (מצב יצירת רשת משנה), בוחרים באפשרות Custom (בהתאמה אישית).
    • לוחצים על Save.
  3. בכרטיסייה Subnets, לוחצים על Add subnet.

  4. בחלונית Add a subnet, מזינים את המידע הבא:

    • בשדה Name, מציינים שם לרשת המשנה.
    • בשדה אזור, בוחרים אזור.
    • בשדה טווח כתובות IP, מזינים טווח של כתובות IP.
    • בשדה IP stack type, בוחרים באפשרות IPv4 (single-stack).
    • לוחצים על הוספה.

gcloud

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

כדי להגדיר תנועה של IPv4 ו-IPv6, משתמשים בפקודה הבאה:

gcloud compute networks update NETWORK \
    [ --enable-ula-internal-ipv6 [ --internal-ipv6-range=ULA_IPV6_RANGE ]] \
    --switch-to-custom-subnet-mode
gcloud compute networks subnets create LB_SUBNET_NAME \
    --network=NETWORK \
    --range=LB_SUBNET_RANGE \
    --region=REGION \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=EXTERNAL

לגבי תנועה ב-IPv4, משתמשים בפקודה הבאה:

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

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

  • NETWORK: שם לרשת ה-VPC.

  • LB_SUBNET_NAME: שם לתת-הרשת.

  • REGION: שם האזור.

  • ULA_IPV6_RANGE: קידומת /48 מתוך הטווח fd20::/20 שמשמש את Google לטווחים פנימיים של רשתות משנה ב-IPv6. אם לא משתמשים בדגל --internal-ipv6-range, Google בוחרת קידומת /48 לרשת.

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

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

  • fw-allow-health-check: כלל תעבורת נתונים נכנסת (ingress) שרלוונטי למופעים Google Cloudשמתבצע בהם איזון עומסים, שמאפשר תעבורת נתונים ממאזן העומסים וממערכות בדיקת התקינותGoogle Cloud (130.211.0.0/22 ו-35.191.0.0/16). בדוגמה הזו נעשה שימוש בתג היעד allow-health-check כדי לזהות את המכונות הווירטואליות בעורף שאליהן הכלל צריך לחול.

המסוף

  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 ל-130.211.0.0/22 ול-35.191.0.0/16.
    7. בקטע Protocols and ports (פרוטוקולים ויציאות), בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות שצוינו).
    8. מסמנים את התיבה לצד TCP ומקלידים 80 בשביל מספרי היציאות.
  3. לוחצים על יצירה.

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

    1. Name (שם): fw-allow-lb-access-ipv6
    2. רשת: NETWORK
    3. עדיפות: 1000
    4. כיוון התנועה: תנועה נכנסת
    5. יעדים: תגי יעד שצוינו
    6. בשדה Target tags (תגי טרגוט), מזינים allow-health-check-ipv6.
    7. מסנן מקור: טווחים של IPv6
    8. טווחים של כתובות IPv6 של המקור: 2600:2d00:1:b029::/64,2600:2d00:1:1::/64
    9. Protocols and ports (פרוטוקולים ויציאות): Allow all (אישור הכול)
  5. לוחצים על יצירה.

gcloud

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

    מחליפים את NETWORK בשם של רשת ה-VPC שמשמשת להגדרת קישוריות היברידית.

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

    gcloud compute firewall-rules create fw-allow-health-check-ipv6 \
       --network=NETWORK \
       --action=allow \
       --direction=ingress \
       --target-tags=allow-health-check-ipv6 \
       --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
       --rules=tcp,udp,icmp
    

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

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

קבוצות NEGs אזוריות עם נקודות קצה מסוג GCE_VM_IP_PORT אחד או יותר תומכות ב-dual-stack.

בדוגמה הזו, הגדרנו קבוצת נקודות קצה אזורית (עם נקודות קצה מסוג 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 בשדה אזור.

  5. בשדה Zone (אזור), בוחרים באפשרות GCP_NEG_ZONE.

  6. בקטע Boot disk מוודאים שהאפשרות Debian GNU/Linux 12 (bookworm)‎ מסומנת באפשרויות של דיסק האתחול. לוחצים על בחירה כדי לשנות את התמונה, אם צריך.

  7. לוחצים על אפשרויות מתקדמות ומבצעים את השינויים הבאים:

    • לוחצים על Networking ומוסיפים את Network tags (תגי רשת) הבאים: allow-health-check.
    • לוחצים על Edit בקטע Network interfaces, מבצעים את השינויים הבאים ולוחצים על Done:
      • רשת: NETWORK
      • Subnet (רשת משנה): LB_SUBNET_NAME
      • סוג מחסנית IP: IPv4 ו-IPv6 (מחסנית כפולה)
    • לוחצים על ניהול. בשדה 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
      
  8. לוחצים על יצירה.

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

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

gcloud

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

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

    כדי לתמוך בתנועה של IPv4 ו-IPv6, מריצים את הפקודה הבאה:

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-health-check,allow-health-check-ipv6 \
        --ipv6-network-tier=PREMIUM \
        --stack-type=IPV4_IPV6 \
        --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. בשדה כתובת IPv6, מזינים את כתובת ה-IPv6 של נקודת הקצה החדשה ברשת.
  7. בוחרים את סוג היציאה.
    1. אם בוחרים באפשרות ברירת מחדל, נקודת הקצה משתמשת ביציאת ברירת המחדל 80 לכל נקודות הקצה בקבוצת נקודות הקצה ברשת. זה מספיק לדוגמה שלנו כי שרת Apache משרת בקשות ביציאה 80.
    2. אם בוחרים באפשרות בהתאמה אישית, מזינים את מספר היציאה של נקודת הקצה שבה רוצים להשתמש.
  8. כדי להוסיף עוד נקודות קצה, לוחצים על הוספת נקודת קצה ברשת וחוזרים על השלבים הקודמים.
  9. אחרי שמוסיפים את כל נקודות הקצה, לוחצים על יצירה.

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. הוספת נקודות קצה של dual-stack ל-GCP_NEG_NAME.

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

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

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

בנוסף, אם אתם משתמשים ב-Cloud Interconnect, ה-ZONE שמשמש ליצירת ה-NEG צריך להיות באותו אזור שבו הוגדר חיבור ה-VLAN של Cloud 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. מוסיפים את נקודת הקצה אל on-prem-neg:

    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. יוצרים כתובת IP חיצונית סטטית גלובלית שאליה לקוחות חיצוניים שולחים תעבורת נתונים.
      gcloud compute addresses create LB_IP_ADDRESS_NAME \
          --network-tier=PREMIUM \
          --global
      
  2. יוצרים בדיקת תקינות לשרתי הקצה העורפיים.
      gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
          --use-serving-port
      
  3. יוצרים שירות לקצה העורפי. מוסיפים את ה-NEG האזורי ואת ה-NEG של הקישוריות ההיברידית כשרתי קצה לשירות הקצה הזה.
  4.   gcloud beta compute backend-services create BACKEND_SERVICE \
          --health-checks=HTTP_HEALTH_CHECK_NAME \
          --load-balancing-scheme=EXTERNAL_MANAGED \
          --ip-address-selection-policy=PREFER_IPV6 \
          --global
      
  5. מוסיפים את ה-NEG האזורי כקצה עורפי לשירות הקצה העורפי:
      gcloud beta compute backend-services add-backend BACKEND_SERVICE \
          --global \
          --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.
  6. מוסיפים את ה-NEG ההיברידי כקצה עורפי לשירות הקצה העורפי:
      gcloud compute backend-services add-backend BACKEND_SERVICE \
          --global \
          --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
      
  7. יוצרים מפת URL כדי לנתב בקשות נכנסות לשירות הקצה העורפי.
      gcloud beta compute url-maps create URL_MAP_NAME \
          --default-service BACKEND_SERVICE
      
  8. מבצעים את השלב הזה רק אם רוצים ליצור מאזן עומסים ב-HTTPS. הפעולה הזו לא נדרשת למאזני עומסים מסוג HTTP.
    כדי ליצור מאזן עומסים ב-HTTPS, צריך משאב של אישור SSL לשימוש בשרת ה-proxy של יעד HTTPS. אפשר ליצור משאב של אישור SSL באמצעות אישור SSL בניהול Google או אישור SSL בניהול עצמי. מומלץ להשתמש באישורים שמנוהלים על ידי Google כי Google Cloud היא משיגה, מנהלת ומחדשת את האישורים האלה באופן אוטומטי.

    כדי ליצור אישור שמנוהל על ידי Google, צריך שיהיה לכם דומיין. אם אין לכם דומיין, אתם יכולים להשתמש באישור SSL בחתימה עצמית לצורך בדיקה.

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

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

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

    • TARGET_HTTP_PROXY_NAME: השם של ה-proxy ל-HTTP של היעד.
    • TARGET_HTTPS_PROXY_NAME: השם של שרת ה-proxy ל-HTTPS של היעד.
    • HTTP_KEEP_ALIVE_TIMEOUT_SEC: שדה אופציונלי שמשמש לציון זמן הקצוב לתפוגה של HTTP keepalive של הלקוח. ערך הזמן הקצוב לתפוגה צריך להיות בין 5 ל-1,200 שניות. ערך ברירת המחדל הוא 610 שניות.
    • SSL_CERTIFICATE_NAME: השם של אישור ה-SSL.
    • URL_MAP_NAME: השם של מפת URL.
  10. יוצרים כלל העברה כדי להפנות בקשות נכנסות לשרת ה-proxy.

    למאזן עומסים מסוג HTTP:
    gcloud beta compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network-tier=PREMIUM \
        --address=LB_IP_ADDRESS_NAME \
        --target-http-proxy=TARGET_HTTP_PROXY_NAME \
        --global \
        --ports=80
    
    במאזן עומסים מסוג HTTPS:
    gcloud beta compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network-tier=PREMIUM \
        --address=LB_IP_ADDRESS_NAME \
        --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
        --global \
        --ports=443
    

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

אחרי שיוצרים את מאזן העומסים, רושמים את כתובת ה-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, תוכלו לעיין במאמר בנושא הוספה, שינוי ומחיקה של רשומות.

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

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

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

  2. לוחצים על מאזן העומסים שיצרתם.

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

  4. שליחת תעבורה למאזן העומסים.

    • אם יצרתם מאזן עומסים של HTTP, אתם יכולים לבדוק את מאזן העומסים באמצעות דפדפן אינטרנט. לשם כך, עוברים אל http://IP_ADDRESS. מחליפים את IP_ADDRESS בכתובת ה-IP של מאזן העומסים. תועברו לשירות שחשפתם דרך נקודת הקצה.

    • אם יצרתם מאזן עומסים ב-HTTPS, אתם יכולים לבדוק את מאזן העומסים באמצעות curl באופן הבא. מחליפים את IP_ADDRESS בכתובת ה-IP של מאזן העומסים. אתם אמורים להיות מועברים לשירות שחשפתם דרך נקודת הקצה.

      curl -k https://IP_ADDRESS
      

      אם זה לא עובד ואתם משתמשים באישור שמנוהל על ידי Google, צריך לוודא שהסטטוס של משאב האישור הוא ACTIVE. מידע נוסף זמין במאמר סטטוס של משאב אישור SSL בניהול Google. לאחר מכן בודקים את הדומיין שמפנה לכתובת ה-IP של מאזן העומסים. לדוגמה:

      curl -s https://DOMAIN_NAME
      

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

  5. הבדיקה של נקודות הקצה שאינן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

כדי לעדכן את שרת ה-proxy של HTTP היעד במאזן עומסים מסוג 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 \
          --global
    

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

      gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \
          --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
          --global
    

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

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

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