בדף הזה מוסבר איך לפרוס מאזן עומסי רשת פנימי של שרת proxy חוצה-אזורים כדי לאזן עומסים של תעבורת נתונים לנקודות קצה ברשת שנמצאות בפריסה מקומית או בעננים ציבוריים אחרים, ושאפשר להגיע אליהן באמצעות קישוריות היברידית.
אם עדיין לא עשיתם זאת, כדאי לעיין בסקירה הכללית של קבוצות NEGs עם קישוריות היברידית כדי להבין את דרישות הרשת להגדרת איזון עומסים היברידי.
סקירה כללית של ההגדרה
בדוגמה מוגדר מאזן עומסי רשת פנימי חוצה אזורים לשרתי קצה עורפיים של קבוצות נקודות קצה ברשת (NEG) עם קישוריות היברידית ואזורית מעורבת, כמו שמוצג באיור הבא:
צריך להגדיר קישוריות היברידית לפני שמגדירים פריסה היברידית של איזון עומסים. בהתאם למוצר הקישוריות ההיברידית שבחרתם, משתמשים ב-Cloud VPN או ב-Cloud Interconnect (מוקדש או שותף).
הרשאות
כדי להגדיר איזון עומסים היברידי, צריכות להיות לכם ההרשאות הבאות:
מופעל Google Cloud
- הרשאות ליצירת קישוריות היברידית בין Google Cloud לבין הסביבה המקומית או סביבות ענן אחרות. רשימת ההרשאות הנדרשות מופיעה במסמכי המוצר הרלוונטי של Network Connectivity.
- הרשאות ליצירת NEG לקישוריות היברידית ומאזן עומסים.
התפקיד 'אדמין של מאזן עומסים של Compute' (
roles/compute.loadBalancerAdmin) כולל את ההרשאות שנדרשות לביצוע המשימות שמתוארות במדריך הזה.
בסביבה המקומית או בסביבה אחרת שאינה בענןGoogle Cloud
- הרשאות להגדרת נקודות קצה ברשת שמאפשרות לשירותים בסביבה המקומית או בסביבות ענן אחרות להיות נגישים מ-Google Cloud באמצעות שילוב של
IP:Port. למידע נוסף, אפשר לפנות לאדמין של הרשת בסביבה שלכם. - הרשאות ליצור כללי חומת אש בסביבה המקומית או בסביבות ענן אחרות כדי לאפשר לבוחני בדיקת תקינות של Google להגיע לנקודות הקצה.
- הרשאות להגדרת נקודות קצה ברשת שמאפשרות לשירותים בסביבה המקומית או בסביבות ענן אחרות להיות נגישים מ-Google Cloud באמצעות שילוב של
בנוסף, כדי לבצע את ההוראות בדף הזה, צריך ליצור 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_A ו-REGION_B בהליך הזה) זהים לאלה שבהם נעשה שימוש ליצירת מנהרת Cloud VPN או קובצי ה-VLAN המצורפים של Cloud Interconnect.
הגדרת רשתות המשנה של הקצה העורפי
משתמשים ברשת המשנה הזו כדי ליצור את קצה העורף של מאזן העומסים של קבוצת ה-NEG האזורית:
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
עוברים לרשת ששימשה להגדרת קישוריות היברידית בין הסביבות.
בקטע Subnets (רשתות משנה):
- מגדירים את מצב יצירת רשתות משנה למותאם אישית.
- בקטע New subnet (רשת משנה חדשה), מזינים את הפרטים הבאים:
- מזינים שם לרשת המשנה.
- בוחרים אזור: REGION_A
- מזינים טווח כתובות IP.
- לוחצים על סיום.
לוחצים על יצירה.
כדי להוסיף עוד רשתות משנה באזורים שונים, לוחצים על הוספת רשת משנה וחוזרים על השלבים הקודמים עבור REGION_B
gcloud
יצירת רשתות משנה ברשת ששימשה להגדרת קישוריות היברידית בין הסביבות.
gcloud compute networks subnets create SUBNET_A \ --network=NETWORK \ --range=LB_SUBNET_RANGE1 \ --region=REGION_Agcloud compute networks subnets create SUBNET_B \ --network=NETWORK \ --range=LB_SUBNET_RANGE2 \ --region=REGION_B
API
שולחים בקשת POST אל ה-method subnetworks.insert.
מחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks
{
"name": "SUBNET_A",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"ipCidrRange": "LB_SUBNET_RANGE1",
"region": "projects/PROJECT_ID/regions/REGION_A",
}
שולחים בקשת POST אל ה-method subnetworks.insert.
מחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks
{
"name": "SUBNET_B",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"ipCidrRange": "LB_SUBNET_RANGE2",
"region": "projects/PROJECT_ID/regions/REGION_B",
}
מחליפים את מה שכתוב בשדות הבאים:
-
SUBNET_Aו-SUBNET_B: השם של תת-הרשתות -
LB_SUBNET_RANGE1ו-LB_SUBNET_RANGE2: טווח כתובות ה-IP של רשתות המשנה -
REGION_Aו-REGION_B: האזורים שבהם הגדרתם את מאזן העומסים
הגדרת רשת המשנה ל-proxy בלבד
תת-רשת של proxy בלבד מספקת קבוצה של כתובות IP ש-Google משתמשת בהן כדי להפעיל שרתי proxy של Envoy בשמכם. הפרוקסיים מסיימים חיבורים מהלקוח ויוצרים חיבורים חדשים לשרתי הקצה.
כל מאזני העומסים האזוריים שמבוססים על Envoy באותו אזור של רשת ה-VPC משתמשים בתת-הרשת הזו שמשמשת רק כפרוקסי. יכולה להיות רק תת-רשת אחת פעילה של שרת proxy לכל מטרה נתונה, לכל אזור ולכל רשת.
המסוף
אם אתם משתמשים ב Google Cloud מסוף, אתם יכולים לחכות וליצור את רשת המשנה של ה-proxy בלבד בהמשך בדף איזון עומסים.
כדי ליצור עכשיו את רשת המשנה של ה-proxy בלבד, פועלים לפי השלבים הבאים:
נכנסים לדף VPC networks במסוף Google Cloud .
- לוחצים על השם של רשת ה-VPC.
- בכרטיסייה Subnets (רשתות משנה), לוחצים על Add subnet (הוספת רשת משנה).
- מזינים שם לרשת המשנה של ה-proxy בלבד.
- ברשימה Region בוחרים באזור REGION_A.
- ברשימה Purpose בוחרים באפשרות Cross-region Managed Proxy.
- בשדה טווח כתובות IP, מזינים
10.129.0.0/23. - לוחצים על הוספה.
יצירת תת-רשת של שרת proxy בלבד ב-REGION_B
- לוחצים על הוספת רשת משנה.
- מזינים שם לרשת המשנה של ה-proxy בלבד.
- ברשימה Region בוחרים באזור REGION_B.
- ברשימה Purpose בוחרים באפשרות Cross-region Managed Proxy.
- בשדה טווח כתובות IP, מזינים
10.130.0.0/23. - לוחצים על הוספה.
gcloud
יוצרים את רשתות המשנה של ה-proxy בלבד באמצעות הפקודה
gcloud compute networks subnets create.
gcloud compute networks subnets create PROXY_SN_A \
--purpose=GLOBAL_MANAGED_PROXY \
--role=ACTIVE \
--region=REGION_A \
--network=NETWORK \
--range=PROXY_ONLY_SUBNET_RANGE1
gcloud compute networks subnets create PROXY_SN_B \
--purpose=GLOBAL_MANAGED_PROXY \
--role=ACTIVE \
--region=REGION_B \
--network=NETWORK \
--range=PROXY_ONLY_SUBNET_RANGE2
מחליפים את מה שכתוב בשדות הבאים:
-
PROXY_SN_Aו-PROXY_SN_B: השם של תת-הרשתות מסוג proxy בלבד -
PROXY_ONLY_SUBNET_RANGE1ו-PROXY_ONLY_SUBNET_RANGE2: טווח כתובות ה-IP של רשתות המשנה של ה-proxy בלבד -
REGION_Aו-REGION_B: האזורים שבהם הגדרתם את מאזן העומסים
API
יוצרים את רשתות המשנה של ה-proxy בלבד באמצעות
השיטה subnetworks.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks
{
"name": "PROXY_SN_A",
"ipCidrRange": "PROXY_ONLY_SUBNET_RANGE1",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"region": "projects/PROJECT_ID/regions/REGION_A",
"purpose": "GLOBAL_MANAGED_PROXY",
"role": "ACTIVE"
}
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks
{
"name": " PROXY_SN_B",
"ipCidrRange": "PROXY_ONLY_SUBNET_RANGE2",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"region": "projects/PROJECT_ID/regions/REGION_B",
"purpose": "GLOBAL_MANAGED_PROXY",
"role": "ACTIVE"
}
יצירת כללים לחומת האש
בדוגמה הזו, יוצרים את הכללים הבאים של חומת האש עבור קצוות העורף של ה-NEG האזורי ב- Google Cloud:
-
fw-allow-health-check: כלל כניסה שחל על המכונות שמתבצע איזון עומסים ביניהן, שמאפשר תנועה ממערכות לבדיקת תקינות (130.211.0.0/22ו-35.191.0.0/16). בדוגמה הזו נעשה שימוש בתג היעדallow-health-checkכדי לזהות את קבוצות ה-NEG האזוריות שאליהן הכלל צריך לחול.Google Cloud -
fw-allow-ssh: כלל תעבורת נתונים נכנסת (ingress) שמאפשר קישוריות SSH נכנסת ביציאה 22 ב-TCP מכל כתובת. אפשר לבחור טווח IP של מקורות שהוא יותר מוגבל עבור הכלל הזה. לדוגמה, אפשר לציין רק את טווחי ה-IP של המערכות שמהן תפעילו סשנים של SSH. בדוגמה הזו נעשה שימוש בתג היעדallow-sshכדי לזהות את המכונות הווירטואליות שצריך להחיל עליהן את התג.
fw-allow-proxy-only-subnet: כלל תעבורה נכנסת שמאפשר לחיבורים מרשת המשנה של ה-proxy בלבד להגיע לשרתי הקצה העורפיים של ה-NEG האזורי.
המסוף
נכנסים לדף Firewall policies במסוף Google Cloud .
לוחצים על יצירת כלל חומת אש כדי ליצור את הכלל שיאפשר תעבורת נתונים מפקודות בדיקת תקינות:
- מזינים שם של
fw-allow-health-check. - בשדה רשת, בוחרים באפשרות NETWORK.
- בקטע יעדים, בוחרים באפשרות תגי יעד שצוינו.
- בשדה Target tags (תגי יעד) כותבים
allow-health-check. - מגדירים את Source filter בתור IPv4 ranges.
- מגדירים את Source IPv4 ranges ל-
130.211.0.0/22ול-35.191.0.0/16. - בקטע פרוטוקולים ויציאות, בוחרים באפשרות פרוטוקולים ויציאות ספציפיים.
- בוחרים באפשרות TCP ומזינים את הערך
80בשדה של מספר היציאה. - לוחצים על יצירה.
- מזינים שם של
לוחצים שוב על Create firewall rule (יצירת כלל חומת אש) כדי ליצור את הכלל שיאפשר חיבורי SSH נכנסים:
- Name (שם):
fw-allow-ssh - רשת: NETWORK
- עדיפות:
1000 - כיוון התנועה: כניסה
- פעולה במקרה של התאמה: לאפשר
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
allow-ssh - מסנן מקור: טווחים של כתובות IPv4
- טווחי IPv4 של המקור:
0.0.0.0/0 - פרוטוקולים ויציאות: בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- בוחרים באפשרות TCP ומזינים את הערך
22בשדה של מספר היציאה. - לוחצים על יצירה.
- Name (שם):
לוחצים שוב על Create firewall rule (יצירת כלל לחומת האש) כדי ליצור את הכלל שיאפשר חיבורים נכנסים מתת-הרשת של שרת proxy בלבד:
- Name (שם):
fw-allow-proxy-only-subnet - רשת: NETWORK
- עדיפות:
1000 - כיוון התנועה: כניסה
- פעולה במקרה של התאמה: לאפשר
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
allow-proxy-only-subnet - מסנן מקור: טווחים של כתובות IPv4
- טווחי IPv4 של המקור: PROXY_ONLY_SUBNET_RANGE1 ו-PROXY_ONLY_SUBNET_RANGE2
- פרוטוקולים ויציאות: בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- בוחרים באפשרות TCP ומזינים את הערך
80בשדה של מספר היציאה. - לוחצים על יצירה.
- Name (שם):
gcloud
יוצרים את הכלל
fw-allow-health-check-and-proxyכדי לאפשר לבדיקות התקינות להגיע לשרתים העורפיים ביציאת TCP80: Google Cloudgcloud 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יוצרים את כלל חומת האש
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יוצרים כלל חומת אש שמאפשר תעבורת נתונים נכנסת (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_RANGE1,PROXY_ONLY_SUBNET_RANGE2 \ --rules=tcp:80
הגדרת ה-NEG האזורי
לשרתי קצה עורפיים שמבוססים על Google Cloud, מומלץ להגדיר כמה קבוצות אזוריות של נקודות קצה ברשת (NEGs) באותו אזור שבו הגדרתם קישוריות היברידית.
בדוגמה הזו, הגדרנו NEG אזורי (עם נקודות קצה מסוג GCE_VM_IP_PORT) באזור REGION1. קודם יוצרים את המכונות הווירטואליות באזור NEG_ZONE1. לאחר מכן, יוצרים NEG אזורי ב-NEG_ZONE2 ומוסיפים ל-NEG את נקודות הקצה ברשת של מכונות ה-VM.
כדי לתמוך בזמינות גבוהה, הגדרנו NEG אזורי דומה באזור REGION2
region. אם השרתים העורפיים באזור מסוים מושבתים, התעבורה מועברת לאזור אחר.
יצירת מכונות וירטואליות
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
חוזרים על שלבים 3 עד 8 לכל מכונה וירטואלית, באמצעות השילובים הבאים של שם ואזור.
- שם: של
vm-a1- אזור: NEG_ZONE1 באזור REGION_A
- תת-רשת: SUBNET_A
- שם: של
vm-b1- אזור: NEG_ZONE2 באזור REGION_B
- תת-רשת: SUBNET_B
- שם: של
לוחצים על Create instance.
מגדירים את השם כמו שצוין בשלב הקודם.
בקטע Region, בוחרים את האזור שצוין בשלב הקודם.
בקטע Zone, בוחרים את האזור כמו שמוסבר בשלב הקודם.
בקטע Boot disk מוודאים שהאפשרות Debian GNU/Linux 12 (bookworm) מסומנת באפשרויות של דיסק האתחול. לוחצים על בחירה כדי לשנות את התמונה, אם צריך.
בקטע אפשרויות מתקדמות, מרחיבים את רשת ומבצעים את הפעולות הבאות:
- מוסיפים את תגי הרשת הבאים:
allow-ssh,allow-health-checkו-allow-proxy-only-subnet. - בקטע Network interfaces (ממשקי רשת), לוחצים על Add a network interface (הוספת ממשק רשת), מבצעים את השינויים הבאים ואז לוחצים על Done (סיום):
- רשת: NETWORK
- Subnetwork (רשת משנה): כמו שצוין בשלב הקודם.
- כתובת IP פנימית ראשית: זמנית (אוטומטית)
- כתובת IP חיצונית: זמנית
מרחיבים את האפשרות Management. בשדה Automation, מעתיקים ומדביקים את תוכן הסקריפט הבא. תוכן הסקריפט זהה בכל המכונות הווירטואליות:
#! /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
- מוסיפים את תגי הרשת הבאים:
לוחצים על יצירה.
gcloud
כדי ליצור את המכונות הווירטואליות, מריצים את הפקודה הבאה ומשתמשים בשילובים האלה לשם של המכונה הווירטואלית והאזור שלה. תוכן הסקריפט זהה בשתי המכונות הווירטואליות.
VM_NAMEמתוךvm-a1- האזור
GCP_NEG_ZONEבתור NEG_ZONE1 באזורREGION_A - תת-הרשת
LB_SUBNET_NAMEבתור SUBNET_A
- האזור
VM_NAMEמתוךvm-b1- אזור
GCP_NEG_ZONEבתור NEG_ZONE2 באזורREGION_B - תת-רשת
LB_SUBNET_NAMEבתור SUBNET_B
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 האזורי
המסוף
כדי ליצור קבוצת נקודות קצה ברשת אזורית:
נכנסים לדף Network Endpoint Groups במסוף Google Cloud .
חוזרים על שלבים 3 עד 8 לכל קבוצת NEG אזורית, באמצעות השילובים הבאים של שם ואזור:
- שם:
neg-1- אזור: NEG_ZONE1 באזור
REGION_A - תת-רשת: SUBNET_A
- אזור: NEG_ZONE1 באזור
- שם:
neg-2- אזור: NEG_ZONE2 באזור
REGION_B - תת-רשת: SUBNET_B
- אזור: NEG_ZONE2 באזור
- שם:
לוחצים על יצירת קבוצת נקודות קצה ברשת.
מגדירים את השם כמו שצוין בשלב הקודם.
בוחרים את סוג קבוצת נקודות הקצה ברשת: קבוצת נקודות קצה ברשת (אזורית).
בוחרים באפשרות רשת: NETWORK
בוחרים באפשרות Subnetwork (רשת משנה) כמו שצוין בשלב הקודם.
בוחרים באפשרות אזור כמו שמוצג בשלב הקודם.
מזינים את יציאת ברירת המחדל:
80.לוחצים על יצירה.
מוסיפים נקודות קצה ל-NEG האזורי:
נכנסים לדף Network Endpoint Groups במסוף Google Cloud .
לוחצים על שם קבוצת נקודות הקצה ברשת שנוצרה בשלב הקודם. יוצג הדף Network endpoint group details.
בקטע Network endpoints in this group (נקודות קצה ברשת בקבוצה הזו), לוחצים על Add network endpoint (הוספת נקודת קצה ברשת). מוצג הדף Add network endpoint.
בוחרים מכונה וירטואלית כדי להוסיף את כתובות ה-IP הפנימיות שלה כנקודות קצה ברשת. בקטע Network interface (ממשק רשת), מוצגים השם, האזור ורשת המשנה של מכונת ה-VM.
מזינים את כתובת ה-IP של נקודת הקצה החדשה ברשת.
בוחרים את סוג היציאה.
- אם בוחרים באפשרות ברירת מחדל, נקודת הקצה משתמשת ביציאת ברירת המחדל
80לכל נקודות הקצה בקבוצת נקודות הקצה ברשת. זה מספיק לדוגמה שלנו כי שרת Apache משרת בקשות ביציאה80. - אם בוחרים באפשרות בהתאמה אישית, מזינים את מספר היציאה של נקודת הקצה שבה רוצים להשתמש.
- אם בוחרים באפשרות ברירת מחדל, נקודת הקצה משתמשת ביציאת ברירת המחדל
כדי להוסיף עוד נקודות קצה, לוחצים על הוספת נקודת קצה ברשת וחוזרים על השלבים הקודמים.
אחרי שמוסיפים את כל נקודות הקצה, לוחצים על יצירה.
gcloud
יוצרים קבוצות NEGs אזוריות (עם נקודות קצה של
GCE_VM_IP_PORT) באמצעות שילובים של שם, אזור ורשת משנה. משתמשים בפקודהgcloud compute network-endpoint-groups create.- שם:
neg-1- אזור
GCP_NEG_ZONE: NEG_ZONE1 באזורREGION_A - רשת משנה
LB_SUBNET_NAME: SUBNET_A
- אזור
- שם:
neg-2- אזור
GCP_NEG_ZONE: NEG_ZONE2 באזורREGION_B - רשת משנה
LB_SUBNET_NAME: SUBNET_B
- אזור
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, או לציין מספר יציאה לכל נקודת קצה, כמו שמוצג בשלב הבא.- שם:
מוסיפים נקודות קצה ל-
neg1ול-neg2.gcloud compute network-endpoint-groups update neg1 \ --zone=NEG_ZONE1 \ --add-endpoint='instance=vm-a1,port=80'gcloud compute network-endpoint-groups update neg2 \ --zone=NEG_ZONE2 \ --add-endpoint='instance=vm-b1,port=80'
הגדרת NEG קישוריות היברידית
כשיוצרים את ה-NEG, צריך להשתמש באזור שממזער את המרחק הגיאוגרפי בין Google Cloud לבין הסביבה המקומית או סביבת Cloud אחרת.
אם אתם משתמשים ב-Cloud Interconnect, האזור שבו השתמשתם כדי ליצור את ה-NEG נמצא באותו אזור שבו הוגדר צירוף ל-Interconnect.
קבוצות משנה היברידיות של נקודות קצה ברשת תומכות רק בבדיקות תקינות מבוזרות של Envoy.
המסוף
כדי ליצור קבוצה של נקודות קצה ברשת עם קישוריות היברידית:
נכנסים לדף Network Endpoint Groups במסוף Google Cloud .
לוחצים על יצירת קבוצת נקודות קצה ברשת.
חוזרים על שלבים 4 עד 9 לכל NEG היברידי, באמצעות השילובים הבאים של שם ואזור.
- שם ON_PREM_NEG_NAME:
hybrid-1- אזור: ON_PREM_NEG_ZONE1
- תת-רשת: SUBNET_A
- שם ON_PREM_NEG_NAME:
hybrid-2- אזור: ON_PREM_NEG_ZONE2
- תת-רשת: SUBNET_B
- שם ON_PREM_NEG_NAME:
מגדירים את השם כמו שצוין בשלב הקודם.
בוחרים את הסוג של קבוצת נקודות קצה ברשת: קבוצה של נקודות קצה ברשת (אזורית) לקישוריות היברידית.
בוחרים באפשרות רשת: NETWORK
בקטע Subnet, בוחרים באפשרות שצוינה בשלב הקודם.
בשדה Zone, בוחרים את האזור כמו שמוסבר בשלב הקודם.
מזינים את יציאת ברירת המחדל.
לוחצים על יצירה.
הוספת נקודות קצה ל-NEG של קישוריות היברידית:
נכנסים לדף Network Endpoint Groups במסוף Google Cloud .
לוחצים על שם קבוצת נקודות הקצה ברשת שנוצרה בשלב הקודם. יוצג הדף Network endpoint group detail.
בקטע Network endpoints in this group (נקודות קצה ברשת בקבוצה הזו), לוחצים על Add network endpoint (הוספת נקודת קצה ברשת). מוצג הדף Add network endpoint.
מזינים את כתובת ה-IP של נקודת הקצה החדשה ברשת.
בוחרים את סוג היציאה.
- אם בוחרים באפשרות ברירת מחדל, נקודת הקצה משתמשת ביציאת ברירת המחדל לכל נקודות הקצה בקבוצת נקודות הקצה ברשת.
- אם בוחרים באפשרות בהתאמה אישית, אפשר להזין מספר יציאה אחר לשימוש בנקודת הקצה.
כדי להוסיף עוד נקודות קצה, לוחצים על הוספת נקודת קצה ברשת וחוזרים על השלבים הקודמים.
אחרי שמוסיפים את כל נקודות הקצה שאינןGoogle Cloud , לוחצים על יצירה.
gcloud
יוצרים NEG קישוריות היברידית עם שילובי השמות הבאים. משתמשים בפקודה
gcloud compute network-endpoint-groups create.- שם
ON_PREM_NEG_NAME:hybrid-1- אזור
ON_PREM_NEG_ZONE: ON_PREM_NEG_ZONE1
- אזור
- שם
ON_PREM_NEG_NAME:hybrid-2- אזור
GCP_NEG_ZONE: ON_PREM_NEG_ZONE2
- אזור
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- שם
מוסיפים את נקודת הקצה של המכונה הווירטואלית של ה-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
מגדירים את בדיקת התקינות של TCP באמצעות הפקודה
gcloud compute health-checks create tcp.gcloud compute health-checks create tcp gil4-basic-check \ --use-serving-port \ --global
יוצרים את שירות לקצה העורפי ומפעילים את הרישום ביומן באמצעות הפקודה
gcloud compute backend-services create.gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=TCP \ --enable-logging \ --logging-sample-rate=1.0 \ --health-checks=gil4-basic-check \ --global-health-checks \ --global
מוסיפים קצה עורפי לשירות הקצה העורפי באמצעות הפקודה
gcloud compute backend-services add-backend.gcloud compute backend-services add-backend BACKEND_SERVICE \ --global \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=MAX_CONNECTIONS \ --network-endpoint-group=neg1 \ --network-endpoint-group-zone=NEG_ZONE1 \ --network-endpoint-group=neg2 \ --network-endpoint-group-zone=NEG_ZONE2
פרטים על הגדרת מצב האיזון מופיעים במסמכי התיעוד של ה-CLI של gcloud בנושא הדגל
--max-connections-per-endpoint. בשדה MAX_CONNECTIONS, מזינים את המספר המקסימלי של חיבורים בו-זמניים שהקצה העורפי יכול לטפל בהם.מוסיפים את קבוצות ה-NEG ההיברידיות כקצה עורפי לשירות הקצה העורפי.
gcloud compute backend-services add-backend BACKEND_SERVICE \ --global \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=MAX_CONNECTIONS \ --network-endpoint-group=hybrid1 \ --network-endpoint-group-zone=ON_PREM_NEG_ZONE1 \ --network-endpoint-group=hybrid2 \ --network-endpoint-group-zone=ON_PREM_NEG_ZONE2 \
פרטים על הגדרת מצב האיזון מופיעים במסמרי העזרה של ה-CLI של gcloud בנושא הפרמטר
--max-connections-per-endpoint. בשדהMAX_CONNECTIONS, מזינים את המספר המקסימלי של חיבורים בו-זמניים שהקצה העורפי יכול לטפל בהם.יוצרים את שרת ה-proxy של היעד.
יוצרים את שרת ה-proxy של היעד באמצעות הפקודה
gcloud compute target-tcp-proxies create.gcloud compute target-tcp-proxies create gil4-tcp-proxy \ --backend-service=BACKEND_SERVICE \ --global
יוצרים שני כללי העברה, אחד עם כתובת VIP IP_ADDRESS1 ב-REGION_A ואחד עם כתובת VIP IP_ADDRESS2 ב-
REGION_B. לכתובת ה-IP של כלל ההעברה, משתמשים בטווח כתובות ה-IP LB_SUBNET_RANGE1 או LB_SUBNET_RANGE2. אם מנסים להשתמש ברשת המשנה proxy-only, יצירת כלל ההעברה נכשלת.ברשתות מותאמות אישית, צריך להפנות לרשת המשנה בכלל ההעברה. חשוב לדעת: זוהי רשת המשנה של המכונה הווירטואלית, ולא רשת המשנה של ה-proxy.
משתמשים בפקודה
gcloud compute forwarding-rules createעם הדגלים המתאימים.gcloud compute forwarding-rules create gil4-forwarding-rule-a \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=SUBNET_A \ --subnet-region=REGION_A \ --address=IP_ADDRESS1 \ --ports=80 \ --target-tcp-proxy=gil4-tcp-proxy \ --global
gcloud compute forwarding-rules create gil4-forwarding-rule-b \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=SUBNET_B \ --subnet-region=REGION_B \ --address=IP_ADDRESS2 \ --ports=80 \ --target-tcp-proxy=gil4-tcp-proxy \ --global
בדיקת מאזן העומסים
יצירת מכונת VM לבדיקת הקישוריות
יצירת מכונות וירטואליות (VM) של לקוחות ב-
REGION_Aוב-REGION_Bובאזורים:gcloud compute instances create l4-ilb-client-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --network=NETWORK \ --subnet=SUBNET_A \ --zone=NEG_ZONE1 \ --tags=allow-sshgcloud compute instances create l4-ilb-client-b \ --image-family=debian-12 \ --image-project=debian-cloud \ --network=NETWORK \ --subnet=SUBNET_B \ --zone=NEG_ZONE2 \ --tags=allow-sshמשתמשים ב-SSH כדי להתחבר לכל מכונת לקוח.
gcloud compute ssh l4-ilb-client-a \ --zone=NEG_ZONE1
gcloud compute ssh l4-ilb-client-b \ --zone=NEG_ZONE2
מוודאים שכתובת ה-IP משרתת את שם המארח שלה.
מוודאים שהמכונה הווירטואלית של הלקוח יכולה להגיע לשתי כתובות ה-IP. הפקודה אמורה להצליח ולהחזיר את השם של המכונה הווירטואלית בעורף שהגיבה לבקשה:
curl IP_ADDRESS1
curl IP_ADDRESS2
הפעלת 100 בקשות
מריצים 100 בקשות curl ומוודאים מהתשובות שהן מאוזנות מבחינת העומס.
מוודאים שהמכונה הווירטואלית של הלקוח יכולה להגיע לשתי כתובות ה-IP. הפקודה אמורה להצליח ולהחזיר את השם של מכונת ה-VM של ה-Backend שטיפלה בבקשה:
{ RESULTS= for i in {1..100} do RESULTS="$RESULTS:$(curl --silent IP_ADDRESS1)" done echo "***" echo "*** Results of load-balancing to IP_ADDRESS1: " echo "***" echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c echo }{ RESULTS= for i in {1..100} do RESULTS="$RESULTS:$(curl --silent IP_ADDRESS2)" done echo "***" echo "*** Results of load-balancing to IP_ADDRESS2: " echo "***" echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c echo }
בדיקת מעבר לגיבוי (failover)
לוודא שמתבצע מעבר לגיבוי (failover) לשרתי קצה עורפיים באזור
REGION_Aאם שרתי הקצה העורפיים באזורREGION_Bלא תקינים או לא נגישים. אנחנו מדמים את זה על ידי הסרת כל שרתי הקצה העורפיים מ-REGION_B:gcloud compute backend-services remove-backend BACKEND_SERVICE \ --balancing-mode=CONNECTION \ --network-endpoint-group=neg2 \ --network-endpoint-group-zone=NEG_ZONE2
משתמשים ב-SSH כדי להתחבר למכונה הווירטואלית של הלקוח ב-
REGION_B.gcloud compute ssh l4-ilb-client-b \ --zone=NEG_ZONE2
שליחת בקשות לכתובת ה-IP של מאזן העומסים באזור
REGION_B. פלט הפקודה צריך להציג תגובות ממכונות וירטואליות בעורף המערכת ב-REGION_A.{ RESULTS= for i in {1..100} do RESULTS="$RESULTS:$(curl --silent IP_ADDRESS2)" done echo "***" echo "*** Results of load-balancing to IP_ADDRESS2: " echo "***" echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c echo }
המאמרים הבאים
- המרת מאזן עומסי רשת לשרת proxy ל-IPv6
- סקירה כללית על מאזן עומסי רשת פנימי לשרת proxy
- תת-רשתות של שרת proxy בלבד למאזני עומסים מבוססי Envoy
- ניקוי הגדרות של איזון עומסים