במאמר הזה מוצגות שתי הגדרות לדוגמה להגדרת מאזן עומסים של אפליקציות (ALB) חיצוני אזורי בסביבת VPC משותף:
- בדוגמה הראשונה, כל הרכיבים של מאזן העומסים והעורפים נוצרים בפרויקט שירות אחד.
- בדוגמה השנייה נוצרים רכיבי הקצה הקדמי של מאזן העומסים ומפת URL בפרויקט שירות אחד, בעוד ששירות לקצה העורפי של מאזן העומסים והבק-אנד נוצרים בפרויקט שירות אחר. סוג הפריסה הזה, שבו מפת URL מפנה לשירות לקצה העורפי בפרויקט אחר, נקרא הפניה לשירות בפרויקט אחר.
בשני המקרים צריך לבצע את אותה הגדרה ראשונית כדי להעניק הרשאות ולהגדיר VPC משותף לפני שמתחילים ליצור מאזני עומסים.
אלה לא ההגדרות היחידות של Shared VPC שנתמכות על ידי מאזן העומסים החיצוני האזורי של אפליקציות (ALB). דוגמאות נוספות לארכיטקטורות תקפות של VPC משותף מפורטות במאמר ארכיטקטורות של VPC משותף.
אם אתם לא רוצים להשתמש ברשת VPC משותפת, תוכלו לעיין במאמר הגדרה של מאזן עומסים אזורי חיצוני של אפליקציות עם קצה עורפי של קבוצת מכונות וירטואליות.
לפני שמתחילים
- מומלץ לקרוא את המאמר סקירה כללית על VPC משותף.
- קוראים את הסקירה הכללית על מאזן עומסים חיצוני של אפליקציות, כולל הקטע ארכיטקטורות של VPC משותף.
ההרשאות הנדרשות
כדי להגדיר מאזן עומסים ברשת VPC משותפת, אדמין צריך לבצע כמה הגדרות ראשוניות ולהקצות משאבים. אחרי ההגדרה הראשונית, הבעלים של פרויקט השירות יכול לבצע אחת מהפעולות הבאות:
- פריסת כל הרכיבים של איזון העומסים והעורפים שלו בפרויקט שירות.
- פריסת רכיבי הקצה העורפי של איזון העומסים (שירות קצה עורפי וקצוות עורפיים) בפרויקטים של שירותים שאפשר להפנות אליהם באמצעות מפת URL בשירות אחר או בפרויקט מארח.
בקטע הזה מופיע סיכום של ההרשאות שנדרשות כדי לפעול לפי המדריך הזה ולהגדיר איזון עומסים ברשת VPC משותפת.
הגדרת VPC משותף
התפקידים הבאים נדרשים לביצוע המשימות הבאות:
- ביצוע משימות ניהוליות חד-פעמיות, כמו הגדרת VPC משותף והפעלת פרויקט מארח.
- ביצוע משימות ניהול שצריך לחזור עליהן בכל פעם שרוצים להוסיף פרויקט שירות חדש. הפעולות האלה כוללות צירוף של פרויקט השירות, הקצאה והגדרה של משאבי רשת והענקת גישה לאדמין של פרויקט השירות.
צריך לבצע את המשימות האלה בפרויקט המארח של ה-VPC המשותף. מומלץ שאדמין ה-VPC המשותף יהיה גם הבעלים של הפרויקט המארח של ה-VPC המשותף. התפקידים 'אדמין רשת' ו'אדמין לענייני אבטחה' מוקצים אוטומטית.
| משימה | התפקיד הנדרש |
|---|---|
| הגדרה של VPC משותף, הפעלה של פרויקט מארח ומתן גישה לאדמינים של פרויקט שירות | אדמין ל-VPC משותף |
| יוצרים תת-רשתות בפרויקט המארח של ה-VPC המשותף ומעניקים גישה לאדמינים של פרויקט השירות | אדמין רשתות |
| הוספה והסרה של כללים לחומת האש | אדמין לענייני אבטחה |
אחרי הקצאת רשתות המשנה, הבעלים של פרויקט המארח צריך להעניק את התפקיד 'משתמש רשת' בפרויקט המארח לכל מי שצריך להשתמש במשאבים האלה (בדרך כלל אדמינים של פרויקט השירות, מפתחים או חשבונות שירות).
| משימה | התפקיד הנדרש |
|---|---|
| שימוש ברשתות VPC ובתת-רשתות ששייכות לפרויקט המארח | משתמש ברשת |
אפשר להעניק את התפקיד הזה ברמת הפרויקט או ברמת רשתות משנה ספציפיות. מומלץ להקצות את התפקיד ברשתות משנה נפרדות. הקצאת התפקיד בפרויקט מספקת גישה לכל רשתות המשנה הנוכחיות והעתידיות ברשת ה-VPC של הפרויקט המארח.
פריסת מאזן עומסים וקצה עורפי
אדמינים של פרויקט שירות צריכים את התפקידים הבאים בפרויקט השירות כדי ליצור משאבי איזון עומסים ושרתי קצה עורפיים. ההרשאות האלה מוענקות באופן אוטומטי לבעלים או לעורכים של פרויקט השירות.
| משימה | התפקיד הנדרש |
|---|---|
| יצירת רכיבים של מאזן עומסים | אדמין רשתות |
| יצירת מופעים | אדמין של מכונה |
| יצירה ושינוי של אישורי SSL | אדמין לענייני אבטחה |
דרישות מוקדמות
בקטע הזה, צריך לבצע את השלבים הבאים:
לא צריך לבצע את השלבים שבקטע הזה בכל פעם שרוצים ליצור מאזן עומסים חדש. עם זאת, לפני שיוצרים את איזון העומסים, צריך לוודא שיש גישה למשאבים שמתוארים כאן.
הגדרת הרשתות ורשתות המשנה בפרויקט המארח
צריך רשת VPC משותפת עם שתי רשתות משנה: אחת לקצה הקדמי ולבק-אנד של מאזן העומסים, ואחת לשרתי ה-proxy של מאזן העומסים.בדוגמה הזו נעשה שימוש ברשת, באזור וברשתות המשנה הבאים:
רשת. שם הרשת הוא
lb-network.רשת משנה לקצה הקדמי ולשרתי הבק-אנד של מאזן העומסים. רשת משנה בשם
lb-frontend-and-backend-subnetבאזורus-west1משתמשת ב-10.1.2.0/24כטווח כתובות ה-IP הראשי שלה.רשת משנה עבור שרתי proxy. רשת משנה בשם
proxy-only-subnetבאזורus-west1משתמשת ב-10.129.0.0/23כטווח ה-IP הראשי שלה.
הגדרת רשת המשנה לקצה הקדמי ולשרתים העורפיים של מאזן העומסים
לא צריך לבצע את השלב הזה בכל פעם שרוצים ליצור מאזן עומסים חדש. צריך רק לוודא שלפרויקט השירות יש גישה לרשת משנה ברשת ה-VPC המשותפת (בנוסף לרשת המשנה של ה-proxy בלבד).צריך לבצע את כל השלבים בקטע הזה בפרויקט המארח.
המסוף
- נכנסים לדף VPC networks במסוף Google Cloud .
- לוחצים על יצירת רשת VPC.
- בשדה Name (שם), מזינים
lb-network. בקטע Subnets (רשתות משנה):
- מגדירים את מצב יצירת רשתות משנה לבהתאמה אישית.
בקטע New subnet (רשת משנה חדשה), מזינים את הפרטים הבאים:
- Name (שם):
lb-frontend-and-backend-subnet
אזור:
us-west1טווח כתובות IP:
10.1.2.0/24
- Name (שם):
לוחצים על סיום.
לוחצים על יצירה.
gcloud
יוצרים רשת VPC באמצעות הפקודה
gcloud compute networks create:gcloud compute networks create lb-network --subnet-mode=custom
יוצרים רשת משנה ברשת
lb-networkבאזורus-west1:gcloud compute networks subnets create lb-frontend-and-backend-subnet
--network=lb-network
--range=10.1.2.0/24
--region=us-west1
Terraform
יוצרים רשת VPC:
יוצרים תת-רשת באזור
us-west1:
הגדרת רשת המשנה ל-proxy בלבד
כל מאזני העומסים האזוריים שמבוססים על Envoy באזור us-west1 ברשת ה-VPC lb-network משתמשים ברשת המשנה של שרתי ה-proxy בלבד. יכולה להיות רק רשת משנה אחת פעילה מסוג proxy-only לכל אזור ולכל רשת.
אל תבצעו את השלב הזה אם כבר יש תת-רשת של שרת proxy בלבד ששמורה באזור us-west1 ברשת הזו.
צריך לבצע את כל השלבים בקטע הזה בפרויקט המארח.
המסוף
- נכנסים לדף VPC networks במסוף Google Cloud .
- לוחצים על השם של רשת ה-VPC המשותפת:
lb-network. - לוחצים על הוספת רשת משנה.
- בשדה Name (שם), מזינים
proxy-only-subnet. - בשדה אזור, בוחרים באפשרות
us-west1. - מגדירים את Purpose (מטרה) לערך Regional Managed Proxy (שרת proxy מנוהל אזורי).
- בשדה IP address range (טווח כתובות IP), מזינים
10.129.0.0/23. - לוחצים על הוספה.
gcloud
יוצרים את תת-הרשת של ה-proxy באמצעות הפקודה gcloud compute networks subnets
create:
gcloud compute networks subnets create proxy-only-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=us-west1 \
--network=lb-network \
--range=10.129.0.0/23
Terraform
יוצרים את תת-הרשת של ה-proxy בלבד:
מתן גישה לאדמינים של פרויקטים של שירותים לרשת המשנה של ה-Backend
אדמינים של פרויקט שירות צריכים גישה לlb-frontend-and-backend-subnet רשת המשנה כדי שהם יוכלו להקצות את העורפים של איזון העומסים.
אדמין של VPC משותף צריך להעניק גישה לתת-הרשת של ה-Backend לאדמינים של פרויקט השירות (או למפתחים שמפריסים משאבים ו-Backends שמשתמשים בתת-הרשת). הוראות מפורטות מופיעות במאמר אדמינים של פרויקטים של שירותים בחלק מרשתות המשנה.
הגדרת כללים לחומת האש בפרויקט המארח
בדוגמה הזו נעשה שימוש בכללים הבאים של חומת האש:fw-allow-health-check. כלל תעבורה נכנסת (ingress) שחל על המופעים שמתבצע לגביהם איזון עומסים, שמאפשר את כל תעבורת ה-TCP ממערכות בדיקת התקינות ב- Google Cloud,130.211.0.0/22ו-35.191.0.0/16. בדוגמה הזו נעשה שימוש בתג היעדload-balanced-backendכדי לזהות את המקרים שבהם צריך להחיל את התג.
fw-allow-proxies. כלל תעבורת נתונים נכנסת (ingress) שרלוונטי למופעים שעוברים איזון עומסים, שמאפשר תעבורת TCP ביציאות80,443ו-8080משרתי ה-proxy המנוהלים של מאזן העומסים. בדוגמה הזו נעשה שימוש בתג היעדload-balanced-backendכדי לזהות את המקרים שבהם צריך להחיל את התג.
צריך לבצע את כל השלבים בקטע הזה בפרויקט המארח.
המסוף
נכנסים לדף Firewall policies במסוף Google Cloud .
- לוחצים על יצירת כלל לחומת האש כדי ליצור את הכלל שיאפשר Google Cloud בדיקות תקינות:
- Name (שם):
fw-allow-health-check - רשת:
lb-network - כיוון התנועה: כניסה
- פעולה בהתאמה: אישור
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
load-balanced-backend - מסנן מקור: טווחי IPv4
- טווחי IPv4 של המקור:
130.211.0.0/22ו-35.191.0.0/16 - פרוטוקולים ויציאות:
- בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- מסמנים את התיבה TCP ומזינים
80כמספר היציאה.
מומלץ להגביל את הכלל הזה רק לפרוטוקולים ולפורטים שתואמים לאלה שמשמשים בבדיקת תקינות. אם משתמשים ב-
tcp:80בשביל הפרוטוקול והיציאה,אפשר להשתמש ב-HTTP ביציאה80כדי ליצור קשר עם מכונות ה-VM, אבל אי אפשר להשתמש ב-HTTPS ביציאה443כדי ליצור איתן קשר. Google Cloud - לוחצים על יצירה.
- לוחצים על יצירת כלל לחומת האש כדי ליצור את הכלל שיאפשר Google Cloud בדיקות תקינות:
- Name (שם):
fw-allow-proxies - רשת:
lb-network - כיוון התנועה: כניסה
- פעולה בהתאמה: אישור
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
load-balanced-backend - מסנן מקור: טווחי IPv4
- טווחים של כתובות IPv4 של המקור:
10.129.0.0/23 - פרוטוקולים ויציאות:
- בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- מסמנים את האפשרות TCP ומזינים את הערך
80, 443, 8080בשדה של מספרי היציאות.
- לוחצים על יצירה.
gcloud
יוצרים את כלל חומת האש
fw-allow-health-checkכדי לאפשרGoogle Cloud בדיקות תקינות. בדוגמה הזו, כל תנועת ה-TCP מבודקי בדיקת תקינות מורשית. עם זאת, אפשר להגדיר קבוצה מצומצמת יותר של יציאות בהתאם לצרכים שלכם.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=load-balanced-backend \ --rules=tcp
יוצרים את
fw-allow-proxiesכלל חומת האש כדי לאפשר לתעבורת נתונים מתת-רשת של שרת proxy בלבד של Envoy להגיע לשרתים העורפיים.gcloud compute firewall-rules create fw-allow-proxies \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080
Terraform
יוצרים כלל חומת אש שמאפשר בדיקות תקינות Google Cloud .
יוצרים כלל חומת אש שמאפשר תעבורת נתונים מתת-רשת של שרת proxy בלבד של Envoy לשרתים העורפיים.
הגדרת VPC משותף בפרויקט המארח
בשלב הזה צריך להפעיל פרויקט מארח של VPC משותף, לשתף תת-רשתות של הפרויקט המארח ולצרף פרויקטים של שירות לפרויקט המארח, כדי שהפרויקטים של השירות יוכלו להשתמש ברשת ה-VPC המשותפת. כדי להגדיר VPC משותף בפרויקט המארח, אפשר לעיין בדפים הבאים:
בהמשך ההוראות האלה אנחנו מניחים שכבר הגדרתם VPC משותף. זה כולל הגדרה של מדיניות IAM לארגון והגדרת הפרויקט המארח והפרויקטים של השירותים.
אל תמשיכו עד שתגדירו VPC משותף ותפעילו את הפרויקטים המארח והשירות.
אחרי שמבצעים את השלבים שמפורטים בקטע הזה של הדרישות המוקדמות, אפשר להמשיך לאחד מההגדרות הבאות:
הגדרת מאזן עומסים בפרויקט השירות
בדוגמה הזו נוצר מאזן עומסים חיצוני אזורי של אפליקציות (ALB) שבו כל רכיבי איזון העומסים (כלל העברה, שרת proxy ביעד, מפת URL ושירות לקצה העורפי) והקצה העורפי נוצרים בפרויקט השירות.
משאבי הרשת של מאזן העומסים האזורי החיצוני של האפליקציות, כמו תת-הרשת של שרת ה-proxy בלבד ותת-הרשת של מופעי ה-backend, נוצרים בפרויקט המארח. כללי חומת האש של מופעי ה-Backend נוצרים גם בפרויקט המארח.
בסעיף הזה מוסבר איך להגדיר את מאזן העומסים ואת הקצוות העורפיים. את השלבים האלה צריך לבצע האדמין של פרויקט השירות (או מפתח שפועל בתוך פרויקט השירות), ולא נדרשת מעורבות של האדמין של פרויקט המארח. השלבים בקטע הזה דומים מאוד לשלבים הרגילים להגדרת מאזני עומסים חיצוניים אזוריים של אפליקציות.
בדוגמה שבדף הזה מוגדרת במפורש כתובת IP שמורה לכלל ההעברה של מאזן העומסים החיצוני האזורי של האפליקציות, במקום לאפשר הקצאה של כתובת IP זמנית. כשיטה מומלצת, כדאי להקצות כתובות IP לכללי העברה.
יצירת קצה עורפי של קבוצת מופעי מכונה מנוהלים
בקטע הזה מוסבר איך ליצור תבנית של הגדרות מכונה ובק-אנד של קבוצת מופעי מכונה מנוהלים. התנועה מלקוחות מאוזנת בעומס למכונות וירטואליות בקבוצות המכונות האלה.
המסוף
יוצרים תבנית של הגדרות מכונה. נכנסים לדף Instance templates במסוף Google Cloud .
- לוחצים על Create instance template.
- בשדה Name (שם), מזינים
l7-xlb-backend-template. - מוודאים שדיסק האתחול מוגדר לקובץ אימג' של Debian, כמו Debian GNU/Linux 12 (bookworm). בהוראות האלה נעשה שימוש בפקודות שזמינות רק ב-Debian, כמו
apt-get. אם צריך לשנות את דיסק האתחול, לוחצים על שינוי.- בקטע Operating System (מערכת הפעלה), בוחרים באפשרות Debian.
- בקטע Version, בוחרים אחד מקובצי האימג' הזמינים של Debian, כמו Debian GNU/Linux 12 (bookworm).
- לוחצים על בחירה.
- לוחצים על אפשרויות מתקדמות ואז על רשת.
- מזינים את תגי הרשת הבאים:
load-balanced-backend. - בקטע Network interfaces (ממשקי רשת), בוחרים באפשרות Networks shared with me (from host project: HOST_PROJECT_ID) (רשתות ששותפו איתי (מפרויקט המארח: HOST_PROJECT_ID)).
- בוחרים את רשת המשנה
lb-frontend-and-backend-subnetמהרשתlb-network. לוחצים על ניהול. בקטע ניהול, מזינים את הסקריפט הבא בשדה סקריפט לטעינה בזמן ההפעלה.
#! /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
לוחצים על יצירה.
יוצרים קבוצה של מופעי מכונה מנוהלים. נכנסים לדף Instance groups במסוף Google Cloud .
- לוחצים על יצירת קבוצת מופעים.
- בוחרים באפשרות New managed instance group (stateless) (קבוצת מופעי מכונה מנוהלים חדשה (בלי שמירת מצב)). מידע נוסף מופיע במאמר קבוצות של מכונות וירטואליות בלי שמירת מצב או עם שמירת מצב.
- בשדה Name (שם), מזינים
l7-xlb-backend-example. - בקטע מיקום, בוחרים באפשרות אזור יחיד.
- בשדה Region, בוחרים us-west1.
- בשדה Zone, בוחרים באפשרות us-west1-a.
- בשדה תבנית של הגדרות מכונה, בוחרים באפשרות
l7-xlb-backend-template. מציינים את מספר המופעים שרוצים ליצור בקבוצה.
בדוגמה הזו, מציינים את האפשרויות הבאות להתאמה אוטומטית לעומס:
- בקטע מצב שינוי גודל אוטומטי, בוחרים באפשרות
Off:do not autoscale. - בשדה מספר מופעים מקסימלי, מזינים
2.
אופציונלי: בקטע Autoscaling (שינוי גודל אוטומטי), אפשר להגדיר את קבוצת המופעים כך שיוספו או יוסרו מופעים באופן אוטומטי בהתבסס על השימוש במעבד של המופעים.
- בקטע מצב שינוי גודל אוטומטי, בוחרים באפשרות
לוחצים על יצירה.
gcloud
ההוראות ל-gcloud במדריך הזה מבוססות על ההנחה שאתם משתמשים ב-Cloud Shell או בסביבה אחרת שבה מותקן bash.
יוצרים תבנית של הגדרות מכונה עם שרת HTTP באמצעות הפקודה
gcloud compute instance-templates create.gcloud compute instance-templates create l7-xlb-backend-template \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2' \ --project=SERVICE_PROJECT_ID
יוצרים קבוצת מופעי מכונה מנוהלים באזור באמצעות הפקודה
gcloud compute instance-groups managed create.gcloud compute instance-groups managed create l7-xlb-backend-example \ --zone=us-west1-a \ --size=2 \ --template=l7-xlb-backend-template \ --project=SERVICE_PROJECT_ID
שמירת כתובת ה-IP של מאזן העומסים בפרויקט השירות
שומרים כתובת IP חיצונית סטטית אזורית למאזן העומסים בפרויקט השירות.
צריך לבצע את כל השלבים בקטע הזה בפרויקט השירות.
המסוף
נכנסים לדף Reserve a static address במסוף Google Cloud .
מזינים שם לכתובת החדשה.
בקטע Network Service Tier, בוחרים באפשרות Standard.
בשביל IP version, בוחרים IPv4. כתובות IPv6 יכולות להיות גלובליות בלבד, ואפשר להשתמש בהן רק עם מאזני עומסים גלובליים.
בשדה Type, בוחרים באפשרות Regional.
בשדה אזור, בוחרים באפשרות
us-west1.משאירים את האפשרות מצורף אל במצב ללא. אחרי שיוצרים את מאזן העומסים, כתובת ה-IP הזו מצורפת לכלל ההעברה של מאזן העומסים.
כדי לשמור את כתובת ה-IP, לוחצים על שמירה.
gcloud
כדי לשמור כתובת IP חיצונית סטטית, משתמשים בפקודה compute addresses create.
gcloud compute addresses create IP_ADDRESS_NAME \
--region=us-west1 \
--network-tier=STANDARD \
--project=SERVICE_PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
-
IP_ADDRESS_NAME: השם שרוצים לתת לכתובת הזו. -
SERVICE_PROJECT_ID: מזהה פרויקט השירות שבו נוצר מאזן העומסים.
הגדרת מאזן העומסים
בקטע הזה מוסבר איך ליצור את המשאבים הבאים של מאזן עומסים חיצוני אזורי של אפליקציות (ALB):
- בדיקת תקינות של HTTP
- שירות קצה עורפי עם קבוצת מופעי מכונה מנוהלים כקצה עורפי
- מפת URL
- אישור SSL (נדרש רק ל-HTTPS)
- שרת proxy יעד
- כלל העברה
זמינות ה-Proxy
בהתאם למספר הפרויקטים של השירותים שמשתמשים באותה רשת VPC משותפת, יכול להיות שתגיעו למכסות או למגבלות מהר יותר מאשר במודל פריסת הרשת שבו כל פרויקט מארח רשת משלו. Google Cloud
לדוגמה, לפעמים Google Cloud באזורים מסוימים אין מספיק קיבולת של שרת proxy בשביל מאזן עומסים חיצוני אזורי חדש של אפליקציות. במקרה כזה, Google Cloud במסוף תוצג הודעת אזהרה על זמינות ה-Proxy כשיוצרים את איזון העומסים. כדי לפתור את הבעיה, אפשר לבצע אחת מהפעולות הבאות:
- צריך להמתין עד שהבעיה בקיבולת תיפתר.
כדי להגדיל את המגבלות האלה, צריך לפנות ל Google Cloud צוות המכירות.
המסוף
החלפת ההקשר לפרויקט השירות
- נכנסים לדף Dashboard במסוף Google Cloud .
- לוחצים על הרשימה Select from (בחירה מתוך) בחלק העליון של הדף. בחלון Select from שמופיע, בוחרים את פרויקט השירות שבו רוצים ליצור את מאזן העומסים.
בחירת סוג מאזן העומסים
נכנסים לדף Load balancing במסוף Google Cloud .
- לוחצים על Create load balancer (יצירת מאזן עומסים).
- בקטע Type of load balancer, בוחרים באפשרות Application Load Balancer (HTTP/HTTPS) ולוחצים על Next.
- בקטע Public facing or internal (פנימי או חיצוני), בוחרים באפשרות Public facing (external) (חיצוני) ולוחצים על Next (הבא).
- אם בוחרים באפשרות פריסה גלובלית או פריסה באזור יחיד, בוחרים באפשרות הכי מתאים לעומסי עבודה אזוריים ולוחצים על הבא.
- לוחצים על Configure (הגדרה).
הגדרה בסיסית
- בשדה Name של מאזן העומסים, מזינים
l7-xlb-shared-vpc. - בשדה Region, בוחרים us-west1.
בקטע Network (רשת), בוחרים באפשרות lb-network (מתוך Project: HOST_PROJECT_ID).
אם מופיעה האזהרה נדרשת תת-רשת של Proxy בלבד ברשת VPC משותפת, צריך לוודא שהאדמין של הפרויקט המארח יצר את
proxy-only-subnetבאזורus-west1ברשת ה-VPC המשותפתlb-network. יצירת איזון עומסים תצליח גם אם אין לכם הרשאה להציג את רשת המשנה של ה-proxy בלבד בדף הזה.כדי להמשיך, צריך להשאיר את הדף פתוח.
הגדרת הקצה הקדמי
ל-HTTP:
- לוחצים על Frontend configuration.
- לוחצים על Add frontend IP and port.
- מגדירים את Name לערך
l7-xlb-forwarding-rule. - מגדירים את Protocol ל-
HTTP. - מגדירים את Port ל-
80. בשדה IP address, מזינים את כתובת ה-IP שיצרתם בשלב שמירת כתובת ה-IP של מאזן העומסים.
לוחצים על סיום.
ל-HTTPS:
אם אתם משתמשים ב-HTTPS בין הלקוח לבין מאזן העומסים, אתם צריכים משאב אחד או יותר של אישור SSL כדי להגדיר את ה-proxy. מידע על יצירת משאבי אישורי SSL זמין במאמר בנושא אישורי SSL. בשלב הזה אין תמיכה באישורים שמנוהלים על ידי Google במאזני עומסים אזוריים חיצוניים של אפליקציות.
- לוחצים על Frontend configuration.
- לוחצים על Add frontend IP and port.
- בשדה שם מזינים
l7-xlb-forwarding-rule. - בשדה Protocol, בוחרים באפשרות
HTTPS (includes HTTP/2). - מוודאים שהיציאה מוגדרת ל-
443, כדי לאפשר תנועה ב-HTTPS. - בוחרים את כתובת ה-IP שיצרתם בקטע שמירת כתובת ה-IP של מאזן העומסים.
- לוחצים על הרשימה אישור.
- אם כבר יש לכם משאב של אישור SSL בניהול עצמי שבו אתם רוצים להשתמש כאישור ה-SSL הראשי, בוחרים אותו מהתפריט.
- אחרת, בוחרים באפשרות Create a new certificate.
- ממלאים את השם של
l7-xlb-cert. - בשדות המתאימים, מעלים את הקבצים בפורמט PEM:
- אישור של מפתח ציבורי
- שרשרת אישורים
- מפתח פרטי
- לוחצים על יצירה.
- ממלאים את השם של
- כדי להוסיף משאבי אישורים בנוסף למשאב אישור ה-SSL הראשי:
- לוחצים על הוספת אישור.
- בוחרים אישור מהרשימה Certificates (אישורים) או לוחצים על Create a new certificate (יצירת אישור חדש) ופועלים לפי ההוראות שלמעלה.
- לוחצים על סיום.
הגדרת הקצה העורפי
- לוחצים על Backend configuration.
- בתפריט Create or select backend services בוחרים באפשרות Create a backend service.
- מגדירים את Name של שירות לקצה העורפי לערך
l7-xlb-backend-service. - מגדירים את סוג הבק-אנד בתור קבוצות של מכונות.
- בקטע New backend (מערכת עורפית חדשה):
- מגדירים את Instance group ל-
l7-xlb-backend-example. - מגדירים את Port numbers ל-
80. - מגדירים את Balancing mode (מצב איזון) בתור Utilization (ניצול).
- לוחצים על סיום.
- מגדירים את Instance group ל-
- בקטע בדיקת תקינות, בוחרים באפשרות יצירת בדיקת תקינות עם הפרמטרים הבאים:
- Name (שם):
l7-xlb-basic-check - פרוטוקול:
HTTP - יציאה:
80
- Name (שם):
- לוחצים על שמירה והמשך.
- לוחצים על יצירה.
הגדרת כללי הניתוב
- לוחצים על כללי ניתוב. מוודאים ש-
l7-xlb-backend-serviceהוא שירות הקצה העורפי היחיד לכל מארח שלא תואם ולכל נתיב שלא תואם.
מידע על ניהול תנועה מופיע במאמר הגדרת ניהול תנועה.
בדיקה וסיום של ההגדרה
- לוחצים על יצירה.
gcloud
מגדירים את בדיקת תקינות ה-HTTP באמצעות הפקודה
gcloud compute health-checks create http.gcloud compute health-checks create http l7-xlb-basic-check \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_ID
מגדירים את שירות ה-Backend באמצעות הפקודה
gcloud compute backend-services create.gcloud compute backend-services create l7-xlb-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-xlb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
מוסיפים קצה עורפי לשירות הקצה העורפי באמצעות הפקודה
gcloud compute backend-services add-backend.gcloud compute backend-services add-backend l7-xlb-backend-service \ --balancing-mode=UTILIZATION \ --instance-group=l7-xlb-backend-example \ --instance-group-zone=us-west1-a \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
יוצרים את מפת ה-URL באמצעות הפקודה
gcloud compute url-maps create.gcloud compute url-maps create l7-xlb-map \ --default-service=l7-xlb-backend-service \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
יוצרים את שרת ה-proxy של היעד.
ל-HTTP:
כדי ליצור שרת proxy ליעד למאזן עומסים של HTTP, מריצים את הפקודה
gcloud compute target-http-proxies create.gcloud compute target-http-proxies create l7-xlb-proxy \ --url-map=l7-xlb-map \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
ל-HTTPS:
מידע על יצירת משאבי אישורי SSL זמין במאמר בנושא אישורי SSL. בשלב הזה אין תמיכה באישורים שמנוהלים על ידי Google במאזני עומסים אזוריים חיצוניים של אפליקציות.
מקצים את נתיבי הקבצים לשמות של משתנים.
export LB_CERT=path to PEM-formatted file
export LB_PRIVATE_KEY=path to PEM-formatted file
יוצרים אישור SSL אזורי באמצעות הפקודה
gcloud compute ssl-certificates create.gcloud compute ssl-certificates create l7-xlb-cert \ --certificate=$LB_CERT \ --private-key=$LB_PRIVATE_KEY \ --region=us-west1
משתמשים באישור ה-SSL האזורי כדי ליצור שרת proxy ליעד באמצעות הפקודה
gcloud compute target-https-proxies create.gcloud compute target-https-proxies create l7-xlb-proxy \ --url-map=l7-xlb-map \ --region=us-west1 \ --ssl-certificates=l7-xlb-cert \ --project=SERVICE_PROJECT_ID
יוצרים את כלל ההעברה.
ברשתות מותאמות אישית, צריך להפנות לרשת המשנה בכלל ההעברה.
לכתובת ה-IP של כלל ההעברה, משתמשים ב-
lb-frontend-and-backend-subnet. אם מנסים להשתמש ברשת משנה ל-Proxy בלבד, יצירת כלל ההעברה נכשלת.ל-HTTP:
משתמשים בפקודה
gcloud compute forwarding-rules createעם הדגלים המתאימים.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_NAME \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-xlb-proxy \ --target-http-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_ID
ל-HTTPS:
יוצרים את כלל ההעברה באמצעות הפקודה
gcloud compute forwarding-rules createעם הדגלים הנכונים.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_NAME \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-xlb-proxy \ --target-https-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_ID
בדיקת מאזן העומסים
כששירות איזון העומסים פועל, אפשר לשלוח תעבורה לכלל ההעברה ולראות איך התעבורה מתפזרת למופעים שונים.
המסוף
נכנסים לדף Load balancing במסוף Google Cloud .
- לוחצים על מאזן העומסים שיצרתם.
- שימו לב לכתובת ה-IP של מאזן העומסים. כתובת ה-IP הזו נקראת
LB_IP_ADDRESSבשלבים הבאים. - בקטע Backend, מוודאים שהמכונות הווירטואליות תקינות. העמודה
Healthy אמורה להתמלא, ולציין ששתי המכונות הווירטואליות
תקינות (
2/2). אם לא, נסו קודם לטעון מחדש את הדף. יכול להיות שיחלפו כמה רגעים עד שמסוף Google Cloud יציין שהמכונות הווירטואליות תקינות. אם השרתים העורפיים לא מופיעים כשרתים תקינים אחרי כמה דקות, צריך לבדוק את הגדרות חומת האש ואת תג הרשת שהוקצה למכונות הווירטואליות של השרת העורפי. - אחרי שבמסוף מוצג שהמופעים בעורף בריאים, אפשר לבדוק את מאזן העומסים באמצעות דפדפן אינטרנט. לשם כך, עוברים אל
https://LB_IP_ADDRESS(או אלhttp://LB_IP_ADDRESS). מחליפים אתLB_IP_ADDRESSבכתובת ה-IP של מאזן העומסים. Google Cloud - אם השתמשתם באישור בחתימה עצמית כדי לבדוק HTTPS, בדפדפן תוצג אזהרה. צריך להגדיר במפורש בדפדפן שיקבל אישור בחתימה עצמית.
- בדפדפן אמור להיות מוצג דף עם תוכן שכולל את השם של המופע שסיפק את הדף, יחד עם האזור שלו (לדוגמה,
Page served from: lb-backend-example-xxxx). אם הדף הזה לא מוצג בדפדפן, כדאי לעיין בהגדרות התצורה במדריך הזה.
gcloud
שימו לב לכתובת ה-IP שהוזמנה:
gcloud compute addresses describe IP_ADDRESS_NAME \
--format="get(address)" \
--region=us-west1
כדי לבדוק את מאזן העומסים באמצעות דפדפן אינטרנט, עוברים אל https://IP_ADDRESS_NAME (או אל http://IP_ADDRESS_NAME). מחליפים את IP_ADDRESS_NAME בכתובת ה-IP של מאזן העומסים.
אם השתמשתם באישור בחתימה עצמית כדי לבדוק HTTPS, בדפדפן תוצג אזהרה. צריך להנחות את הדפדפן באופן מפורש לקבל אישור בחתימה עצמית.
בדפדפן אמור להיטען דף עם מידע מינימלי על מופע ה-Backend. אם הדפדפן לא מעבד את הדף הזה, כדאי לעיין בהגדרות התצורה במדריך הזה.
הגדרת מאזן עומסים עם שירות קצה עורפי חוצה-פרויקטים
בדוגמה הקודמת בדף הזה מוסבר איך להגדיר פריסה של VPC משותף שבה כל הרכיבים של מאזן העומסים והקצה העורפי שלו נוצרים בפרויקט השירות.
מאזני עומסים חיצוניים אזוריים של אפליקציות מאפשרים גם להגדיר פריסות של VPC משותף שבהן מפת URL בפרויקט מארח או בפרויקט שירות אחד יכולה להפנות לשירותי קצה עורפי (ולקצה עורפי) שנמצאים בכמה פרויקטים של שירות בסביבות של VPC משותף. הפעולה הזו נקראת הפניה לשירות בפרויקט אחר.
אפשר להשתמש בשלבים שבסעיף הזה כהפניה להגדרת אחת מהקומבינציות הנתמכות שמפורטות כאן:
- כלל העברה, שרת proxy ליעד ומפת URL בפרויקט המארח, ושירות קצה עורפי בפרויקט שירות
- כלל העברה, שרת proxy ביעד ומפת URL בפרויקט שירות אחד, ושירות לקצה העורפי בפרויקט שירות אחר
אפשר להשתמש בהפניה לשירותים בין פרויקטים עם קבוצות של מכונות וירטואליות, עם קבוצות NEG ללא שרתים או עם כל סוג אחר של קצה עורפי נתמך.
דרישות להגדרה
בדוגמה הזו מוגדר מאזן עומסים לדוגמה עם קצה קדמי ובק-אנד בשני פרויקטים שונים של שירותים.
אם עדיין לא עשיתם את זה, אתם צריכים להשלים את כל השלבים המקדימים להגדרת VPC משותף ולהגדרת הרשת, רשתות המשנה וכללי חומת האש שנדרשים בדוגמה הזו. הוראות מפורטות מופיעות בקטעים הבאים בתחילת הדף הזה:
שמירת כתובת ה-IP של מאזן העומסים בפרויקט השירות A
שומרים כתובת IP חיצונית סטטית אזורית למאזן העומסים בפרויקט השירות A.
צריך לבצע את כל השלבים בקטע הזה בפרויקט שירות א'.
המסוף
נכנסים לדף Reserve a static address במסוף Google Cloud .
בשם של הכתובת החדשה, מזינים
cross-ref-ip-address.בקטע Network Service Tier, בוחרים באפשרות Standard.
בשביל IP version, בוחרים IPv4. כתובות IPv6 יכולות להיות גלובליות בלבד, ואפשר להשתמש בהן רק עם מאזני עומסים גלובליים.
בשדה Type, בוחרים באפשרות Regional.
בשדה אזור, בוחרים באפשרות
us-west1.משאירים את האפשרות מצורף אל במצב ללא. אחרי שיוצרים את מאזן העומסים, כתובת ה-IP הזו מצורפת לכלל ההעברה של מאזן העומסים.
כדי לשמור את כתובת ה-IP, לוחצים על שמירה.
gcloud
כדי לשמור כתובת IP חיצונית סטטית, משתמשים בפקודה compute addresses create.
gcloud compute addresses create IP_ADDRESS_CROSS_REF \
--region=us-west1 \
--network-tier=STANDARD \
--project=SERVICE_PROJECT_A_ID
מחליפים את מה שכתוב בשדות הבאים:
-
IP_ADDRESS_CROSS_REF: השם שרוצים לתת לכתובת ה-IP הזו. SERVICE_PROJECT_A_ID: מזהה הפרויקט של פרויקט השירות א', שבו נוצר קצה קדמי של מאזן העומסים.
יצירת שירותי הקצה העורפיים בפרויקט השירות ב'
צריך לבצע את כל השלבים בקטע הזה בפרויקט השירות B.
המסוף
יוצרים תבנית של הגדרות מכונה. נכנסים לדף Instance templates במסוף Google Cloud .
- לוחצים על Create instance template.
- מזינים שם לתבנית של הגדרות מכונה:
cross-ref-backend-template. - מוודאים שדיסק האתחול מוגדר לקובץ אימג' של Debian, כמו Debian GNU/Linux 12 (bookworm). בהוראות האלה נעשה שימוש בפקודות שזמינות רק ב-Debian, כמו
apt-get. אם צריך לשנות את דיסק האתחול, לוחצים על שינוי.- בקטע Operating System (מערכת הפעלה), בוחרים באפשרות Debian.
- בקטע Version, בוחרים אחד מקובצי האימג' הזמינים של Debian, כמו Debian GNU/Linux 12 (bookworm).
- לוחצים על בחירה.
- לוחצים על אפשרויות מתקדמות ואז על רשת.
- מזינים את תגי הרשת הבאים:
load-balanced-backend. - בקטע Network interfaces (ממשקי רשת), בוחרים באפשרות Networks shared with me (from host project: HOST_PROJECT_ID) (רשתות ששותפו איתי (מפרויקט המארח: HOST_PROJECT_ID)).
- בוחרים את רשת המשנה
lb-frontend-and-backend-subnetמהרשתlb-network. לוחצים על ניהול. בשביל ניהול, מזינים את הסקריפט הבא בשדה סקריפט לטעינה בזמן ההפעלה:
#! /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
לוחצים על יצירה.
יוצרים קבוצה של מופעי מכונה מנוהלים. נכנסים לדף Instance groups במסוף Google Cloud .
- לוחצים על יצירת קבוצת מופעים.
- בוחרים באפשרות New managed instance group (stateless) (קבוצת מופעי מכונה מנוהלים חדשה (בלי שמירת מצב)). מידע נוסף מופיע במאמר קבוצות של מכונות וירטואליות בלי שמירת מצב או עם שמירת מצב.
- מזינים שם לקבוצת המופעים:
cross-ref-ig-backend. - בקטע מיקום, בוחרים באפשרות אזור יחיד.
- בשדה Region, בוחרים us-west1.
- בשדה Zone, בוחרים באפשרות us-west1-a.
- בשדה תבנית של הגדרות מכונה, בוחרים באפשרות cross-ref-backend-template.
מציינים את מספר המופעים שרוצים ליצור בקבוצה.
בדוגמה הזו, מציינים את האפשרויות הבאות להתאמה אוטומטית לעומס:
- בקטע מצב שינוי גודל אוטומטי, בוחרים באפשרות
Off:do not autoscale. - בשדה מספר מופעים מקסימלי, מזינים
2.
אופציונלי: בקטע Autoscaling (שינוי גודל אוטומטי), אפשר להגדיר את קבוצת המופעים כך שיוספו או יוסרו מופעים באופן אוטומטי בהתבסס על השימוש במעבד של המופעים.
- בקטע מצב שינוי גודל אוטומטי, בוחרים באפשרות
לוחצים על יצירה.
יוצרים שירות לקצה עורפי אזורי. במסגרת השלב הזה, אנחנו גם יוצרים את בדיקת התקינות ומוסיפים את ה-backends לשירות לקצה העורפי. נכנסים לדף Backends במסוף Google Cloud .
- לוחצים על יצירת שירות קצה עורפי אזורי.
- מזינים שם לשירות הקצה העורפי:
cross-ref-backend-service. - בשדה Region, בוחרים us-west1.
- בשדה Load balancer type, בוחרים באפשרות Regional external Application Load Balancer (EXTERNAL_MANAGED).
- מגדירים את Backend type בתור Instance groups.
- בקטע Backends, מגדירים את Network לערך lb-network.
- לוחצים על הוספת קצה עורפי ומגדירים את השדות הבאים:
- מגדירים את Instance group (קבוצת מופעים) ל-cross-ref-ig-backend.
- מגדירים את ניוד מספרים ל-
80. - מגדירים את Balancing mode (מצב איזון) לערך Utilization (ניצול).
- לוחצים על סיום.
- בקטע בדיקת תקינות, בוחרים באפשרות יצירת בדיקת תקינות עם הפרמטרים הבאים:
- Name (שם):
cross-ref-http-health-check - פרוטוקול:
HTTP - יציאה:
80 - לוחצים על Save.
- Name (שם):
אופציונלי: בקטע Add permissions (הוספת הרשאות), מזינים את חשבונות המשתמשים ב-IAM (בדרך כלל כתובת אימייל) של אדמינים של איזון עומסים מפרויקטים אחרים, כדי שהם יוכלו להשתמש בשירות הקצה העורפי הזה למאזני עומסים בפרויקטים שלהם. בלי ההרשאה הזו, אי אפשר להשתמש בהפניה לשירותים בין פרויקטים.
אם אין לכם הרשאה להגדיר מדיניות של בקרת גישה לשירותים לקצה העורפי בפרויקט הזה, אתם עדיין יכולים ליצור את השירות לקצה העורפי עכשיו, ומשתמש מורשה יוכל לבצע את השלב הזה מאוחר יותר, כמו שמתואר בקטע הענקת הרשאות לאדמין של איזון העומסים לשימוש בשירות לקצה העורפי. בקטע הזה מוסבר גם איך להעניק גישה לכל שירותי הקצה העורפי בפרויקט הזה, כדי שלא תצטרכו להעניק גישה בכל פעם שתיצרו שירות קצה עורפי חדש.
לוחצים על יצירה.
gcloud
יוצרים תבנית של הגדרות מכונה עם שרת HTTP באמצעות הפקודה
gcloud compute instance-templates create.gcloud compute instance-templates create BACKEND_IG_TEMPLATE \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2' \ --project=SERVICE_PROJECT_B_IDמחליפים את מה שכתוב בשדות הבאים:
-
BACKEND_IG_TEMPLATE: השם של תבנית קבוצת המכונות. -
SERVICE_PROJECT_B_ID: מזהה הפרויקט של פרויקט שירות ב', שבו נוצרים קצה העורפי של מאזן העומסים ושירות הקצה העורפי. -
HOST_PROJECT_ID: מזהה הפרויקט של פרויקט המארח של ה-VPC המשותף.
-
יוצרים קבוצת מופעי מכונה מנוהלים באזור באמצעות הפקודה
gcloud compute instance-groups managed create.gcloud compute instance-groups managed create BACKEND_MIG \ --zone=us-west1-a \ --size=2 \ --template=BACKEND_IG_TEMPLATE \ --project=SERVICE_PROJECT_B_IDמחליפים את מה שכתוב בשדות הבאים:
-
BACKEND_MIG: השם של קבוצת השרתים העורפיים.
-
מגדירים את בדיקת תקינות ה-HTTP באמצעות הפקודה
gcloud compute health-checks create http.gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_B_ID
מחליפים את מה שכתוב בשדות הבאים:
-
HTTP_HEALTH_CHECK_NAME: השם של בדיקת תקינות ה-HTTP.
-
מגדירים את שירות ה-Backend באמצעות הפקודה
gcloud compute backend-services create.gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
מחליפים את מה שכתוב בשדות הבאים:
BACKEND_SERVICE_NAME: השם של שירות ה-Backend שנוצר בפרויקט השירות B.
מוסיפים קצה עורפי לשירות הקצה העורפי באמצעות הפקודה
gcloud compute backend-services add-backend.gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --balancing-mode=UTILIZATION \ --instance-group=BACKEND_MIG \ --instance-group-zone=us-west1-a \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
יצירת חזית מאזן העומסים ומפת URL בפרויקט השירות A
צריך לבצע את כל השלבים בקטע הזה בפרויקט שירות א'.
המסוף
בחירת סוג מאזן העומסים
נכנסים לדף Load balancing במסוף Google Cloud .
- לוחצים על Create load balancer (יצירת מאזן עומסים).
- בקטע Type of load balancer, בוחרים באפשרות Application Load Balancer (HTTP/HTTPS) ולוחצים על Next.
- בקטע Public facing or internal (פנימי או חיצוני), בוחרים באפשרות Public facing (external) (חיצוני) ולוחצים על Next (הבא).
- אם בוחרים באפשרות פריסה גלובלית או פריסה באזור יחיד, בוחרים באפשרות הכי מתאים לעומסי עבודה אזוריים ולוחצים על הבא.
- לוחצים על Configure (הגדרה).
הכנת מאזן העומסים
- מזינים את השם של מאזן העומסים:
cross-ref-l7-xlb-shared-vpc. - בשדה Region, בוחרים us-west1.
בקטע Network (רשת), בוחרים באפשרות lb-network (מתוך Project: HOST_PROJECT_ID).
אם מוצגת האזהרה נדרשת תת-רשת של Proxy בלבד ברשת VPC משותפת, צריך לוודא שהאדמין של הפרויקט המארח יצר את
proxy-only-subnetבאזורus-west1ברשת ה-VPC המשותפתlb-network. יצירת איזון עומסים תצליח גם אם אין לכם הרשאה לצפות ברשת המשנה של ה-proxy בלבד בדף הזה.כדי להמשיך, צריך להשאיר את הדף פתוח.
הגדרת הקצה הקדמי
כדי שהפניה לשירות בין פרויקטים תפעל, חובה להשתמש בקצה הקדמי באותה רשת (lb-network) מפרויקט המארח של ה-VPC המשותף ששימשה ליצירת שירות לקצה העורפי.
ל-HTTP:
- לוחצים על Frontend configuration.
- מזינים שם לכלל ההעברה:
cross-ref-http-forwarding-rule. - מגדירים את Protocol ל-
HTTP. מגדירים את Subnetwork ל-
lb-frontend-and-backend-subnet.אל תבחרו ברשת המשנה של ה-frontend שמוגדרת רק לשימוש בשרת proxy, גם אם היא מופיעה ברשימה.
בוחרים את כתובת ה-IP שיצרתם בקטע שמירת כתובת ה-IP של מאזן העומסים, שנקראת cross-ref-ip-address.
מגדירים את Port ל-
80.לוחצים על סיום.
ל-HTTPS:
אם אתם משתמשים ב-HTTPS בין הלקוח לבין מאזן העומסים, אתם צריכים משאב אחד או יותר של אישור SSL כדי להגדיר את ה-proxy. מידע על יצירת משאבי אישורי SSL זמין במאמר בנושא אישורי SSL. בשלב הזה אין תמיכה באישורים שמנוהלים על ידי Google במאזני עומסים אזוריים חיצוניים של אפליקציות.
- לוחצים על Frontend configuration.
- מזינים שם לכלל ההעברה:
cross-ref-https-forwarding-rule. - בשדה Protocol, בוחרים באפשרות
HTTPS (includes HTTP/2). מגדירים את Subnetwork ל-
lb-frontend-and-backend-subnet.אל תבחרו ברשת המשנה של ה-frontend שמוגדרת רק לשימוש בשרת proxy, גם אם היא מופיעה ברשימה.
בוחרים את כתובת ה-IP שיצרתם בקטע שמירת כתובת ה-IP של מאזן העומסים, שנקראת cross-ref-ip-address.
מוודאים שהיציאה מוגדרת ל-
443כדי לאפשר תנועה של HTTPS.לוחצים על הרשימה אישור.
- אם כבר יש לכם משאב של אישור SSL בניהול עצמי שבו אתם רוצים להשתמש כאישור ה-SSL הראשי, בוחרים אותו מהתפריט.
- אחרת, בוחרים באפשרות Create a new certificate.
- מזינים שם לאישור ה-SSL.
- בשדות המתאימים, מעלים את הקבצים בפורמט PEM:
- אישור של מפתח ציבורי
- שרשרת אישורים
- מפתח פרטי
- לוחצים על יצירה.
כדי להוסיף משאבי אישורים בנוסף למשאב אישור ה-SSL הראשי:
- לוחצים על הוספת אישור.
- בוחרים אישור מהרשימה Certificates או לוחצים על Create a new certificate ופועלים לפי ההוראות הקודמות.
לוחצים על סיום.
הגדרת הקצה העורפי
- לוחצים על Backend configuration.
- לוחצים על Cross-project backend services (שירותי קצה עורפיים חוצי-פרויקטים).
- בשדה Project ID, מזינים את מזהה הפרויקט של פרויקט שירות B.
- ברשימה Select backend services (בחירת שירותי קצה עורפי), בוחרים את שירותי הקצה העורפי מפרויקט השירות B שרוצים להשתמש בהם. בדוגמה הזו, מזינים את הערך
cross-ref-backend-service. - לוחצים על OK.
הגדרת כללי הניתוב
- לוחצים על כללי ניתוב. מוודאים ש-cross-ref-backend-service הוא שירות הקצה העורפי היחיד לכל מארח שלא נמצאה לו התאמה ולכל נתיב שלא נמצאה לו התאמה.
מידע על ניהול תנועה מופיע במאמר הגדרת ניהול תנועה.
בדיקה וסיום של ההגדרה
- לוחצים על יצירה.
בדיקת מאזן העומסים
אחרי שיוצרים את מאזן העומסים, בודקים אותו באמצעות השלבים שמתוארים במאמר בדיקת מאזן העומסים.
gcloud
אופציונלי: לפני שיוצרים מאזן עומסים עם שירותי קצה עורפיים שמתייחסים זה לזה, כדאי לבדוק אם אפשר להתייחס לשירותי הקצה העורפיים שרוצים להפנות אליהם באמצעות מיפוי URL:
gcloud compute backend-services list-usable \ --region=us-west1 \ --project=SERVICE_PROJECT_B_IDיוצרים את מפת URL ומגדירים את שירות ברירת המחדל לשירות לקצה העורפי שנוצר בפרויקט השירות B.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=projects/SERVICE_PROJECT_B_ID/regions/us-west1/backendServices/BACKEND_SERVICE_NAME \ --region=us-west1 \ --project=SERVICE_PROJECT_A_IDמחליפים את מה שכתוב בשדות הבאים:
-
URL_MAP_NAME: השם של מפת ה-URL. -
BACKEND_SERVICE_NAME: השם של שירות הקצה העורפי שנוצר בפרויקט השירות B. -
SERVICE_PROJECT_B_ID: מזהה הפרויקט של פרויקט שירות B, שבו נוצרו קצה העורפי של מאזן העומסים ושירות הקצה העורפי. SERVICE_PROJECT_A_ID: מזהה הפרויקט של פרויקט השירות א', שבו נוצר קצה קדמי של מאזן העומסים.
יצירת מפת URL תיכשל אם אין לכם את ההרשאה
compute.backendServices.useלשירות לקצה העורפי בפרויקט השירות ב.-
יוצרים את שרת ה-proxy של היעד.
ל-HTTP:
gcloud compute target-http-proxies create HTTP_TARGET_PROXY_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
מחליפים את מה שכתוב בשדות הבאים:
-
HTTP_TARGET_PROXY_NAME: השם של ה-proxy ל-HTTP של היעד.
ל-HTTPS:
יוצרים אישור SSL אזורי באמצעות הפקודה
gcloud compute ssl-certificates create.gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate=PATH_TO_CERTIFICATE \ --private-key=PATH_TO_PRIVATE_KEY \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
מחליפים את מה שכתוב בשדות הבאים:
-
SSL_CERTIFICATE_NAME: השם של משאב אישור ה-SSL. -
PATH_TO_CERTIFICATE: הנתיב לקובץ אישור ה-SSL המקומי בפורמט PEM. -
PATH_TO_PRIVATE_KEY: הנתיב למפתח הפרטי של אישור ה-SSL המקומי בפורמט PEM.
משתמשים באישור ה-SSL האזורי כדי ליצור שרת proxy ליעד באמצעות הפקודה
gcloud compute target-https-proxies create.gcloud compute target-https-proxies create HTTPS_TARGET_PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=us-west1 \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --project=SERVICE_PROJECT_A_ID
מחליפים את מה שכתוב בשדות הבאים:
-
HTTPS_TARGET_PROXY_NAME: השם של שרת ה-proxy ל-HTTPS של היעד.
-
יוצרים את כלל ההעברה. כדי שהפניה לשירות בין פרויקטים תפעל, כלל ההעברה צריך להשתמש באותה רשת (
lb-network) מפרויקט המארח של ה-VPC המשותף ששימש ליצירת שירות ה-Backend.ל-HTTP:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_CROSS_REF \ --ports=80 \ --region=us-west1 \ --target-http-proxy=HTTP_TARGET_PROXY_NAME \ --target-http-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_A_ID
מחליפים את מה שכתוב בשדות הבאים:
-
HTTP_FORWARDING_RULE_NAME: השם של כלל ההעברה שמשמש לטיפול בתעבורת HTTP.
ל-HTTPS:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_CROSS_REF \ --ports=443 \ --region=us-west1 \ --target-https-proxy=HTTPS_TARGET_PROXY_NAME \ --target-https-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_A_ID
מחליפים את מה שכתוב בשדות הבאים:
-
HTTPS_FORWARDING_RULE_NAME: השם של כלל ההעברה שמשמש לטיפול בתנועת HTTPS.
-
כדי לבדוק את מאזן העומסים, פועלים לפי השלבים שמתוארים במאמר בדיקת מאזן העומסים.
מתן הרשאות לאדמין של מאזן העומסים להשתמש בשירות הקצה העורפי
אם רוצים שמאזני עומסים יפנו לשירותי קצה עורפיים בפרויקטים אחרים של שירותים, למנהל מאזן העומסים צריכה להיות ההרשאה compute.backendServices.use. כדי להעניק את ההרשאה הזו, אפשר להשתמש בתפקיד המוגדר מראש ב-IAM שנקרא Compute Load Balancer Services User (משתמש בשירותי איזון עומסים ב-Compute) (roles/compute.loadBalancerServiceUser). התפקיד הזה צריך להיות מוענק על ידי אדמין בפרויקט השירות, ואפשר להחיל אותו ברמת הפרויקט או ברמת שירות לקצה העורפי הספציפי.
לא צריך לבצע את השלב הזה אם כבר הענקתם את ההרשאות הנדרשות ברמת שירות הקצה העורפי בזמן יצירת שירות הקצה העורפי. אפשר לדלג על הקטע הזה או להמשיך לקרוא כדי ללמוד איך להעניק גישה לכל שירותי הקצה העורפי בפרויקט הזה, כך שלא תצטרכו להעניק גישה בכל פעם שתיצרו שירות קצה עורפי חדש.
בדוגמה הזו, אדמין בפרויקט שירות ב' צריך להריץ אחת מהפקודות הבאות כדי להעניק את ההרשאה compute.backendServices.use לאדמין של מאזן עומסים מפרויקט שירות א'. אפשר לעשות את זה ברמת הפרויקט (לכל שירותי הקצה העורפי בפרויקט) או לכל שירות קצה עורפי בנפרד.
המסוף
הרשאות ברמת הפרויקט
כדי לתת הרשאות לכל שירותי הקצה העורפי בפרויקט, מבצעים את הפעולות הבאות.
כדי להשלים את השלב הזה, צריך את ההרשאות compute.regionBackendServices.setIamPolicy ו-resourcemanager.projects.setIamPolicy.
נכנסים לדף IAM במסוף Google Cloud .
בוחרים את הפרויקט הרצוי.
לוחצים על Grant access.
בשדה New principals, מזינים את כתובת האימייל או מזהה אחר של החשבון הראשי.
ברשימה Select a role בוחרים באפשרות Compute Load Balancer Services User.
אם רוצים, מוסיפים תנאי לתפקיד.
לוחצים על Save.
הרשאות ברמת המשאב לשירותי קצה עורפיים ספציפיים
כדי לתת הרשאות לשירותי קצה עורפיים ספציפיים בפרויקט, מבצעים את השלבים הבאים.
כדי להשלים את השלב הזה, נדרשת ההרשאה compute.regionBackendServices.setIamPolicy.
נכנסים לדף Backends במסוף Google Cloud .
ברשימת שירותי הקצה העורפי, בוחרים את שירות הקצה העורפי שרוצים להעניק לו גישה ולוחצים על הרשאות.
לוחצים על Add principal.
בשדה New principals, מזינים את כתובת האימייל או מזהה אחר של החשבון הראשי.
ברשימה Select a role בוחרים באפשרות Compute Load Balancer Services User.
לוחצים על Save.
gcloud
הרשאות ברמת הפרויקט
כדי לתת הרשאות לכל שירותי הקצה העורפי בפרויקט, מבצעים את הפעולות הבאות.
כדי להשלים את השלב הזה, צריך את ההרשאות compute.regionBackendServices.setIamPolicy ו-resourcemanager.projects.setIamPolicy.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
--member="user:LOAD_BALANCER_ADMIN" \
--role="roles/compute.loadBalancerServiceUser"
הרשאות ברמת המשאב לשירותי קצה עורפיים ספציפיים
ברמת שירות הקצה העורפי, אדמינים של פרויקט שירות יכולים להשתמש באחת מהפקודות הבאות כדי להעניק את התפקיד 'משתמש בשירותי איזון עומסים ב-Compute' (roles/compute.loadBalancerServiceUser).
כדי להשלים את השלב הזה, נדרשת ההרשאה compute.regionBackendServices.setIamPolicy.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
--member="user:LOAD_BALANCER_ADMIN" \
--role="roles/compute.loadBalancerServiceUser" \
--condition='expression=resource.name=="projects/SERVICE_PROJECT_B_ID/regions/us-west1/backend-services/BACKEND_SERVICE_NAME",title=Shared VPC condition'
או
gcloud compute backend-services add-iam-policy-binding BACKEND_SERVICE_NAME \
--member="user:LOAD_BALANCER_ADMIN" \
--role="roles/compute.loadBalancerServiceUser" \
--project=SERVICE_PROJECT_B_ID \
--region=us-west1
כדי להשתמש בפקודות האלה, צריך להחליף את LOAD_BALANCER_ADMIN בפרינציפל של המשתמש, למשל test-user@gmail.com.
אפשר גם להגדיר הרשאות IAM כך שהן יחולו רק על קבוצת משנה של שירותי קצה עורפיים אזוריים באמצעות תנאים וציון מאפייני תנאים.
הצגת מיפויי כתובות URL שמפנים לשירות קצה עורפי של VPC משותף
כדי לראות מיפויים של כתובות URL שמפנים לשירות קצה עורפי מסוים של VPC משותף:
gcloud
כדי לראות משאבים שמפנים לשירות קצה עורפי אזורי של VPC משותף, מריצים את הפקודה הבאה:
gcloud compute backend-services describe BACKEND_SERVICE_NAME \
--region REGION
מחליפים את מה שכתוב בשדות הבאים:
-
BACKEND_SERVICE_NAME: השם של שירות הקצה העורפי של מאזן העומסים -
REGION: האזור של מאזן העומסים
בפלט הפקודה, בודקים את השדה usedBy שבו מוצגים המשאבים שמפנים לשירות לקצה העורפי, כמו בדוגמה הבאה:
id: '123456789' kind: compute#backendService loadBalancingScheme: INTERNAL_MANAGED ... usedBy: - reference: https://www.googleapis.com/compute/v1/projects/my-project/region/us-central1/urlMaps/my-url-map
המאמרים הבאים
- אתם יכולים להגביל את השימוש בתכונות של VPC משותף, כמו הפניה לשירותים בין פרויקטים, בפרויקט שלכם באמצעות אילוצים על מדיניות הארגון. מידע נוסף מופיע במאמר אילוצים של מדיניות הארגון לגבי Cloud Load Balancing.
- כדי לנהל את משאב רשת המשנה לשרת proxy בלבד שנדרש למאזני עומסים חיצוניים אזוריים של אפליקציות, אפשר לעיין במאמר בנושא רשת משנה לשרת proxy בלבד למאזני עומסים חיצוניים אזוריים של אפליקציות.
- כדי ללמוד איך לפתור בעיות במאזן עומסים אזורי חיצוני של אפליקציות, אפשר לעיין במאמר פתרון בעיות במאזני עומסים חיצוניים של אפליקציות.
- ניקוי ההגדרות של מאזן העומסים