במאמר הזה מוצגות שתי הגדרות לדוגמה להגדרת מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) עם מערכות בק-אנד של קבוצת מופעי מכונה וירטואלית בסביבת VPC משותף:
- בדוגמה הראשונה, רכיבי הבק-אנד והקצה הקדמי של מאזן העומסים נוצרים בפרויקט שירות אחד.
- בדוגמה השנייה, רכיבי הקצה הקדמי של מאזן העומסים ומפת ה-URL נוצרים בפרויקט שירות אחד, בעוד ששירות הקצה העורפי של מאזן העומסים והקצה העורפי נוצרים בפרויקט שירות אחר. סוג הפריסה הזה, שבו מפת URL בפרויקט אחד מפנה לשירות לקצה העורפי בפרויקט אחר, נקרא הפניה לשירות בפרויקט אחר.
בשני המקרים צריך לבצע את אותה הגדרה ראשונית כדי להעניק הרשאות, להגדיר את הרשת ואת רשת המשנה בפרויקט המארח ולהגדיר VPC משותף לפני שמתחילים ליצור מאזני עומסים.
אלה לא ההגדרות היחידות של Shared VPC שנתמכות על ידי מאזן העומסים הגלובלי החיצוני של אפליקציות (ALB). דוגמאות נוספות לארכיטקטורות תקפות של VPC משותף זמינות במאמר ארכיטקטורה של VPC משותף.
אם אתם לא רוצים להשתמש ברשת VPC משותפת, אפשר לעיין במאמר הגדרה של מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) עם קבוצות של מכונות וירטואליות בתור מערכות בק-אנד.
לפני שמתחילים
- סקירה כללית על VPC משותף
- מומלץ לקרוא את הסקירה הכללית על מאזן עומסים חיצוני של אפליקציות, כולל הקטע על ארכיטקטורת VPC משותף.
ההרשאות הנדרשות
כדי להגדיר מאזן עומסים ברשת VPC משותפת, אדמין צריך לבצע כמה הגדרות ראשוניות ולהקצות משאבים. אחרי ההגדרה הראשונית, הבעלים של פרויקט השירות יכול לבצע אחת מהפעולות הבאות:
- פריסת כל הרכיבים של איזון העומסים והעורפים שלו בפרויקט שירות.
- פריסת רכיבי הקצה העורפי של מאזן העומסים (שירות לקצה העורפי וקצוות עורפיים) בפרויקטים של שירותים שאפשר להפנות אליהם באמצעות מפת URL בפרויקט אחר של שירות או מארח.
בקטע הזה מופיע סיכום של ההרשאות שנדרשות כדי לפעול לפי המדריך הזה ולהגדיר איזון עומסים ברשת VPC משותפת.
הגדרת VPC משותף
התפקידים הבאים נדרשים למשימות הבאות:
- ביצוע משימות ניהוליות חד-פעמיות, כמו הגדרת ה-VPC המשותף והפעלת פרויקט מארח.
- ביצוע משימות ניהול שצריך לחזור עליהן בכל פעם שרוצים להוסיף פרויקט שירות חדש. הפעולות האלה כוללות צירוף של פרויקט השירות, הקצאה והגדרה של משאבי רשת והענקת גישה לאדמין של פרויקט השירות.
צריך לבצע את המשימות האלה בפרויקט המארח של ה-VPC המשותף. מומלץ שאדמין ה-VPC המשותף יהיה גם הבעלים של הפרויקט המארח של ה-VPC המשותף. הפעולה הזו מעניקה אוטומטית את התפקידים 'אדמין רשת' ו'אדמין אבטחה'.
| משימה | תפקיד נדרש |
|---|---|
| הגדרה של VPC משותף, הפעלה של פרויקט מארח ומתן גישה לאדמינים של פרויקט שירות | אדמין ל-VPC משותף |
| יוצרים תת-רשתות בפרויקט המארח של ה-VPC המשותף ומעניקים גישה לאדמינים של פרויקט השירות | אדמין רשתות |
| הוספה והסרה של כללים לחומת האש | Security Admin |
אחרי הקצאת רשתות המשנה, הבעלים של פרויקט המארח צריך להעניק את התפקיד 'משתמש רשת' בפרויקט המארח לכל מי שצריך להשתמש במשאבים האלה (בדרך כלל אדמינים של פרויקט השירות, מפתחים או חשבונות שירות).
| משימה | תפקיד נדרש |
|---|---|
| שימוש ברשתות VPC ובתת-רשתות ששייכות לפרויקט המארח | משתמש ברשת |
אפשר להעניק את התפקיד הזה ברמת הפרויקט או ברמת רשתות משנה ספציפיות. מומלץ להקצות את התפקיד ברשתות משנה נפרדות. הקצאת התפקיד בפרויקט מספקת גישה לכל רשתות המשנה הנוכחיות והעתידיות ברשת ה-VPC של הפרויקט המארח.
פריסת מאזן עומסים וקצה עורפי
אדמינים בפרויקט השירות צריכים את התפקידים הבאים בפרויקט השירות כדי ליצור משאבי איזון עומסים ושרתי קצה עורפיים. ההרשאות האלה מוענקות באופן אוטומטי לבעלים או לעורכים של פרויקט השירות.
| משימה | תפקיד נדרש |
|---|---|
| יצירת רכיבים של מאזן עומסים | אדמין רשתות |
| יצירת מופעים | אדמין של מכונה |
| יצירה ושינוי של אישורי SSL | Security Admin |
הפניה לשירותים לקצה עורפי בין פרויקטים
אם מאזן העומסים צריך להפנות לשירותי קצה עורפי מפרויקטים אחרים של שירותים, תהליך שנקרא גם הפניה לשירותים בפרויקטים אחרים, לאדמינים של מאזן העומסים יידרש התפקיד הבא בפרויקט השירות שבו נוצר שירות הקצה העורפי.
| משימה | תפקיד נדרש |
|---|---|
| הרשאות לשימוש בשירותים בפרויקטים אחרים | משתמש בשירותים של מאזן עומסים |
אפשר להקצות את התפקיד הזה ברמת הפרויקט או לשירותי קצה עורפיים ספציפיים. הוראות להענקת התפקיד הזה מופיעות בדוגמה להפניה לשירותים בין פרויקטים בדף הזה.
מידע נוסף על IAM זמין במדריכים הבאים:
דרישות מוקדמות
בקטע הזה, צריך לבצע את השלבים הבאים:
לא צריך לבצע את השלבים שבקטע הזה בכל פעם שרוצים ליצור מאזן עומסים חדש. עם זאת, לפני שיוצרים את איזון העומסים, צריך לוודא שיש גישה למשאבים שמתוארים כאן.
הגדרת הרשתות ורשתות המשנה בפרויקט המארח
צריך רשת VPC משותפת עם רשת משנה לקצה העורפי של מאזן העומסים.בדוגמה הזו נעשה שימוש ברשת, באזור וברשת המשנה הבאים:
רשת שם הרשת הוא
lb-network.תת-רשת לשרתי הבק-אנד של מאזן העומסים. רשת משנה בשם
lb-backend-subnetבאזורus-west1משתמשת ב-10.1.2.0/24כטווח ה-IP הראשי שלה.
הגדרת רשת המשנה לקצוות העורפיים של מאזן העומסים
לא צריך לבצע את השלב הזה בכל פעם שרוצים ליצור מאזן עומסים חדש. צריך רק לוודא שלפרויקט השירות יש גישה לתת-רשת ברשת ה-VPC המשותפת.צריך לבצע את כל השלבים בקטע הזה בפרויקט המארח.
המסוף
- נכנסים לדף VPC networks במסוף Google Cloud .
- לוחצים על יצירת רשת VPC.
- בשדה Name (שם), מזינים
lb-network. בקטע Subnets (רשתות משנה):
- מגדירים את מצב יצירת רשתות משנה למותאם אישית.
בקטע New subnet, מזינים את הפרטים הבאים:
- Name (שם):
lb-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-backend-subnet
--network=lb-network
--range=10.1.2.0/24
--region=us-west1
מתן גישה לאדמינים של פרויקטים של שירות לרשת המשנה של ה-Backend
אדמינים של פרויקט שירות צריכים גישה לרשת המשנהlb-backend-subnet כדי להקצות את קצוות העורף של מאזן העומסים.
אדמין של VPC משותף צריך להעניק גישה לתת-הרשת של ה-Backend לאדמינים של פרויקט השירות (או למפתחים שמפריסים משאבים ו-Backends שמשתמשים בתת-הרשת). הוראות מפורטות מופיעות במאמר אדמינים של פרויקטים של שירותים בחלק מרשתות המשנה.
הגדרת כללים לחומת אש בפרויקט המארח
בדוגמה הזו נעשה שימוש בכלל חומת האש הבא:fw-allow-health-check. כלל תעבורה נכנסת (ingress) שחל על המופעים (instances) שמתבצע איזון עומסים ביניהם, ומאפשר את כל תעבורת ה-TCP מטווחים של בדיקות תקינותGoogle Cloud. בדוגמה הזו, תג היעדload-balanced-backendמשמש לזיהוי המקרים שבהם צריך להחיל את הכלל.
צריך לבצע את כל השלבים בקטע הזה בפרויקט המארח.
המסוף
נכנסים לדף Firewall policies במסוף Google Cloud .
- לוחצים על יצירת כלל לחומת האש כדי ליצור את הכלל שיאפשר בדיקות תקינות של Google Cloud :
- Name (שם):
fw-allow-health-check - רשת:
lb-network - כיוון התנועה: נכנסת
- פעולה בהתאמה: אישור
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
load-balanced-backend - מסנן מקור: טווחי IPv4
- טווחים של כתובות IPv4 של המקור:
35.191.0.0/16,130.211.0.0/22 - פרוטוקולים ויציאות:
- בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- מסמנים את התיבה TCP ומזינים
80כמספר היציאה.
מומלץ להגביל את הכלל הזה רק לפרוטוקולים וליציאות שתואמים לאלה שמשמשים את בדיקת התקינות. אם משתמשים ב-
tcp:80בשביל הפרוטוקול והיציאה,אפשר להשתמש ב-HTTP ביציאה80כדי ליצור קשר עם המכונות הווירטואליות, אבל אי אפשר להשתמש ב-HTTPS ביציאה443כדי ליצור איתן קשר. Google Cloud - לוחצים על יצירה.
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=
35.191.0.0/16,130.211.0.0/22\ --target-tags=load-balanced-backend \ --rules=tcp
הגדרת VPC משותף בפרויקט המארח
בשלב הזה צריך להפעיל פרויקט מארח של VPC משותף, לשתף תת-רשתות של הפרויקט המארח ולצרף פרויקטים של שירות לפרויקט המארח, כדי שהפרויקטים של השירות יוכלו להשתמש ברשת ה-VPC המשותפת. כדי להגדיר VPC משותף בפרויקט המארח, אפשר לעיין בדפים הבאים:
בהמשך ההוראות האלה אנחנו מניחים שכבר הגדרתם VPC משותף. זה כולל הגדרה של מדיניות IAM לארגון וקביעה של הפרויקט המארח ופרויקטי השירותים.
אל תמשיכו עד שתגדירו VPC משותף ותפעילו את הפרויקטים המארח והשירות.
אחרי שמבצעים את השלבים שמפורטים בקטע הזה של הדרישות המוקדמות, אפשר להמשיך לאחד מההגדרות הבאות:
הגדרת מאזן עומסים בפרויקט שירות אחד
אחרי שמגדירים את רשת ה-VPC בפרויקט המארח ומגדירים VPC משותף, אפשר לעבור לפרויקט השירות, שבו צריך ליצור את כל רכיבי איזון העומסים (שירות לקצה העורפי, מפת URL, שרת proxy ליעד וכלל העברה) ואת הקצוות העורפיים.
בקטע הזה מניחים שביצעתם את השלבים המקדימים שמתוארים בקטע הקודם בפרויקט המארח. בקטע הזה, רכיבי החזית והעורף של מאזן העומסים, יחד עם קצוות העורף, נוצרים בפרויקט שירות אחד.
באיור הבא מוצגים הרכיבים של מאזן עומסים גלובלי-חיצוני של אפליקציות (ALB) בפרויקט שירות אחד, שמצורף לפרויקט המארח ברשת VPC משותפת.
את השלבים האלה צריך לבצע אדמין של פרויקט השירות (או מפתח שפועל במסגרת פרויקט השירות), ולא נדרשת מעורבות של אדמין של פרויקט המארח. השלבים בקטע הזה דומים לשלבים הרגילים להגדרת מאזן עומסים גלובלי חיצוני של אפליקציות (ALB).
בדוגמה שבדף הזה מוגדרת באופן מפורש כתובת IP שמורה לכלל ההעברה של מאזן עומסים גלובלי חיצוני של אפליקציות (ALB), במקום לאפשר הקצאה של כתובת IP זמנית. כשיטה מומלצת, כדאי להקצות כתובות IP לכללי העברה.
יצירת קצה עורפי של קבוצת מופעי מכונה מנוהלים
לפני שיוצרים קבוצה של מופעי מכונה מנוהלים, צריך ליצור תבנית של מכונה, שהיא משאב שאפשר להשתמש בו כדי ליצור מופעים של מכונות וירטואליות (VM). התנועה מלקוחות מאוזנת בעומס ל-VM בקבוצת מכונות. קבוצת מופעי מכונה מנוהלים מספקת מכונות וירטואליות שמריצות את שרתי הבק-אנד של מאזן עומסים חיצוני של אפליקציות (ALB). בדוגמה הזו, השרתים העורפיים משרתים את שמות המארחים שלהם.
המסוף
יצירת תבנית של הגדרות מכונה
יוצרים תבנית של הגדרות מכונה כדי לשמור את ההגדרה של מכונת ה-VM שמשמשת להקצאת מכונות וירטואליות לקצה העורפי של מאזן העומסים הגלובלי החיצוני של האפליקציות.
במסוף Google Cloud , נכנסים לדף Instance templates של Compute Engine.
לוחצים על Create instance template.
בשדה Name (שם), מזינים
backend-template.בקטע Boot disk מוודאים שדיסק האתחול מוגדר לתמונת Debian, כמו Debian GNU/Linux 12 (bookworm). לוחצים על שינוי כדי לשנות את התמונה אם צריך.
מרחיבים את הקטע אפשרויות מתקדמות.
מרחיבים את הקטע Networking (רשת) ובשדה Network tags (תגי רשת) מזינים את הערך
load-balanced-backend.בקטע Network interfaces, בוחרים באפשרות Networks shared with me (from host project:
HOST_PROJECT_ID).ברשימה Shared subnetwork, בוחרים את רשת המשנה
lb-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לוחצים על יצירה.
יצירת קבוצות של מופעי מכונה מנוהלים
יוצרים קבוצת מופעי מכונה מנוהלים כדי לספק את שרתי הבק-אנד שמטפלים בבקשות שמפוזרות על ידי שירות הבק-אנד של מאזן העומסים הגלובלי החיצוני של האפליקציות.
במסוף Google Cloud , נכנסים לדף Instance groups של Compute Engine.
לוחצים על Create Instance Group (יצירת קבוצת מופעים).
באפשרויות, בוחרים באפשרות New managed instance group (stateless) (קבוצת מופעי מכונה מנוהלים חדשה (בלי שמירת מצב)).
בשדה של שם קבוצת המופעים, מזינים
lb-backend.ברשימה Instance template בוחרים את תבנית של הגדרות מכונה
backend-templateשיצרתם בשלב הקודם.בקטע מיקום, בוחרים באפשרות אזור יחיד ומזינים את הערכים הבאים:
בשדה אזור, בוחרים באפשרות
us-west1.בשדה Zone, בוחרים באפשרות
us-west1-a.
בקטע Autoscaling (שינוי גודל אוטומטי), מזינים את הערכים הבאים:
בקטע מצב התאמה אוטומטית לעומס, בוחרים באפשרות מופעל: הוספה והסרה של מכונות לקבוצה.
בקטע מספר מינימלי של מופעים, בוחרים באפשרות
2.בקטע מספר מופעים מקסימלי, בוחרים באפשרות
3.
בקטע Port mapping (מיפוי יציאות), לוחצים על Add port (הוספת יציאה) ומזינים את הערכים הבאים:
בשדה שם הניוד, מזינים
http.בשדה מספר יציאה, מזינים
80.
לוחצים על יצירה.
gcloud
יוצרים תבנית של הגדרות מכונה:
gcloud compute instance-templates create backend-template \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-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 lb-backend \ --zone=us-west1-a \ --size=2 \ --template=backend-template \ --project=SERVICE_PROJECT_IDמוסיפים יציאה עם שם לקבוצת המופעים:
gcloud compute instance-groups set-named-ports lb-backend \ --named-ports=http:80 \ --zone=us-west1-a \ --project=SERVICE_PROJECT_ID
יצירת בדיקת תקינות
בדיקות תקינות הן בדיקות שמאשרות את הזמינות של שרתי קצה עורפיים. יוצרים בדיקת תקינות שמשתמשת בפרוטוקול HTTP ובודקת ביציאה 80. בהמשך, תצרפו את בדיקת תקינות המערכת הזו לשירות הקצה העורפי שאליו מתייחס מאזן העומסים.
המסוף
במסוף Google Cloud , נכנסים לדף Health checks של Compute Engine.
בשדה של שם בדיקת התקינות, מזינים
lb-health-check.מגדירים את הפרוטוקול ל-HTTP.
לוחצים על יצירה.
gcloud
יצירת בדיקת תקינות HTTP.
gcloud compute health-checks create http lb-health-check \ --use-serving-port \ --project=SERVICE_PROJECT_ID
שמירת כתובת ה-IP של מאזן העומסים
שמירת כתובת IP חיצונית סטטית גלובלית שאפשר להקצות לכלל ההעברה של מאזן העומסים.
המסוף
נכנסים לדף IP addresses במסוף Google Cloud .
לוחצים על שמירת כתובת IP חיצונית סטטית.
בשדה Name (שם), מזינים
lb-ipv4-1.מגדירים את מסלול שירות הרשת בתור Premium.
מגדירים את IP version ל-IPv4.
מגדירים את Type (סוג) לערך Global (גלובלי).
לוחצים על Reserve.
gcloud
יוצרים כתובת IP חיצונית סטטית גלובלית.
gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global --project=SERVICE_PROJECT_ID
הגדרת משאב של אישור SSL
כדי ליצור את מאזן העומסים, צריך משאב של אישור SSL שאפשר לצרף לפרוקסי היעד. משאב אישור ה-SSL יכול להיות מיפוי אישורים או אישור SSL של Compute Engine (אישור קלאסי).
מפת אישורים
אפשר ליצור מיפוי אישורים כמו שמתואר באחד מהמסמכים הבאים:
- פריסת אישור גלובלי שמנוהל על ידי Google עם הרשאה למאזן עומסים
- פריסת אישור גלובלי שמנוהל על ידי Google באמצעות הרשאת DNS
- פריסת אישור גלובלי שמנוהל על ידי Google באמצעות Certificate Authority Service
- פריסת אישור גלובלי בניהול עצמי
אישור SSL ב-Compute Engine
במאזן עומסים ב-HTTPS, יוצרים משאב אישור SSL ב-Compute Engine, כמו שמתואר באחד מהמסמכים הבאים:
מומלץ להשתמש באישור שמנוהל על ידי Google.
הגדרת מאזן העומסים
בקטע הזה מוסבר איך ליצור את המשאבים הבאים למאזן עומסים גלובלי-חיצוני של אפליקציות (ALB):
- שירות קצה עורפי עם קבוצת מופעי מכונה מנוהלים כקצה עורפי
- מפת URL
- אישור SSL (נדרש רק לתנועת HTTPS)
- שרת proxy יעד
- כלל העברה
בדוגמה הזו, אפשר להשתמש ב-HTTP או ב-HTTPS כפרוטוקול של הבקשה והתשובה בין הלקוח לבין מאזן העומסים. כדי להשתמש ב-HTTPS, צריך משאב של אישור SSL כדי להגדיר את ה-proxy. מומלץ להשתמש באישור שמנוהל על ידי Google.
המסוף
בחירת סוג מאזן העומסים
נכנסים לדף 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 (הבא).
- אם רוצים פריסה גלובלית או פריסה באזור יחיד, בוחרים באפשרות הכי מתאים לעומסי עבודה גלובליים ולוחצים על הבא.
- בקטע Load balancer generation (יצירת מאזן עומסים), בוחרים באפשרות Global external Application Load Balancer (מאזן עומסים גלובלי חיצוני של אפליקציות) ולוחצים על Next (הבא).
- לוחצים על Configure (הגדרה).
הגדרה בסיסית
- בשדה של שם מאזן העומסים, מזינים
l7-xlb-shared-vpc.
הגדרת הקצה הקדמי של מאזן העומסים
לתנועת HTTP:
לוחצים על Frontend configuration.
בשם של חזית מאזן העומסים, מזינים
http-fw-rule.בשדה Protocol, בוחרים באפשרות HTTP.
מגדירים את IP version ל-IPv4.
בשדה IP address, בוחרים באפשרות
lb-ipv4-1, שהיא כתובת ה-IP ששמרתם קודם.מגדירים את היציאה ל-
80כדי לאפשר תעבורת HTTP.כדי להשלים את הגדרת ה-Frontend, לוחצים על Done.
לפני שממשיכים, מוודאים שלצד Frontend configuration מופיע סימן אישור כחול.
לתנועת HTTPS:
לוחצים על Frontend configuration.
בשם של חזית מאזן העומסים, מזינים
https-fw-rule.בשדה Protocol, בוחרים באפשרות HTTPS.
מגדירים את IP version ל-IPv4.
בשדה IP address, בוחרים באפשרות
lb-ipv4-1, שהיא כתובת ה-IP ששמרתם קודם.מגדירים את היציאה ל-
443כדי לאפשר תעבורת HTTPS.בקטע בחירת מאגר אישורים, בוחרים באפשרות שימוש במיפוי אישורים או שימוש באישורים קלאסיים.
בהתאם לבחירה, בוחרים במיפוי אישורים או באישור קלאסי.
כדי להשלים את הגדרת ה-Frontend, לוחצים על Done.
לפני שממשיכים, מוודאים שלצד Frontend configuration מופיע סימן וי כחול.
הגדרת הקצה העורפי
לוחצים על Backend configuration.
בתפריט Backend services and backend buckets (שירותי קצה עורפיים ומאגרי קצה עורפיים), לוחצים על Create a backend service (יצירת שירות קצה עורפי).
בשדה של שם שירות הקצה העורפי, מזינים
lb-backend-service.בקטע Backend type, בוחרים באפשרות Instance group.
מגדירים את Protocol ל-HTTP.
בשדה Named port, מזינים
http. זהו אותו שם יציאה שהזנתם כשייצרתם את קבוצת מופעי מכונה מנוהלים.כדי להוסיף שרתים עורפיים לשירות לקצה העורפי:
בקטע Backends, מגדירים את Instance group לערך
lb-backend, שהוא קבוצת מופעי מכונה מנוהלים שיצרתם בשלב קודם.בשדה מספרי יציאה, מזינים
80.כדי להוסיף את ה-backend, לוחצים על סיום.
כדי להוסיף בדיקת תקינות, ברשימה Health check בוחרים באפשרות
lb-health-check, שהיא בדיקת התקינות שיצרתם קודם.כדי ליצור את שירות לקצה העורפי, לוחצים על Create.
לפני שממשיכים, מוודאים שלצד Backend configuration מופיע סימן אישור כחול.
הגדרת כללי הניתוב
- לוחצים על כללי ניתוב. מוודאים ש-
lb-backend-serviceהוא שירות הקצה העורפי שמוגדר כברירת מחדל לכל מארח שלא תואם ולכל נתיב שלא תואם.
מידע על ניהול תנועה זמין במאמר הגדרת ניהול תנועה.
בדיקה וסיום של ההגדרה
לוחצים על Review and finalize.
בודקים את הגדרות הקצה העורפי והקצה הקדמי של מאזן העומסים כדי לוודא שהוא מוגדר כמו שרוצים.
לוחצים על Create וממתינים עד שמאזן העומסים ייווצר.
gcloud
יוצרים שירות לקצה העורפי כדי להפיץ את תעבורת הנתונים בין ה-backends:
gcloud compute backend-services create lb-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=lb-health-check \ --global \ --project=SERVICE_PROJECT_IDמוסיפים את קבוצת המכונות בתור הקצה העורפי לשירות הקצה העורפי:
gcloud compute backend-services add-backend lb-backend-service \ --instance-group=lb-backend \ --instance-group-zone=us-west1-a \ --global \ --project=SERVICE_PROJECT_IDיוצרים מפת URL כדי לנתב בקשות נכנסות לשירות הקצה העורפי:
gcloud compute url-maps create lb-map \ --default-service=lb-backend-service \ --global \ --project=SERVICE_PROJECT_IDיוצרים שרת proxy ליעד.
לתעבורת נתונים של HTTP, יוצרים Proxy יעד ל-HTTP כדי להפנות בקשות למפת URL:
gcloud compute target-http-proxies create http-proxy \ --url-map=lb-map \ --global \ --project=SERVICE_PROJECT_IDלתנועה מסוג HTTPS, יוצרים שרת proxy מסוג HTTPS ליעד כדי להפנות בקשות למפת URL. הפרוקסי הוא החלק במאזן העומסים שמכיל את אישור ה-SSL של מאזן עומסים של HTTPS, לכן בשלב הזה צריך גם לטעון את אישור ה-SSL:
gcloud compute target-https-proxies create https-proxy \ --url-map=lb-map \ --ssl-certificates=lb-ssl-cert --global \ --project=SERVICE_PROJECT_IDיוצרים כלל העברה.
לתנועת HTTP, יוצרים כלל העברה גלובלי כדי לנתב בקשות נכנסות לשרת ה-proxy של היעד:
gcloud compute forwarding-rules create http-fw-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=lb-ipv4-1 \ --global \ --target-http-proxy=http-proxy \ --ports=80 \ --project=SERVICE_PROJECT_IDלתנועת HTTPS, יוצרים כלל העברה גלובלי כדי לנתב בקשות נכנסות אל שרת ה-proxy של היעד:
gcloud compute forwarding-rules create https-fw-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=lb-ipv4-1 \ --global \ --target-https-proxy=https-proxy \ --ports=443 \ --project=SERVICE_PROJECT_ID
בדיקת מאזן העומסים
כששירות איזון העומסים פועל, אפשר לשלוח תעבורה לכלל ההעברה ולראות איך התעבורה מתפזרת למופעים שונים.
המסוף
נכנסים לדף Load balancing במסוף Google Cloud .
לוחצים על מאזן העומסים שיצרתם.
שימו לב לכתובת ה-IP של מאזן העומסים. בשלבים הבאים נתייחס לכתובת ה-IP הזו כאל
LB_IP_ADDRESS.בקטע Backend, מוודאים שהמכונות הווירטואליות תקינות.
העמודה Healthy (תקין) צריכה להתמלא, כדי לציין שהמכונות הווירטואליות תקינות. לדוגמה, אם נוצרו שתי מכונות, אמורה להופיע הודעה עם הסימן
2 of 2וסימן וי ירוק לידה. אם אתם רואים משהו אחר, נסו קודם לטעון מחדש את הדף. יכול להיות שיחלפו כמה דקות עד שמסוף Google Cloud יציין שהמכונות הווירטואליות תקינות. אם ה-backends לא מופיעים כפעילים אחרי כמה דקות, כדאי לבדוק את ההגדרות של חומת האש ואת תג הרשת שהוקצה למכונות הווירטואליות של ה-backend.אחרי שבמסוף מוצג שהמופעים בעורף בריאים, אפשר לבדוק את מאזן העומסים על ידי הפניית דפדפן האינטרנט אל
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)" \
--global
כדי לבדוק את איזון העומסים, מצביעים בדפדפן האינטרנט על https://LB_IP_ADDRESS (או על http://LB_IP_ADDRESS). מחליפים את LB_IP_ADDRESS בכתובת ה-IP של איזון העומסים.
אם השתמשתם באישור בחתימה עצמית כדי לבדוק HTTPS, בדפדפן תוצג אזהרה. צריך להנחות את הדפדפן באופן מפורש לקבל אישור בחתימה עצמית.
בדפדפן אמור להיטען דף עם מידע מינימלי על מופע ה-Backend. אם הדפדפן לא מעבד את הדף הזה, כדאי לעיין בהגדרות התצורה במדריך הזה.
הגדרת מאזן עומסים עם שירות קצה עורפי חוצה-פרויקטים
בקטע הזה מוסבר איך להגדיר מאזן עומסים עם שירות קצה עורפי בפרויקט אחר בסביבת VPC משותפת.
לפני שמתחילים
בדוגמה הקודמת בדף הזה מוסבר איך להגדיר פריסה של VPC משותף שבה כל הרכיבים של מאזן העומסים והקצה העורפי שלו נוצרים בפרויקט שירות אחד. מאזני עומסים גלובליים חיצוניים של אפליקציות מאפשרים גם להגדיר פריסות של VPC משותף שבהן מפת URL בפרויקט מארח או בפרויקט שירות אחד מפנה לשירותי קצה עורפיים (ולקצה עורפי) שנמצאים בכמה פרויקטים של שירות בסביבת ה-VPC המשותף.
אפשר להשתמש בשלבים שבסעיף הזה כהפניה להגדרת כל אחת מהקומבינציות הנתמכות שמפורטות כאן:
- כלל העברה, שרת proxy ליעד ומפת URL בפרויקט המארח, ושירות לקצה העורפי בפרויקט שירות
- כלל העברה, שרת proxy ביעד ומפת URL בפרויקט שירות אחד, ושירות לקצה העורפי בפרויקט שירות אחר
בקטע הזה נעשה שימוש בסביבת VPC משותפת כדי להגדיר פריסה בין פרויקטים, אבל לא חייבים להשתמש בסביבת VPC משותפת. במאזני עומסים חיצוניים גלובליים של אפליקציות, הקצה הקדמי של מאזן העומסים יכול להפנות לשירותי קצה עורפיים או לקטגוריות קצה עורפי מכל פרויקט באותו ארגון.
דרישות להגדרה
אם עדיין לא עשיתם זאת, אתם צריכים להשלים את כל השלבים המקדימים להגדרת VPC משותף ולהגדרת הרשת, רשתות המשנה וכללי חומת האש שנדרשים בדוגמה הזו. הוראות מפורטות מופיעות בקטעים הבאים בתחילת הדף הזה:
בהגדרה הזו, כלל ההעברה, שרת ה-proxy של היעד ומפת URL נמצאים בפרויקט שירות אחד, ושירות לקצה העורפי וה-Backends נמצאים בפרויקט שירות אחר.
- בפרויקט השירות B, מגדירים את משאבי ה-Backend הבאים:
- קצה עורפי של קבוצת מופעי מכונה מנוהלים
- בדיקת תקינות
- שירות לקצה העורפי גלובלי
- בפרויקט השירות A, מגדירים את משאבי חזית הלקוח הבאים:
- כתובת IP
- אישור SSL
- מפת URL
- שרת proxy יעד
- כלל העברה
באיור הבא מוצג מאזן עומסים גלובלי חיצוני של אפליקציות (ALB), שבו שירות הקצה העורפי של מאזן העומסים בפרויקט שירות אחד מפנה למפת URL בפרויקט שירות אחר.
כשמשתמשים במאזן עומסים חיצוני גלובלי של אפליקציות (ALB), לא צריך שהמופעים של השרת העורפי (backend instance) יהיו חלק מאותה רשת VPC או מרשת VPC משותפת.
בדוגמה הזו, המכונות הווירטואליות של ה-Backend בפרויקט השירות הן חלק מרשת ה-VPC המשותפת שנוצרה בפרויקט המארח. עם זאת, אפשר גם להגדיר רשת VPC עצמאית (כלומר, רשת VPC לא משותפת) יחד עם כללי חומת האש הנדרשים בפרויקט שירות. לאחר מכן תוכלו ליצור מופעי בק-אנד (למשל, קבוצת מופעים) שהם חלק מרשת ה-VPC העצמאית הזו. אחרי שיוצרים את שרתי העורפי (backend instance), אפשר לבצע את השלבים שנותרו, כמו שמוצג בדוגמה הזו, כדי ליצור שירות לקצה העורפי בפרויקט השירות ולחבר אותו למפת URL בפרויקט שירות אחר באמצעות הפניה לשירות בין פרויקטים.
הגדרת רכיבי הקצה העורפי של מאזן העומסים בפרויקט השירות B
בקטע הזה, צריך להגדיר את משאבי ה-Backend הבאים בפרויקט השירות B:
- קבוצת מופעי מכונה מנוהלים
- בדיקת תקינות
- שירות לקצה העורפי גלובלי
יצירת קצה עורפי של קבוצת מופעי מכונה מנוהלים
לפני שיוצרים קבוצה של מופעי מכונה מנוהלים, צריך ליצור תבנית של מכונה, שהיא משאב שאפשר להשתמש בו כדי ליצור מופעים של מכונות וירטואליות (VM). התנועה מלקוחות מאוזנת בעומס למכונות וירטואליות בקבוצת מכונות. קבוצת מופעי מכונה מנוהלים מספקת מכונות וירטואליות שמריצות את שרתי הבק-אנד של מאזן עומסים חיצוני של אפליקציות (ALB). בדוגמה הזו, שרתי הקצה העורפי משרתים את שמות המארחים שלהם.
המסוף
יצירת תבנית של הגדרות מכונה
במסוף Google Cloud , נכנסים לדף Instance templates של Compute Engine.
לוחצים על Create instance template.
בשדה Name (שם), מזינים
backend-template.בקטע Boot disk מוודאים שדיסק האתחול מוגדר לתמונת Debian, כמו Debian GNU/Linux 12 (bookworm). אם צריך לשנות את התמונה, לוחצים על שינוי.
מרחיבים את הקטע אפשרויות מתקדמות.
מרחיבים את הקטע Networking (רשת) ובשדה Network tags (תגי רשת) מזינים את הערך
load-balanced-backend.בקטע Network interfaces, בוחרים באפשרות Networks shared with me (from host project:
HOST_PROJECT_ID).ברשימה Shared subnetwork, בוחרים את רשת המשנה
lb-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לוחצים על יצירה.
יצירה של קבוצת מופעי מכונה מנוהלים
במסוף Google Cloud , נכנסים לדף Instance groups של Compute Engine.
לוחצים על Create Instance Group (יצירת קבוצת מופעים).
באפשרויות, בוחרים באפשרות New managed instance group (stateless) (קבוצת מופעי מכונה מנוהלים חדשה (בלי שמירת מצב)).
בשדה של שם קבוצת המופעים, מזינים
lb-backend.ברשימה Instance template בוחרים את תבנית של הגדרות מכונה
backend-templateשיצרתם בשלב הקודם.בקטע מיקום, בוחרים באפשרות אזור יחיד ומזינים את הערכים הבאים:
בשדה אזור, בוחרים באפשרות
us-west1.בשדה Zone, בוחרים באפשרות
us-west1-a.
בקטע Autoscaling (שינוי גודל אוטומטי), מזינים את הערכים הבאים:
בקטע מצב התאמה אוטומטית לעומס, בוחרים באפשרות מופעל: הוספה והסרה של מכונות לקבוצה.
בקטע מספר מינימלי של מופעים, בוחרים באפשרות
2.בקטע מספר מופעים מקסימלי, בוחרים באפשרות
3.
בקטע Port mapping (מיפוי יציאות), לוחצים על Add port (הוספת יציאה) ומזינים את הערכים הבאים:
בשדה שם הניוד, מזינים
http.בשדה מספר יציאה, מזינים
80.
לוחצים על יצירה.
gcloud
יוצרים תבנית של הגדרות מכונה:
gcloud compute instance-templates create backend-template \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-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יוצרים קבוצה של מופעי מכונה מנוהלים ובוחרים את תבנית המכונה שיצרתם בשלב הקודם:
gcloud compute instance-groups managed create lb-backend \ --zone=us-west1-a \ --size=2 \ --template=backend-template \ --project=SERVICE_PROJECT_B_IDמוסיפים יציאה עם שם לקבוצת המופעים:
gcloud compute instance-groups set-named-ports lb-backend \ --named-ports=http:80 \ --zone=us-west1-a \ --project=SERVICE_PROJECT_B_ID
יצירת בדיקת תקינות
בדיקות תקינות הן בדיקות שמאשרות את הזמינות של שרתי קצה עורפיים. יוצרים בדיקת תקינות שמשתמשת בפרוטוקול HTTP ובודקת ביציאה 80. בהמשך, תצרפו את בדיקת תקינות המערכת הזו לשירות הקצה העורפי שאליו מתייחס מאזן העומסים.
המסוף
במסוף Google Cloud , נכנסים לדף Health checks של Compute Engine.
בשדה של שם בדיקת התקינות, מזינים
lb-health-check.מגדירים את הפרוטוקול ל-HTTP.
לוחצים על יצירה.
gcloud
יצירת בדיקת תקינות HTTP.
gcloud compute health-checks create http lb-health-check \ --use-serving-port \ --project=SERVICE_PROJECT_B_ID
יצירת שירות לקצה עורפי גלובלי
יוצרים שירות לקצה עורפי גלובלי כדי להפיץ את תעבורת הנתונים בין הקצוות העורפיים. במסגרת השלב הזה, צריך להקצות את בדיקת תקינות שיצרתם לשירות הקצה העורפי ולהוסיף את קבוצת המכונות כקצה עורפי לשירות הקצה העורפי.
המסוף
נכנסים לדף Load balancing במסוף Google Cloud .
עוברים לקטע Backends.
לוחצים על Create backend service.
בקטע שירות לקצה העורפי גלובלי, לוחצים על הלחצן Create שלידו.
בשדה של שם שירות הקצה העורפי, מזינים
cross-ref-backend-service.בקטע Backend type, בוחרים באפשרות Instance group.
מגדירים את Protocol ל-HTTP.
בשדה Named port, מזינים
http. זהו אותו שם יציאה שהזנתם כשייצרתם את קבוצת מופעי מכונה מנוהלים.כדי להוסיף שרתים עורפיים לשירות לקצה העורפי:
בקטע Backends, מגדירים את Instance group לערך
lb-backend, שהוא קבוצת מופעי מכונה מנוהלים שיצרתם בשלב קודם.בשדה מספרי יציאה, מזינים
80.כדי להוסיף את ה-backend, לוחצים על סיום.
כדי להוסיף בדיקת תקינות, ברשימה Health check בוחרים באפשרות
lb-health-check, שהיא בדיקת התקינות שיצרתם קודם.אופציונלי: בקטע Add permissions, מזינים את עקרונות האבטחה של IAM מפרויקטים אחרים (בדרך כלל כתובת אימייל) שיש להם את התפקיד 'אדמין של מאזן עומסים של Compute' (
roles/compute.loadBalancerAdmin), כדי שהם יוכלו להשתמש בשירות העורפי הזה למאזני עומסים בפרויקטים שלהם. בלי ההרשאה הזו, אי אפשר להשתמש בהפניה לשירותים בין פרויקטים.אם אין לכם הרשאה להגדיר מדיניות בקרת גישה לשירותי קצה עורפי בפרויקט הזה, עדיין תוכלו ליצור את שירות הקצה העורפי עכשיו, ומשתמש מורשה יוכל לבצע את השלב הזה מאוחר יותר, כפי שמתואר בקטע הענקת הרשאות לאדמין של מאזן העומסים של Compute לשימוש בשירות הקצה העורפי. בקטע הזה מוסבר גם איך להעניק גישה לכל שירותי הקצה העורפי בפרויקט הזה, כדי שלא תצטרכו להעניק גישה בכל פעם שתיצרו שירות קצה עורפי חדש.
כדי ליצור את שירות לקצה העורפי, לוחצים על Create.
gcloud
יוצרים שירות לקצה עורפי גלובלי כדי להפיץ את התנועה בין הקצוות העורפיים:
gcloud compute backend-services create cross-ref-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=lb-health-check \ --global \ --project=SERVICE_PROJECT_B_IDמוסיפים את קבוצת המכונות בתור הקצה העורפי לשירות הקצה העורפי:
gcloud compute backend-services add-backend cross-ref-backend-service \ --instance-group=lb-backend \ --instance-group-zone=us-west1-a \ --global \ --project=SERVICE_PROJECT_B_ID
הגדרת רכיבי הקצה הקדמי של מאזן העומסים בפרויקט השירות A
בקטע הזה, צריך להגדיר את משאבי ה-frontend הבאים בפרויקט השירות A:
- כתובת IP
- אישור SSL
- מפת URL
- שרת proxy יעד
- כלל העברה
שמירת כתובת ה-IP של מאזן העומסים
שמירת כתובת IP חיצונית סטטית גלובלית שאפשר להקצות לכלל ההעברה של מאזן העומסים.
המסוף
נכנסים לדף IP addresses במסוף Google Cloud .
לוחצים על שמירת כתובת IP חיצונית סטטית.
בשדה Name (שם), מזינים
cross-ref-ip-address.מגדירים את מסלול שירות הרשת בתור Premium.
מגדירים את IP version ל-IPv4.
מגדירים את Type (סוג) לערך Global (גלובלי).
לוחצים על Reserve.
gcloud
יוצרים כתובת IP חיצונית סטטית גלובלית.
gcloud compute addresses create cross-ref-ip-address \
--ip-version=IPV4 \
--network-tier=PREMIUM \
--global \
--project=SERVICE_PROJECT_A_ID
הגדרת משאב של אישור SSL
כדי ליצור את מאזן העומסים, צריך משאב של אישור SSL שאפשר לצרף לפרוקסי היעד. משאב אישור ה-SSL יכול להיות מיפוי אישורים או אישור SSL של Compute Engine (אישור קלאסי).
מפת אישורים
אפשר ליצור מיפוי אישורים כמו שמתואר באחד מהמסמכים הבאים:
- פריסת אישור גלובלי שמנוהל על ידי Google עם הרשאה למאזן עומסים
- פריסת אישור גלובלי שמנוהל על ידי Google באמצעות הרשאת DNS
- פריסת אישור גלובלי שמנוהל על ידי Google באמצעות Certificate Authority Service
- פריסת אישור גלובלי בניהול עצמי
אישור SSL ב-Compute Engine
במאזן עומסים ב-HTTPS, יוצרים משאב אישור SSL ב-Compute Engine, כמו שמתואר באחד מהמסמכים הבאים:
מומלץ להשתמש באישור שמנוהל על ידי Google.
יצירת רכיבי הקצה הקדמי
המסוף
בחירת סוג מאזן העומסים
נכנסים לדף 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 (הבא).
- אם רוצים פריסה גלובלית או פריסה באזור יחיד, בוחרים באפשרות הכי מתאים לעומסי עבודה גלובליים ולוחצים על הבא.
- בקטע Load balancer generation (יצירת מאזן עומסים), בוחרים באפשרות Global external Application Load Balancer (מאזן עומסים גלובלי חיצוני של אפליקציות) ולוחצים על Next (הבא).
- לוחצים על Configure (הגדרה).
הגדרה בסיסית
- מזינים את השם של מאזן העומסים:
cross-ref-lb-shared-vpc. - כדי להמשיך, צריך להשאיר את הדף פתוח.
הגדרת הקצה הקדמי
ל-HTTP:
- לוחצים על Frontend configuration.
- מזינים שם לכלל ההעברה:
cross-ref-http-forwarding-rule. - מגדירים את Protocol ל-
HTTP. - בוחרים את כתובת ה-IP שיצרתם בשלב שמירת כתובת ה-IP של מאזן העומסים, שנקראת cross-ref-ip-address.
- מגדירים את Port ל-
80. - לוחצים על סיום.
ל-HTTPS:
אם אתם משתמשים ב-HTTPS בין הלקוח לבין מאזן העומסים, אתם צריכים משאב אחד או יותר של אישור SSL כדי להגדיר את ה-proxy.
- לוחצים על Frontend configuration.
- מזינים שם לכלל ההעברה:
cross-ref-https-forwarding-rule. - בשדה Protocol, בוחרים באפשרות
HTTPS (includes HTTP/2). - בוחרים את כתובת ה-IP שיצרתם בשלב שמירת כתובת ה-IP של מאזן העומסים, שנקראת cross-ref-ip-address.
- מוודאים שהיציאה מוגדרת ל-
443כדי לאפשר תנועת HTTPS. - בקטע בחירת מאגר אישורים, בוחרים באפשרות שימוש במיפוי אישורים או שימוש באישורים קלאסיים.
- בהתאם לבחירה, בוחרים במיפוי אישורים או באישור קלאסי.
- לוחצים על סיום.
הגדרת הקצה העורפי
- לוחצים על Backend configuration.
- לוחצים על Cross-project backend services (שירותי קצה עורפיים בין פרויקטים).
- בשדה מזהה הפרויקט, מזינים את מזהה הפרויקט של פרויקט שירות ב'.
- ברשימה Select backend services, בוחרים את שירותי ה-Backend מפרויקט השירות B שרוצים להשתמש בהם. בדוגמה הזו, מזינים את הערך
cross-ref-backend-service. - לוחצים על OK.
הגדרת כללי הניתוב
- לוחצים על כללי ניתוב. מוודאים ש-cross-ref-backend-service הוא שירות הקצה העורפי היחיד עבור כל מארח שלא נמצאה לו התאמה ועבור כל נתיב שלא נמצאה לו התאמה.
מידע על ניהול תנועה זמין במאמר הגדרת ניהול תנועה.
בדיקה וסיום של ההגדרה
- לוחצים על יצירה.
gcloud
אופציונלי: לפני שיוצרים מאזן עומסים עם שירותי בק-אנד שמתייחסים זה לזה, כדאי לבדוק אם אפשר להתייחס לשירותי הבק-אנד שרוצים להפנות אליהם באמצעות מיפוי URL:
gcloud compute backend-services list-usable \ --global \ --project=SERVICE_PROJECT_B_IDיוצרים מפת URL כדי לנתב בקשות נכנסות לשירות הקצה העורפי:
gcloud compute url-maps create cross-ref-url-map \ --default-service=projects/SERVICE_PROJECT_B_ID/global/backendServices/cross-ref-backend-service \ --global \ --project=SERVICE_PROJECT_A_IDיוצרים שרת proxy ליעד.
לתעבורת נתונים של HTTP, יוצרים Proxy יעד ל-HTTP כדי להפנות בקשות למפת URL:
gcloud compute target-http-proxies create cross-ref-http-proxy \ --url-map=cross-ref-url-map \ --global \ --project=SERVICE_PROJECT_A_IDלתנועה מסוג HTTPS, יוצרים שרת proxy מסוג HTTPS ליעד כדי להפנות בקשות למפת URL. הפרוקסי הוא החלק במאזן העומסים שמכיל את אישור ה-SSL של מאזן עומסים של HTTPS, ולכן בשלב הזה צריך גם לטעון את אישור ה-SSL:
gcloud compute target-https-proxies create cross-ref-https-proxy \ --url-map=cross-ref-url-map \ --ssl-certificates=lb-ssl-cert \ --global \ --project=SERVICE_PROJECT_A_IDיוצרים כלל העברה.
לתנועת HTTP, יוצרים כלל העברה גלובלי כדי לנתב בקשות נכנסות לשרת ה-proxy של היעד:
gcloud compute forwarding-rules create cross-ref-http-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=cross-ref-ip-address \ --global \ --target-http-proxy=cross-ref-http-proxy \ --ports=80 \ --project=SERVICE_PROJECT_A_IDלתנועת HTTPS, יוצרים כלל העברה גלובלי כדי לנתב בקשות נכנסות אל ה-proxy של היעד:
gcloud compute forwarding-rules create cross-ref-https-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=cross-ref-ip-address \ --global \ --target-https-proxy=cross-ref-https-proxy \ --ports=443 \ --project=SERVICE_PROJECT_A_ID
מתן הרשאות לאדמין של מאזן עומסים של Compute להשתמש בשירות ה-Backend
אם רוצים שמאזני עומסים יפנו לשירותי קצה עורפיים בפרויקטים אחרים של שירותים, למנהל מאזן העומסים צריכה להיות ההרשאה compute.backendServices.use. כדי להעניק את ההרשאה הזו, אפשר להשתמש בתפקיד ה-IAM המוגדר מראש שנקרא 'משתמש בשירותי איזון עומסים ב-Compute' (roles/compute.loadBalancerServiceUser). התפקיד הזה צריך להיות מוענק על ידי האדמין של פרויקט השירות, ואפשר להחיל אותו ברמת הפרויקט או ברמת שירות לקצה העורפי הספציפי.
לא צריך לבצע את השלב הזה אם כבר הענקתם את ההרשאות הנדרשות ברמת שירות לקצה העורפי בזמן יצירת שירות לקצה העורפי. אפשר לדלג על הקטע הזה או להמשיך לקרוא כדי ללמוד איך להעניק גישה לכל שירותי הקצה העורפי בפרויקט הזה, כך שלא תצטרכו להעניק גישה בכל פעם שתיצרו שירות לקצה העורפי חדש.
בדוגמה הזו, אדמין של פרויקט שירות מפרויקט שירות ב' צריך להריץ אחת מהפקודות הבאות כדי להעניק את ההרשאה compute.backendServices.use לאדמין של מאזן עומסים מפרויקט שירות א'. אפשר לעשות את זה ברמת הפרויקט (לכל שירותי ה-Backend בפרויקט) או לכל שירות Backend בנפרד.
המסוף
הרשאות ברמת הפרויקט
כדי לתת הרשאות לכל שירותי הקצה העורפי בפרויקט, מבצעים את הפעולות הבאות.
כדי להשלים את השלב הזה, צריך את ההרשאות compute.backendServices.setIamPolicy ו-resourcemanager.projects.setIamPolicy.
נכנסים לדף IAM במסוף Google Cloud .
בוחרים את הפרויקט הרצוי.
לוחצים על Grant access.
בשדה New principals, מזינים את כתובת האימייל או מזהה אחר של החשבון הראשי.
ברשימה Select a role בוחרים באפשרות Compute Load Balancer Services User.
אם רוצים, מוסיפים תנאי לתפקיד.
לוחצים על Save.
הרשאות ברמת המשאב לשירותי קצה עורפיים ספציפיים
כדי לתת הרשאות לשירותי קצה עורפיים ספציפיים בפרויקט, מבצעים את השלבים הבאים.
כדי להשלים את השלב הזה, נדרשת ההרשאה compute.backendServices.setIamPolicy.
נכנסים לדף Backends במסוף Google Cloud .
ברשימת שירותי ה-Backend, בוחרים את שירות ה-Backend שרוצים לתת לו גישה ולוחצים על הרשאות.
לוחצים על Add principal.
בשדה New principals, מזינים את כתובת האימייל או מזהה אחר של החשבון הראשי.
ברשימה Select a role בוחרים באפשרות Compute Load Balancer Services User.
לוחצים על Save.
gcloud
הרשאות ברמת הפרויקט
כדי לתת הרשאות לכל שירותי הקצה העורפי בפרויקט, מבצעים את הפעולות הבאות.
כדי להשלים את השלב הזה, צריך את ההרשאות compute.backendServices.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.backendServices.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 כך שהן יחולו רק על קבוצת משנה של שירותי קצה עורפיים אזוריים באמצעות תנאים וציון מאפייני תנאים.
בדיקת מאזן העומסים
יכול להיות שיחלפו כמה דקות עד שמאזן העומסים יוגדר. כששירות איזון העומסים פועל, אפשר לשלוח תנועה לכלל ההעברה בפרויקט שירות א' ולראות את התנועה מתפזרת למופעי מכונות וירטואליות שונים בפרויקט שירות ב'.
המסוף
נכנסים לדף Load balancing במסוף Google Cloud בפרויקט שירות א'.
לוחצים על מאזן העומסים שיצרתם.
שימו לב לכתובת ה-IP של מאזן העומסים. בשלבים הבאים נתייחס לכתובת ה-IP הזו כאל
LB_IP_ADDRESS.כדי לבדוק את איזון העומסים, מצביעים בדפדפן האינטרנט על
https://LB_IP_ADDRESS(או עלhttp://LB_IP_ADDRESS). מחליפים אתLB_IP_ADDRESSבכתובת ה-IP של איזון העומסים.אם השתמשתם באישור בחתימה עצמית כדי לבדוק HTTPS, בדפדפן תוצג אזהרה. צריך להנחות את הדפדפן באופן מפורש לקבל אישור בחתימה עצמית.
בדפדפן אמור להיות מוצג דף עם תוכן שכולל את שם המופע שסיפק את הדף (לדוגמה,
Page served from: lb-backend-example-xxxx). אם הדף הזה לא מוצג בדפדפן, צריך לעיין בהגדרות התצורה במדריך הזה.
gcloud
שימו לב לכתובת ה-IP שהוזמנה:
gcloud compute addresses describe IP_ADDRESS_NAME \
--format="get(address)" \
--global
--project=SERVICE_PROJECT_A_ID
כדי לבדוק את איזון העומסים, מצביעים בדפדפן האינטרנט על https://LB_IP_ADDRESS (או על http://LB_IP_ADDRESS). מחליפים את LB_IP_ADDRESS בכתובת ה-IP של איזון העומסים.
אם השתמשתם באישור בחתימה עצמית כדי לבדוק HTTPS, בדפדפן תוצג אזהרה. צריך להנחות את הדפדפן באופן מפורש לקבל אישור בחתימה עצמית.
בדפדפן אמור להיטען דף עם מידע מינימלי על מופע ה-Backend. אם הדפדפן לא מעבד את הדף הזה, כדאי לעיין בהגדרות התצורה במדריך הזה.
המאמרים הבאים
- כדי להגביל את השימוש בתכונות של VPC משותף, כמו הפניה לשירותים בין פרויקטים, בפרויקט שלכם, אתם יכולים להשתמש באילוצים על מדיניות הארגון עבור Cloud Load Balancing.
- איך פותרים בעיות במאזן עומסים של אפליקציות (ALB) חיצוני גלובלי
- פינוי הגדרות של איזון עומסים