במאמר הזה מוצגות שתי הגדרות לדוגמה להגדרת מאזן עומסים גלובלי חיצוני של אפליקציות עם מערכות בק-אנד של קבוצת מופעי מכונה וירטואלית בסביבת VPC משותף:
- בדוגמה הראשונה, הרכיבים של הקצה הקדמי והקצה העורפי של מאזן העומסים נוצרים בפרויקט שירות אחד.
- בדוגמה השנייה, רכיבי הקצה הקדמי של איזון העומסים ומפת כתובות ה-URL נוצרים בפרויקט שירות אחד, בעוד ששירות הקצה העורפי של איזון העומסים והקצה העורפי נוצרים בפרויקט שירות אחר. סוג הפריסה הזה, שבו מיפוי כתובות ה-URL בפרויקט אחד מפנה לשירות קצה עורפי בפרויקט אחר, נקרא הפניה לשירות בפרויקט אחר.
בשני המקרים צריך לבצע את אותה הגדרה ראשונית כדי להעניק הרשאות, להגדיר את הרשת ואת רשת המשנה בפרויקט המארח ולהגדיר VPC משותף לפני שמתחילים ליצור מאזני עומסים.
אלה לא ההגדרות היחידות של Shared VPC שנתמכות על ידי מאזן העומסים הגלובלי החיצוני של אפליקציות (ALB). דוגמאות נוספות לארכיטקטורות תקפות של VPC משותף זמינות במאמר ארכיטקטורה של VPC משותף.
אם אתם לא רוצים להשתמש ברשת VPC משותפת, כדאי לעיין במאמר בנושא הגדרה של מאזן עומסים גלובלי חיצוני של אפליקציות עם קבוצות של מכונות וירטואליות בתור מערכות בק-אנד.
לפני שמתחילים
- סקירה כללית על 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) שחל על המופעים שמתבצע לגביהם איזון עומסים, שמאפשר את כל תעבורת ה-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 - פרוטוקולים ויציאות:
- בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות ספציפיים).
- מסמנים את התיבה 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\ --target-tags=load-balanced-backend \ --rules=tcp
הגדרת VPC משותף בפרויקט המארח
בשלב הזה צריך להפעיל פרויקט מארח של VPC משותף, לשתף תת-רשתות של הפרויקט המארח ולצרף פרויקטים של שירות לפרויקט המארח, כדי שהפרויקטים של השירות יוכלו להשתמש ברשת ה-VPC המשותפת. כדי להגדיר VPC משותף בפרויקט המארח, אפשר לעיין בדפים הבאים:
בהמשך ההוראות האלה אנחנו מניחים שכבר הגדרתם VPC משותף. זה כולל הגדרה של מדיניות IAM לארגון וקביעה של הפרויקט המארח ופרויקטי השירותים.
אל תמשיכו עד שתגדירו VPC משותף ותפעילו את הפרויקטים המארח והשירות.
אחרי שמבצעים את השלבים שמפורטים בקטע הזה של הדרישות המוקדמות, אפשר להמשיך לאחד מההגדרות הבאות:
הגדרת מאזן עומסים בפרויקט שירות אחד
אחרי שמגדירים את רשת ה-VPC בפרויקט המארח ומגדירים VPC משותף, אפשר לעבור לפרויקט השירות, שבו צריך ליצור את כל רכיבי איזון העומסים (שירות backend, מיפוי URL, שרת proxy ליעד וכלל העברה) ואת ה-backend.
בקטע הזה מניחים שביצעתם את השלבים המקדימים שמתוארים בקטע הקודם בפרויקט המארח. בקטע הזה, רכיבי החזית והעורף של מאזן העומסים, יחד עם קצוות העורף, נוצרים בפרויקט שירות אחד.
באיור הבא מוצגים הרכיבים של מאזן עומסים גלובלי חיצוני של אפליקציות בפרויקט שירות אחד, שמצורף לפרויקט המארח ברשת VPC משותפת.
את השלבים האלה צריך לבצע אדמין של פרויקט השירות (או מפתח שפועל במסגרת פרויקט השירות), ולא נדרשת מעורבות של אדמין של פרויקט המארח. השלבים בקטע הזה דומים לשלבים הרגילים להגדרת מאזן עומסים גלובלי חיצוני של אפליקציות (ALB).
בדוגמה שבדף הזה מוגדרת באופן מפורש כתובת IP שמורה לכלל ההעברה של מאזן עומסים גלובלי חיצוני של אפליקציות (ALB), במקום לאפשר הקצאה של כתובת IP זמנית. כשיטה מומלצת, כדאי להקצות כתובות IP לכללי העברה.
יצירת קצה עורפי של קבוצת מופעי מכונה מנוהלים
לפני שיוצרים קבוצה של מופעי מכונה מנוהלים, צריך ליצור תבנית של מכונה, שהיא משאב שאפשר להשתמש בו כדי ליצור מופעים של מכונות וירטואליות (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, שהיא בדיקת התקינות שיצרתם קודם.כדי ליצור את שירות ה-Backend, לוחצים על Create.
לפני שממשיכים, מוודאים שלצד Backend configuration מופיע סימן אישור כחול.
הגדרת כללי הניתוב
- לוחצים על כללי ניתוב. מוודאים ש-
lb-backend-serviceהוא שירות הקצה העורפי שמוגדר כברירת מחדל לכל מארח שלא תואם ולכל נתיב שלא תואם.
מידע על ניהול תנועה זמין במאמר הגדרת ניהול תנועה.
בדיקה וסיום של ההגדרה
לוחצים על Review and finalize.
בודקים את הגדרות הקצה העורפי והקצה הקדמי של מאזן העומסים כדי לוודא שהוא מוגדר כמו שרוצים.
לוחצים על יצירה וממתינים עד שמאזן העומסים ייווצר.
gcloud
יוצרים שירות backend כדי להפיץ את התנועה בין ה-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 יציין שהמכונות הווירטואליות תקינות. אם השרתים העורפיים לא מופיעים כשרתים תקינים אחרי כמה דקות, צריך לבדוק את הגדרות חומת האש ואת תג הרשת שהוקצה למכונות הווירטואליות של השרתים העורפיים.אחרי ש Google Cloud המסוף מראה שהמופעים של ה-Backend תקינים, אפשר לבדוק את מאזן העומסים על ידי הפניית דפדפן האינטרנט אל
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
כדי לבדוק את מאזן העומסים, מצביעים בדפדפן האינטרנט על 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 נמצאים בפרויקט שירות אחד, ושירות ה-Backend וה-Backends נמצאים בפרויקט שירות אחר.
- בפרויקט השירות B, מגדירים את משאבי ה-Backend הבאים:
- קצה עורפי של קבוצת מופעי מכונה מנוהלים
- בדיקת תקינות
- שירות לקצה העורפי גלובלי
- בפרויקט השירות A, מגדירים את משאבי חזית הלקוח הבאים:
- כתובת IP
- אישור SSL
- מפה של כתובות URL
- שרת proxy יעד
- כלל העברה
באיור הבא מוצג מאזן עומסים גלובלי חיצוני של אפליקציות (ALB), שבו שירות הקצה העורפי של מאזן העומסים בפרויקט שירות אחד מפנה למפת כתובות URL בפרויקט שירות אחר.
כשמשתמשים במאזן עומסים חיצוני גלובלי של אפליקציות, לא צריך שהמופעים של הבק-אנד יהיו חלק מאותה רשת VPC או מרשת VPC משותפת.
בדוגמה הזו, המכונות הווירטואליות בעורף בפרויקט השירות הן חלק מרשת ה-VPC המשותפת שנוצרה בפרויקט המארח. עם זאת, אפשר גם להגדיר רשת VPC עצמאית (כלומר, רשת VPC לא משותפת) יחד עם כללי חומת האש הנדרשים בפרויקט שירות. לאחר מכן תוכלו ליצור מופעי בק-אנד (למשל, קבוצת מופעים) שהם חלק מרשת ה-VPC העצמאית הזו. אחרי שיוצרים את מופעי הבק-אנד, אפשר לבצע את השלבים שנותרו, כפי שמוצג בדוגמה הזו, כדי ליצור שירות בק-אנד בפרויקט השירות ולחבר אותו למיפוי כתובות 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.
בקטע Global 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 לשימוש בשירות הקצה העורפי. בקטע הזה מוסבר גם איך להעניק גישה לכל שירותי הקצה העורפי בפרויקט הזה, כדי שלא תצטרכו להעניק גישה בכל פעם שתיצרו שירות קצה עורפי חדש.
כדי ליצור את שירות ה-Backend, לוחצים על 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). התפקיד הזה צריך להיות מוענק על ידי האדמין של פרויקט השירות, ואפשר להחיל אותו ברמת הפרויקט או ברמת שירות ה-Backend הספציפי.
לא צריך לבצע את השלב הזה אם כבר הענקתם את ההרשאות הנדרשות ברמת שירות ה-Backend בזמן יצירת שירות ה-Backend. אפשר לדלג על הקטע הזה או להמשיך לקרוא כדי ללמוד איך להעניק גישה לכל שירותי ה-Backend בפרויקט הזה, כך שלא תצטרכו להעניק גישה בכל פעם שתיצרו שירות Backend חדש.
בדוגמה הזו, אדמין של פרויקט שירות מפרויקט שירות ב' צריך להריץ אחת מהפקודות הבאות כדי להעניק את ההרשאה 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"
הרשאות ברמת המשאב לשירותי קצה עורפיים ספציפיים
ברמת שירות ה-Backend, אדמינים של פרויקט שירות יכולים להשתמש באחת מהפקודות הבאות כדי להעניק את התפקיד 'משתמש בשירותי איזון עומסים ב-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.
- איך פותרים בעיות במאזן עומסים חיצוני של אפליקציות ברמה הגלובלית
- פינוי הגדרות של איזון עומסים