ב- Google Cloud, אפשר לשלב מכשירי צד שלישי בצורה זמינה מאוד, עם יכולת הרחבה. כדי לעשות את זה, מגדירים נתיב סטטי ומגדירים את הניתוב הבא שלו ל Google Cloud מאזן עומסי הרשת הפנימי להעברת סיגנל ללא שינוי. כך מאזן העומסים יכול לאזן את העומס של תעבורת נתונים עבור קידומת יעד למאגר של מכשירי VM של צד שלישי שנבדקו.
במדריך הזה נשתמש בדוגמה כדי להסביר איך להגדיר מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי בתור הצעד הבא. לפני שתקראו את המדריך הזה, כדאי שתכירו את המושגים הבאים:
- מושגים שקשורים למאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי
- מאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי כנקודות מעבר (next hops)
הרשאות
כדי לפעול לפי המדריך הזה, צריך ליצור מופעים ולשנות רשת בפרויקט. צריכות להיות לכם הרשאות בעלים או עריכה בפרויקט, או שצריכים להיות לכם כל תפקידי ה-IAM הבאים ב-Compute Engine:
| משימה | התפקיד הנדרש |
|---|---|
| יצירת רשתות, רשתות משנה ורכיבים של מאזן עומסים | אדמין רשתות |
| הוספה והסרה של כללים לחומת האש | Security Admin |
| יצירת מופעים | Compute Instance Admin |
מידע נוסף זמין במדריכים הבאים:
הגדרת מאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי כנקודות קפיצה הבאות עם מערכות בק-אנד משותפות
במדריך הזה מוסבר איך להשתמש במאזן עומסי רשת פנימי מסוג passthrough כנקודת המעבר הבאה במסלול סטטי, כדי לשלב מכשירים וירטואליים עם יכולת הרחבה.
הפתרון שמתואר במדריך הזה יוצר מכונות וירטואליות של מכשירים שמריצות Debian Linux. המכונות הווירטואליות בדוגמה לא מבצעות סינון חבילות, אבל אתם יכולים להוסיף את הפונקציונליות הזו על ידי שינוי הגדרות הרשת בדוגמה הזו או על ידי שימוש בתוכנה אחרת לסינון חבילות או לניתוב.
בשלבים שבקטע הזה מוסבר איך להגדיר את המשאבים הבאים:
- דוגמה לרשתות VPC ולרשתות משנה בהתאמה אישית
- Google Cloud כללי חומת אש שמאפשרים חיבורים נכנסים למכונות וירטואליות (VM) של מכשירי קצה בעורף
- מסלולים סטטיים
- שתי מכונות וירטואליות של לקוחות לבדיקת חיבורים
- הרכיבים הבאים של מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי:
- מכונות וירטואליות בבק-אנד בקבוצת מופעי מכונה מנוהלים (MIG)
- בדיקת תקינות של מכונות וירטואליות (VM) בעורף
- שירות פנימי לקצה העורפי באזור
us-west1לניהול חלוקת החיבורים בין המכונות הווירטואליות בקצה העורפי - כלל העברה פנימי וכתובת IP פנימית לחלק הקדמי של מאזן העומסים
בדוגמה הזו מוצג איזון עומסים לכמה כרטיסי NIC בקצה העורפי, כפי שמתואר במאמר איזון עומסים לכמה כרטיסי NIC.
הטופולוגיה נראית כך:
בתרשים מוצגים חלק מהמשאבים שנוצרו בדוגמה:
- מופעי אפליקציות מאחורי מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי (
fr-ilb1, בדוגמה הזו). למכונות של האפליקציה יש רק כתובות IP פנימיות. - בכל מופע של אפליקציה מופעל הדגל
can-ip-forward. בלי הדגל הזה, מכונה וירטואלית ב-Compute Engine יכולה להעביר מנה רק אם כתובת ה-IP של המקור במנה זהה לכתובת ה-IP הפנימית של המכונה, לכתובת IP מטווח של כתובות IP של כינוי או לכתובת IP של כלל העברה שמפנה למכונה. הדגלcan-ip-forwardמשנה את ההתנהגות הזו, כך שהמכונה הווירטואלית יכולה לשדר חבילות עם כל כתובת IP של מקור. - מסלול סטטי עם יעד
10.50.1.0/24והצעד הבא מוגדר לכלל ההעברה של מאזן העומסים,fr-ilb1.
בתרשים מוצג גם זרימת התנועה:
- ברשת ה-VPC
testingיש נתיב סטטי לתעבורה שמיועדת לתת-הרשת10.50.1.0/24. המסלול הזה מנתב את תעבורת הנתונים למאזן העומסים. - מאזן העומסים מעביר את התעבורה לאחד מהמופעים של האפליקציה על סמך זיקה לסשן (session affinity) שהוגדרה. (זיקה לסשן (session affinity) משפיעה רק על תעבורת TCP).
תרחישי שימוש נוספים מפורטים במאמר מאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי כנקודות מעבר הבאות.
הגדרת הרשתות, האזור ורשתות המשנה
בדוגמה הזו נעשה שימוש ברשתות VPC, באזור ובתת-רשתות הבאים:
רשתות: בדוגמה הזו נדרשות שתי רשתות, שלכל אחת מהן יש לפחות רשת משנה אחת. לכל מכונה וירטואלית של מכשיר צד שלישי בקצה העורפי צריכים להיות לפחות שני ממשקי רשת, אחד בכל רשת VPC. הרשתות בדוגמה הזו הן רשתות VPC במצב מותאם אישית בשמות
testingו-production. הרשתtestingבדוגמה הזו מכילה את הלקוח ואת מאזן העומסים. הרשתproductionמכילה את מכונת ה-VM של יעד ההעברה.אזור: תת-הרשתות ממוקמות באזור
us-west1. תת-הרשתות צריכות להיות באותו אזור כי מכונות וירטואליות הן משאבים אזוריים.רשתות משנה: רשתות המשנה,
testing-subnetו-production-subnet, משתמשות בטווחים של כתובות ה-IP הראשיות10.30.1.0/24ו-10.50.1.0/24, בהתאמה.
כדי ליצור את הרשתות ורשתות המשנה לדוגמה, פועלים לפי השלבים הבאים.
המסוף
יוצרים את הרשת testing ואת testing-subnet:
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על יצירת רשת VPC.
מזינים שם של
testing.בקטע Subnets (רשתות משנה):
- מגדירים את מצב יצירת רשתות משנה לבהתאמה אישית.
- בקטע New subnet (רשת משנה חדשה), מזינים את הפרטים הבאים:
- Name (שם):
testing-subnet - אזור:
us-west1 - טווח כתובות IP:
10.30.1.0/24 - לוחצים על סיום.
- Name (שם):
לוחצים על יצירה.
יוצרים את הרשת production ואת production-subnet:
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על יצירת רשת VPC.
מזינים שם של
production.בקטע Subnets (רשתות משנה):
- מגדירים את מצב יצירת רשתות משנה לבהתאמה אישית.
- בקטע New subnet (רשת משנה חדשה), מזינים את הפרטים הבאים:
- Name (שם):
production-subnet - אזור:
us-west1 - טווח כתובות IP:
10.50.1.0/24 - לוחצים על סיום.
- Name (שם):
לוחצים על יצירה.
gcloud
יוצרים את רשתות ה-VPC במצב מותאם אישית:
gcloud compute networks create testing --subnet-mode=custom
gcloud compute networks create production --subnet-mode=custom
יוצרים רשתות משנה ברשתות
testingו-productionבאזורus-west1:gcloud compute networks subnets create testing-subnet \ --network=testing \ --range=10.30.1.0/24 \ --region=us-west1gcloud compute networks subnets create production-subnet \ --network=production \ --range=10.50.1.0/24 \ --region=us-west1
הגדרת כללים לחומת אש
בדוגמה הזו נעשה שימוש בכללים הבאים של חומת האש:
fw-allow-testing-from-both: כלל תעבורה נכנסת, שחל על כל היעדים ברשתtesting. הכלל הזה מאפשר תנועה ממקורות בטווחים של כתובות ה-IP10.30.1.0/24ו-10.50.1.0/24. שני הטווחים האלה כוללים את כתובות ה-IP הפנימיות הראשיות של מכונות וירטואליות בשתי הרשתות.
fw-allow-production-from-both: כלל תעבורה נכנסת, שחל על כל היעדים ברשתproduction. הכלל הזה מאפשר תנועה ממקורות בטווחים של כתובות ה-IP10.30.1.0/24ו-10.50.1.0/24. שני הטווחים האלה כוללים את כתובות ה-IP הפנימיות הראשיות של מכונות וירטואליות בשתי הרשתות.
fw-allow-testing-ssh: כלל תעבורה נכנסת שחל על המכונות הווירטואליות ברשת ה-VPCtesting. הכלל הזה מאפשר קישוריות SSH נכנסת ביציאת TCP22מכל כתובת. אפשר לבחור טווח IP של מקור מגביל יותר לכלל הזה. לדוגמה, אפשר לציין את טווחי ה-IP של המערכות שמהן אתם מתכננים להפעיל סשנים של SSH. בדוגמה הזו נעשה שימוש בתג היעדallow-sshכדי לזהות את המכונות הווירטואליות שהכלל של חומת האש חל עליהן.
fw-allow-production-ssh: כלל תעבורה נכנסת שחל על המכונות הווירטואליות ברשת ה-VPCproduction. הכלל הזה מאפשר קישוריות SSH נכנסת ביציאת TCP22מכל כתובת. בדומה לכללfw-allow-testing-ssh, אפשר לבחור לכלל הזה טווח כתובות IP של מקור שהוא מגביל יותר.
fw-allow-health-check: כלל כניסה למכונות וירטואליות של מכשיר צד שלישי שעוברות איזון עומסים. הכלל הזה מאפשר תעבורה מGoogle Cloud טווחים של בדיקות תקינות. בדוגמה הזו נעשה שימוש בתג היעדallow-health-checkכדי לזהות את המקרים שבהם צריך להחיל את הכלל.
fw-allow-production-health-check: כלל כניסה למכונות וירטואליות של מכשיר צד שלישי שעוברות איזון עומסים. הכלל הזה מאפשר תעבורה מGoogle Cloud טווחים של בדיקות תקינות. בדוגמה הזו נעשה שימוש בתג היעדallow-health-checkכדי לזהות את המקרים שבהם צריך להחיל את הכלל.
בלי כללי חומת האש האלה, הכלל default deny ingress חוסם תנועה נכנסת למופעי ה-Backend. צריך ליצור כלל של חומת אש כדי לאפשר בדיקות תקינות מטווחי כתובות ה-IP של מערכות הבדיקה של Google Cloud . מידע נוסף זמין במאמר בנושא טווחים של כתובות IP של בדיקות.
המסוף
נכנסים לדף Firewall policies במסוף Google Cloud .
לוחצים על יצירת כלל חומת אש ומזינים את הפרטים הבאים כדי ליצור את הכלל שיאפשר למכונות וירטואליות לבדיקה לקבל מנות נתונים מרשתות המשנה של הבדיקה ושל הייצור:
- Name (שם):
fw-allow-testing-from-both - רשת:
testing - עדיפות:
1000 - כיוון התנועה: נכנסת (ingress)
- פעולה במקרה של התאמה: לאפשר
- יעדים: כל המופעים ברשת
- מסנן מקור: טווחים של כתובות IPv4
- טווחים של כתובות IPv4 של המקור:
10.30.1.0/24,10.50.1.0/24 - פרוטוקולים ויציאות: אישור כל הפרוטוקולים והיציאות
- Name (שם):
לוחצים על יצירה.
לוחצים על יצירת כלל חומת אש ומזינים את הפרטים הבאים כדי ליצור את הכלל שיאפשר למכונות וירטואליות בסביבת הייצור לקבל מנות נתונים מרשתות המשנה של הבדיקה ושל הייצור:
- Name (שם):
fw-allow-production-from-both - רשת:
production - עדיפות:
1000 - כיוון התנועה: נכנסת (ingress)
- פעולה במקרה של התאמה: לאפשר
- יעדים: כל המופעים ברשת
- מסנן מקור: טווחים של כתובות IPv4
- טווחים של כתובות IPv4 של המקור:
10.30.1.0/24,10.50.1.0/24 - פרוטוקולים ויציאות: אישור כל הפרוטוקולים והיציאות
- Name (שם):
לוחצים על יצירה.
לוחצים על Create firewall rule (יצירת כלל חומת אש) כדי ליצור את הכלל שיאפשר חיבורי SSH נכנסים בסביבת הבדיקה:
- Name (שם):
fw-allow-testing-ssh - רשת:
testing - עדיפות:
1000 - כיוון התנועה: נכנסת (ingress)
- פעולה במקרה של התאמה: לאפשר
- יעדים: תגי יעד שצוינו
- תגי יעד:
allow-ssh - מסנן מקור: טווחים של כתובות IPv4
- טווחים של כתובות IPv4 של המקור:
0.0.0.0/0 - פרוטוקולים ויציאות: בוחרים באפשרות פרוטוקולים ויציאות שצוינו ומקלידים:
tcp:22
- Name (שם):
לוחצים על יצירה.
לוחצים על Create firewall rule (יצירת כלל חומת אש) כדי ליצור את הכלל שיאפשר חיבורי SSH נכנסים בסביבת הייצור:
- Name (שם):
fw-allow-production-ssh - רשת:
production - עדיפות:
1000 - כיוון התנועה: נכנסת (ingress)
- פעולה במקרה של התאמה: לאפשר
- יעדים: תגי יעד שצוינו
- תגי יעד:
allow-ssh - מסנן מקור: טווחים של כתובות IPv4
- טווחים של כתובות IPv4 של המקור:
0.0.0.0/0 - פרוטוקולים ויציאות: בוחרים באפשרות פרוטוקולים ויציאות שצוינו ומקלידים:
tcp:22
- Name (שם):
לוחצים על יצירה.
לוחצים על יצירת כלל חומת אש כדי ליצור את הכלל שיאפשרGoogle Cloud בדיקות תקינות בסביבת הבדיקה:
- Name (שם):
fw-allow-health-check - רשת:
testing - עדיפות:
1000 - כיוון התנועה: נכנסת (ingress)
- פעולה במקרה של התאמה: לאפשר
- יעדים: תגי יעד שצוינו
- תגי יעד:
allow-health-check - מסנן מקור: טווחים של כתובות IPv4
- טווחי IPv4 של המקור:
35.191.0.0/16 - פרוטוקולים ויציאות:
tcp
- Name (שם):
לוחצים על יצירה.
לוחצים על יצירת כלל לחומת האש כדי ליצור את הכלל שיאפשרGoogle Cloud בדיקות תקינות בסביבת הייצור:
- Name (שם):
fw-allow-production-health-check - רשת:
production - עדיפות:
1000 - כיוון התנועה: נכנסת (ingress)
- פעולה במקרה של התאמה: לאפשר
- יעדים: תגי יעד שצוינו
- תגי יעד:
allow-health-check - מסנן מקור: טווחים של כתובות IPv4
- טווחי IPv4 של המקור:
35.191.0.0/16 - פרוטוקולים ויציאות:
tcp
- Name (שם):
לוחצים על יצירה.
gcloud
יוצרים את כלל חומת האש
fw-allow-testing-subnetכדי לאפשר למכונות הווירטואליות לבדיקה לקבל חבילות נתונים מתת-הרשתותtestingו-production:gcloud compute firewall-rules create fw-allow-testing-from-both \ --network=testing \ --action=allow \ --direction=ingress \ --source-ranges=10.30.1.0/24,10.50.1.0/24 \ --rules=allיוצרים את כלל חומת האש
fw-allow-production-subnetכדי לאפשר למכונות וירטואליות של סביבת הייצור לקבל מנות נתונים מתת-הרשתותtestingו-production:gcloud compute firewall-rules create fw-allow-production-from-both \ --network=production \ --action=allow \ --direction=ingress \ --source-ranges=10.30.1.0/24,10.50.1.0/24 \ --rules=allיוצרים את כלל חומת האש
fw-allow-testing-sshכדי לאפשר קישוריות SSH למכונות וירטואליות עם תג הרשתallow-ssh. אם לא מציינים אתsource-ranges,Google Cloud מפרש את הכלל כאילו הוא מתייחס לכל מקור.gcloud compute firewall-rules create fw-allow-testing-ssh \ --network=testing \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22יוצרים את כלל חומת האש
fw-allow-production-sshכדי לאפשר קישוריות SSH למכונות וירטואליות עם תג הרשתallow-ssh.gcloud compute firewall-rules create fw-allow-production-ssh \ --network=production \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22יוצרים את הכלל
fw-allow-health-checkכדי לאפשר Google Cloudבדיקות תקינות למכונות וירטואליות של מכשירי צד שלישי ברשתtesting.gcloud compute firewall-rules create fw-allow-testing-health-check \ --network=testing \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=35.191.0.0/16\ --rules=tcpיוצרים את כלל חומת האש
fw-allow-production-health-checkכדי לאפשר Google Cloud בדיקות תקינות של מכונות וירטואליות של מכשירי צד שלישי ברשתproduction.gcloud compute firewall-rules create fw-allow-production-health-check \ --network=production \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=35.191.0.0/16\ --rules=tcp
יצירת מכשירים וירטואליים של צד שלישי
בדוגמה הבאה מוסבר איך ליצור תבנית של הגדרות מכונה וקבוצה אזורית של מופעי מכונה מנוהלים עם יותר מממשק רשת אחד. קבוצת המופעים הזו משמשת כמכשיר וירטואלי של צד שלישי בדוגמה הזו.
המסוף
חובה להשתמש ב-gcloud בשלב הזה כי צריך ליצור תבנית של מכונה עם יותר מממשק רשת אחד. בשלב הזה, Google Cloud המסוף לא תומך ביצירת תבניות של מכונות עם יותר מממשק רשת אחד.
gcloud
יוצרים קובץ מקומי בשם
config.shומזינים בו את התוכן הבא:#!/bin/bash # Enable IP forwarding: echo 1 > /proc/sys/net/ipv4/ip_forward echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/20-example.conf # Read VM network configuration: md_vm="http://metadata.google.internal/computeMetadata/v1/instance/" md_net="$md_vm/network-interfaces" nic0_gw="$(curl $md_net/0/gateway -H "Metadata-Flavor:Google" )" nic0_mask="$(curl $md_net/0/subnetmask -H "Metadata-Flavor:Google")" nic0_addr="$(curl $md_net/0/ip -H "Metadata-Flavor:Google")" nic0_id="$(ip addr show | grep $nic0_addr | awk '{print $NF}')" nic1_gw="$(curl $md_net/1/gateway -H "Metadata-Flavor:Google")" nic1_mask="$(curl $md_net/1/subnetmask -H "Metadata-Flavor:Google")" nic1_addr="$(curl $md_net/1/ip -H "Metadata-Flavor:Google")" nic1_id="$(ip addr show | grep $nic1_addr | awk '{print $NF}')" # Source based policy routing for nic1 echo "100 rt-nic1" >> /etc/iproute2/rt_tables sudo ip rule add pri 32000 from $nic1_gw/$nic1_mask table rt-nic1 sleep 1 sudo ip route add 35.191.0.0/16 via $nic1_gw dev $nic1_id table rt-nic1 sudo ip route add 130.211.0.0/22 via $nic1_gw dev $nic1_id table rt-nic1 # Use a web server to pass the health check for this example. # You should use a more complete test in production. sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl echo "Example web page to pass health check" | \ tee /var/www/html/index.html sudo systemctl restart apache2
יוצרים תבנית של הגדרות מכונה למכשירים וירטואליים של צד שלישי. תבנית של הגדרות מכונה חייבת לכלול את הדגל
--can-ip-forwardכדי שמופעי מכונות וירטואליות שנוצרו מהתבנית יוכלו להעביר מנות ממופעים אחרים ברשתותtestingו-production.gcloud compute instance-templates create third-party-template-multinic \ --region=us-west1 \ --network-interface subnet=testing-subnet,address="" \ --network-interface subnet=production-subnet \ --tags=allow-ssh,allow-health-check,my-network-tag \ --image-family=debian-12 \ --image-project=debian-cloud \ --can-ip-forward \ --metadata-from-file=startup-script="config.sh"יוצרים קבוצה של מופעי מכונה מנוהלים עבור מכשירים וירטואליים של צד שלישי. הפקודה הזו יוצרת קבוצה אזורית של מופעי מכונה מנוהלים, שאפשר להפעיל בה קנה מידה אוטומטי, באזור
us-west1.gcloud compute instance-groups managed create third-party-instance-group \ --region=us-west1 \ --template=third-party-template-multinic \ --size=3
יצירת משאבי איזון העומסים
בשלבים האלה מוגדרים כל הרכיבים הפנימיים של מאזן עומסי רשת מסוג Network Load Balancer להעברת סיגנל ללא שינוי, החל מבדיקת תקינות ושירות לקצה העורפי, ולאחר מכן רכיבי הקצה הקדמי:
בדיקת תקינות. בדוגמה הזו, בדיקת תקינות HTTP בודקת תגובת HTTP
200(OK). מידע נוסף זמין בקטע בדיקת תקינות.שירות לקצה העורפי. למרות שבשירות הקצה העורפי בדוגמה הזו מצוין פרוטוקול TCP, כשמאזן העומסים הוא הניתור הבא במסלול,Google Cloud הוא מעביר תנועה לכל הפרוטוקולים (TCP, UDP ו-ICMP).
כלל העברה. למרות שכלל ההעברה הזה מציין יציאת TCP מספר 80, כשמאזן העומסים הוא הצעד הבא במסלול, תעבורת נתונים בכל יציאת TCP או UDP נשלחת אל השרתים העורפיים של מאזן העומסים.
כתובת IP פנימית. בדוגמה הזו, כתובת ה-IP הפנימית שצוינה לכלל ההעברה היא
10.30.1.99.
המסוף
התחלת ההגדרה
נכנסים לדף Load balancing במסוף Google Cloud .
- לוחצים על Create load balancer (יצירת מאזן עומסים).
- בקטע Type of load balancer (סוג מאזן העומסים), בוחרים באפשרות Network Load Balancer (TCP/UDP/SSL) (מאזן עומסים ברשת (TCP/UDP/SSL)) ולוחצים על Next (הבא).
- בקטע Proxy or passthrough (פרוקסי או העברה), בוחרים באפשרות Passthrough load balancer (מאזן עומסים להעברה) ולוחצים על Next (הבא).
- בקטע גלוי לכולם או פנימי, בוחרים באפשרות פנימי ולוחצים על הבא.
- לוחצים על Configure (הגדרה).
יצירת מאזן העומסים הראשון
- בשדה Load Balancer name, מזינים
ilb1. - ברשימה Region בוחרים באזור
us-west1. - ברשימה Network בוחרים באפשרות
testing. - לוחצים על Backend configuration ומבצעים את הפעולות הבאות:
- ברשימה Health check, לוחצים על Create a health check ומזינים את הפרטים הבאים:
- Name (שם):
hc-http-80 - Protocol: HTTP
- יציאה:
80 - פרוטוקול שרת proxy: NONE
- בקשה:
/שימו לב: כשמשתמשים במסוף Google Cloud כדי ליצור מאזן עומסים, בדיקת התקינות היא גלובלית. אם רוצים ליצור בדיקת תקינות אזורית, משתמשים ב-gcloudאו ב-API.
- Name (שם):
- לוחצים על יצירה.
- בקטע New backend (שרת קצה עורפי חדש), בוחרים את קבוצת המופעים
third-party-instance-groupולוחצים על Done (סיום). - ברשימה Session affinity בוחרים באפשרות Client IP.
- לפני שממשיכים, מוודאים שמופיע סימן וי כחול לצד Backend configuration. אם לא, כדאי לבדוק את השלב הזה.
- ברשימה Health check, לוחצים על Create a health check ומזינים את הפרטים הבאים:
- לוחצים על Frontend configuration. בקטע New Frontend IP and port מבצעים את השינויים הבאים:
- Name (שם):
fr-ilb1 - תת-רשת:
testing-subnet - בקטע כתובת IP פנימית, בוחרים באפשרות Reserve a static internal IP address, מזינים את הפרטים הבאים ולוחצים על Reserve:
- Name (שם):
ip-ilb - כתובת IP סטטית: אני רוצה לבחור
- כתובת IP מותאמת אישית:
10.30.1.99
- Name (שם):
- יציאות: בוחרים באפשרות יחיד ומזינים
80בשדה מספר היציאה. חשוב לזכור שהבחירה של פרוטוקול ויציאה למאזן העומסים לא מגבילה את הפרוטוקולים והיציאות שבהם נעשה שימוש כשמאזן העומסים הוא השלב הבא במסלול. - לפני שממשיכים, מוודאים שמופיע סימן וי כחול לצד Frontend configuration. אם לא, כדאי לבדוק את השלב הזה.
- Name (שם):
- לוחצים על Review and finalize. כדאי לבדוק שוב את ההגדרות.
- לוחצים על יצירה.
התחלת ההגדרה
נכנסים לדף Load balancing במסוף Google Cloud .
- לוחצים על Create load balancer (יצירת מאזן עומסים).
- בקטע Type of load balancer (סוג מאזן העומסים), בוחרים באפשרות Network Load Balancer (TCP/UDP/SSL) (מאזן עומסים ברשת (TCP/UDP/SSL)) ולוחצים על Next (הבא).
- בקטע Proxy or passthrough (פרוקסי או העברה), בוחרים באפשרות Passthrough load balancer (מאזן עומסים להעברה) ולוחצים על Next (הבא).
- בקטע גלוי לכולם או פנימי, בוחרים באפשרות פנימי ולוחצים על הבא.
- לוחצים על Configure (הגדרה).
יצירת מאזן העומסים השני
- מגדירים את Name לערך
ilb2. - מגדירים את Region לערך
us-west1. - מגדירים את Network ל-
production. - לוחצים על Backend configuration ומבצעים את השינויים הבאים:
- בקטע New item (פריט חדש) של Backends (שרתי קצה עורפיים), בוחרים את קבוצת המופעים
third-party-instance-groupולוחצים על Done (סיום). - בשדה Health check (בדיקת תקינות), בוחרים באפשרות
hc-http-80. - בשדה Session affinity, בוחרים באפשרות Client IP.
- לפני שממשיכים, מוודאים שמופיע סימן וי כחול לצד Backend configuration. אם לא, כדאי לבדוק את השלב הזה.
- בקטע New item (פריט חדש) של Backends (שרתי קצה עורפיים), בוחרים את קבוצת המופעים
- לוחצים על Frontend configuration. בקטע New Frontend IP and port מבצעים את השינויים הבאים:
- Name (שם):
fr-ilb2 - תת-רשת:
production-subnet - בקטע כתובת IP פנימית, בוחרים באפשרות Reserve a static internal IP address, מזינים את הפרטים הבאים ולוחצים על Reserve:
- Name (שם):
ip-ilb2 - כתובת IP סטטית: אני רוצה לבחור
- כתובת IP מותאמת אישית:
10.50.1.99
- Name (שם):
- יציאות: בוחרים באפשרות יחיד ומזינים
80בשדה מספר היציאה. חשוב לזכור שהבחירה של פרוטוקול ויציאה למאזן העומסים לא מגבילה את הפרוטוקולים והיציאות שבהם נעשה שימוש כשמאזן העומסים הוא השלב הבא במסלול. - לפני שממשיכים, מוודאים שמופיע סימן וי כחול לצד Frontend configuration. אם לא, כדאי לבדוק את השלב הזה.
- Name (שם):
- לוחצים על Review and finalize. כדאי לבדוק שוב את ההגדרות.
- לוחצים על יצירה.
gcloud
יוצרים בדיקת תקינות חדשה של HTTP כדי לבדוק את קישוריות ה-TCP למכונות הווירטואליות בפורט 80.
gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80יוצרים שני שירותים פנימיים לקצה העורפי באזור
us-west1.gcloud compute backend-services create ilb1 \ --load-balancing-scheme=internal \ --health-checks-region=us-west1 \ --health-checks=hc-http-80 \ --region=us-west1 \ --network=testing \ --session-affinity=CLIENT_IPgcloud compute backend-services create ilb2 \ --load-balancing-scheme=internal \ --health-checks-region=us-west1 \ --health-checks=hc-http-80 \ --region=us-west1 \ --network=production \ --session-affinity=CLIENT_IPמוסיפים את קבוצות המכונות שמכילות את המכשירים הווירטואליים של הצד השלישי בתור קצה עורפי בשירותים לקצה העורפי.
gcloud compute backend-services add-backend ilb1 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1gcloud compute backend-services add-backend ilb2 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1יוצרים את כללי ההעברה הפנימיים ומקשרים אותם לשירותי ה-Backend כדי להשלים את ההגדרה של מאזן העומסים. חשוב לזכור שהפרוטוקול (TCP) והיציאה (80) של מאזני העומסים לא מגבילים את היציאות והפרוטוקולים שמועברים למופעי ה-Backend (הציוד הווירטואלי של צד שלישי) כשמשתמשים במאזני העומסים כנקודות הקפיצה הבאות של המסלולים.
gcloud compute forwarding-rules create fr-ilb1 \ --load-balancing-scheme=internal \ --ports=80 \ --network=testing \ --subnet=testing-subnet \ --region=us-west1 \ --backend-service=ilb1 \ --address=10.30.1.99gcloud compute forwarding-rules create fr-ilb2 \ --load-balancing-scheme=internal \ --ports=80 \ --network=production \ --subnet=production-subnet \ --region=us-west1 \ --backend-service=ilb2 \ --address=10.50.1.99
יצירת המסלולים הסטטיים שמגדירים את מאזני העומסים כצעדים הבאים
יוצרים שני מסלולים סטטיים שמשתמשים במאזן עומסים של הצעד הבא.
המסוף
יצירת המסלול הראשון
נכנסים לדף Routes במסוף Google Cloud .
לוחצים על יצירת מסלול.
בשדה שם של הנתיב, מזינים
ilb-nhop-dest-10-50-1.בוחרים את הרשת
testing.בשדה טווח כתובות ה-IP של היעד, מזינים
10.50.1.0/24.בשדה Instance tags (תגי מופע), מזינים
my-network-tag.בקטע Next hop (הצעד הבא) של המסלול, בוחרים באפשרות Specify a forwarding rule of an internal passthrough Network Load Balancer (ציון כלל העברה של מאזן עומסי רשת פנימי מסוג passthrough).
כדי לציין את כתובת ה-IP של איזון העומסים כנקודת הקפיצה הבאה, משתמשים ב-CLI של gcloud או ב-API.
מציינים את השם של כלל ההעברה. בוחרים את שם כלל ההעברה
fr-ilb1.לוחצים על יצירה.
יצירת המסלול השני
- לוחצים על יצירת מסלול.
- בשדה שם של הנתיב, מזינים
ilb-nhop-dest-10-30-1. - בוחרים את הרשת
testing. - בשדה טווח כתובות ה-IP של היעד, מזינים
10.30.1.0/24. בקטע Next hop (הצעד הבא) של המסלול, בוחרים באפשרות Specify a forwarding rule of an internal passthrough Network Load Balancer (ציון כלל העברה של מאזן עומסי רשת פנימי מסוג passthrough).
כדי לציין את כתובת ה-IP של איזון העומסים כנקודת הקפיצה הבאה, משתמשים ב-CLI של gcloud או ב-API.
בשדה 'שם כלל ההעברה', בוחרים באפשרות
fr-ilb2.לוחצים על יצירה.
gcloud
יוצרים מסלולים סטטיים עם הצעד הבא שמוגדר לכל כלל העברה של איזון העומסים, וכל טווח יעד מוגדר בהתאם.
בדגל --next-hop-ilb, אפשר לציין שם של כלל העברה או כתובת IP של כלל העברה. כתובת ה-IP של כלל ההעברה של הניתוב הבא יכולה להיות באותה רשת VPC שמכילה את המסלול או ברשת VPC שכנה ומקושרת. מידע נוסף זמין במאמר פרויקט ורשת של הניתוב הבא.
בדוגמה, המסלול הראשון משתמש בכתובת ה-IP 10.30.1.99, והמסלול השני משתמש בשם כלל ההעברה fr-ilb12.
אפשר לציין באופן אופציונלי תגי מופע במסלול.
אפשר להחיל את המסלול על מכונות וירטואליות ספציפיות אם מציינים תגי רשת במסלול. אם לא מציינים תג רשת, המסלול חל על כל מכונות ה-VM ברשת ה-VPC. בדוגמה הזו, המסלול משתמש ב-my-network-tag לתג הרשת של המסלול.
gcloud compute routes create ilb-nhop-dest-10-50-1 \
--network=testing \
--destination-range=10.50.1.0/24 \
--next-hop-ilb=10.30.1.99 \
--tags=my-network-tag
gcloud compute routes create ilb-nhop-dest-10-30-1 \
--network=production \
--destination-range=10.30.1.0/24 \
--next-hop-ilb=fr-ilb2 \
--next-hop-ilb-region=us-west1
יצירת מכונה וירטואלית testing
בדוגמה הזו נוצרת מכונה וירטואלית עם כתובת ה-IP 10.30.1.100 בtesting-subnet (10.30.1.0/24) ברשת ה-VPC testing.
gcloud
יוצרים את
testing-vmעל ידי הפעלת הפקודה הבאה.gcloud compute instances create testing-vm \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,my-network-tag \ --subnet=testing-subnet \ --private-network-ip 10.30.1.100 \ --metadata=startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo 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 sudo systemctl restart apache2'
יצירת מכונה וירטואלית production
בדוגמה הזו נוצרת מכונה וירטואלית עם כתובת ה-IP 10.50.1.100 בproduction-subnet (10.50.1.0/24) ברשת ה-VPC production.
gcloud
production-vm יכול להיות בכל אזור באותו אזור כמו מאזן העומסים, והוא יכול להשתמש בכל רשת משנה באותו אזור. בדוגמה הזו, production-vm נמצא באזור us-west1-a.
יוצרים את
production-vmעל ידי הפעלת הפקודה הבאה.gcloud compute instances create production-vm \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=production-subnet \ --private-network-ip 10.50.1.100 \ --metadata=startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo 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 sudo systemctl restart apache2'
בדיקת איזון עומסים בפריסה עם כמה כרטיסי NIC
בודקים את תקינות הקצה העורפי של מאזן העומסים.
gcloud compute backend-services get-health ilb1 --region us-west1
gcloud compute backend-services get-health ilb2 --region us-west1
בודקים את הקישוריות מהמכונה הווירטואלית
testing.gcloud compute ssh testing-vm --zone=us-west1-a
curl http://10.50.1.99
exit
בודקים את הקישוריות מהמכונה הווירטואלית
production.gcloud compute ssh production-vm --zone=us-west1-a
curl http://10.30.1.99
exit
הפעלה של גיבוב סימטרי
גיבוב סימטרי מופעל (ואי אפשר להשבית אותו) כששני מאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי עומדים בדרישות של מאזן העומסים.
אם המסלולים הסטטיים או כללי ההעברה של מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי נוצרו לפני 22 ביוני 2021, צריך לבצע את הפעולות הבאות:
בכל רשת, יוצרים כלל העברה חדש שמפנה לאותו שירות קצה עורפי שמשמש את כלל ההעברה הקיים של כל מאזן עומסים.
בכל רשת, יוצרים נתיב סטטי חדש שמפנה לכלל ההעברה החדש. מוודאים שלכל נתיב חדש יש עדיפות גבוהה יותר מהנתיבים הקיימים.
מוחקים את המסלולים הקיימים בעדיפות נמוכה יותר, ואז מוחקים את כללי ההעברה הישנים.
הסרת המשאבים
בהגדרות של מאזן העומסים, מסירים את הקצה העורפי משירותי הקצה העורפי.
gcloud compute backend-services remove-backend ilb1 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1gcloud compute backend-services remove-backend ilb2 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1מוחקים את המסלולים.
gcloud compute routes delete ilb-nhop-dest-10-50-1
gcloud compute routes delete ilb-nhop-dest-10-30-1
בהגדרות של מאזן העומסים, מוחקים את כללי ההעברה.
gcloud compute forwarding-rules delete fr-ilb1 \ --region=us-west1gcloud compute forwarding-rules delete fr-ilb2 \ --region=us-west1בהגדרות של מאזן העומסים, מוחקים את שירותי הבק-אנד.
gcloud compute backend-services delete ilb1 \ --region=us-west1gcloud compute backend-services delete ilb2 \ --region=us-west1בהגדרות של מאזן העומסים, מוחקים את בדיקת התקינות.
gcloud compute health-checks delete hc-http-80 \ --region=us-west1אם השתמשתם במסוף Google Cloud , בדיקת התקינות היא גלובלית. לכן, הפקודה היא:
gcloud compute health-checks delete hc-http-80 \ --globalמוחקים את קבוצת מופעי המכונה המנוהלים.
gcloud compute instance-groups managed delete third-party-instance-group \ --region=us-west1מוחקים את תבניות המכונות.
gcloud compute instance-templates delete third-party-template
gcloud compute instance-templates delete third-party-template-multinic
מוחקים את מופעי הבדיקה והייצור.
gcloud compute instances delete testing-vm \ --zone=us-west1-agcloud compute instances delete production-vm \ --zone=us-west1-a
המאמרים הבאים
- סקירה כללית על מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי
- מעבר לגיבוי (Failover) למאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי
- הגדרת מאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי עם קצה עורפי של קבוצת מכונות וירטואליות
- רישום נתונים ביומן ומעקב אחרי הביצועים של מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי
- מאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי ורשתות מקושרות
- פתרון בעיות במאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי
- ניקוי ההגדרות של מאזן העומסים