במאמר הזה מוסבר איך להגדיר מאזן עומסים של אפליקציות (ALB) חיצוני אזורי לשירותים שפועלים במכונות וירטואליות ב-Compute Engine.
מאזני עומסים חיצוניים אזוריים של אפליקציות (ALB) מאפשרים ליצור מאזני עומסים באזורים ספציפיים, ולכן הם משמשים לעיתים קרובות לעומסי עבודה שנדרשת בהם תאימות לתקנות. עוד תרחיש נפוץ לשימוש במאזני עומסים חיצוניים אזוריים של אפליקציות הוא עומסי עבודה שדורשים גישה ליציאה (egress) במסלול הרגיל של רשתות, כי מאזני עומסים חיצוניים אזוריים של אפליקציות תומכים גם במסלול הפרימיום וגם במסלול הרגיל של שירותי הרשת.
לפני שממשיכים במדריך הזה, כדאי להכיר את המושגים הבאים:
הרשאות
כדי לפעול לפי המדריך הזה, אתם צריכים להיות מסוגלים ליצור מופעים ולשנות רשת בפרויקט. צריכות להיות לכם הרשאות בעלים או עריכה בפרויקט, או כל תפקידי ה-IAM הבאים ב-Compute Engine.
| משימה | תפקיד נדרש |
|---|---|
| יצירת רשתות, רשתות משנה ורכיבים של מאזן עומסים | אדמין רשתות |
| הוספה והסרה של כללים לחומת האש | Security Admin |
| יצירת מופעים | אדמין של מכונה |
מידע נוסף זמין במדריכים הבאים:
אופציונלי: שימוש בכתובות BYOIP
באמצעות העברת כתובות IP משלכם (BYOIP), אתם יכולים לייבא כתובות ציבוריות משלכם אלGoogle Cloud כדי להשתמש בכתובות עם משאבי Google Cloud . לדוגמה, אם מייבאים כתובות IPv4 משלכם, אפשר להקצות אחת מהן לכלל ההעברה כשמגדירים את מאזן העומסים. כשפועלים לפי ההוראות במאמר הזה כדי להגדיר את מאזן העומסים, צריך לציין את כתובת ה-IP של BYOIP ככתובת ה-IP.
מידע נוסף על השימוש ב-BYOIP זמין במאמר בנושא העברת כתובות IP משלכם.
סקירה כללית של ההגדרה
אפשר להגדיר מאזן עומסים חיצוני אזורי של אפליקציות (ALB) כמו שמתואר בתרשים זרימת ההגדרות הכללי הבא. השלבים הממוספרים מתייחסים למספרים בתרשים.
כפי שמוצג בתרשים, בדוגמה הזו נוצר מאזן עומסים חיצוני של אפליקציות (ALB) ברמה אזורית ברשת VPC באזור us-west1, עם שירות לקצה העורפי אחד ושתי קבוצות של שרתים עורפיים (backend instance).
בתרשים מוצגים הפריטים הבאים:
רשת VPC עם שתי רשתות משנה:
תת-רשת אחת משמשת לשרתי קצה עורפיים (קבוצות של מופעי מכונה). טווח כתובות ה-IP הראשי שלה הוא
10.1.2.0/24.תת-רשת אחת היא תת-רשת של שרת proxy בלבד באזור
us-west1. צריך ליצור תת-רשת לשרת proxy בלבד בכל אזור ברשת VPC שבה משתמשים במאזני עומסים חיצוניים אזוריים של אפליקציות. תת-הרשת של הפרוקסי בלבד באזור משותפת לכל מאזני העומסים האזוריים באזור. כתובות המקור של מנות נתונים שנשלחות ממאזני העומסים לקצה העורפי של השירות מוקצות מרשת המשנה של פרוקסי בלבד. בדוגמה הזו, לרשת המשנה של האזור שמוגדרת רק לשימוש פרוקסי יש טווח כתובות IP ראשי של10.129.0.0/23, שהוא הגודל המומלץ של רשת משנה. מידע נוסף זמין במאמר בנושא רשתות משנה לשרתי proxy בלבד.
כלל חומת אש שמאפשר זרימת תעבורת נתונים מתת-רשת של שרת proxy בלבד ברשת. כלומר, צריך להוסיף כלל אחד שמאפשר תעבורה ביציאות TCP
80,443ו-8080מ-10.129.0.0/23(הטווח של תת-הרשת של שרת proxy בלבד בדוגמה הזו). כלל חומת אש נוסף עבור בדיקות התקינות.מופעים של קצה עורפי.
קבוצות של מכונות:
- קבוצות של מופעי מכונה מנוהלים או לא מנוהלים לפריסות של מכונות וירטואליות ב-Compute Engine
- קבוצות של נקודות קצה ברשת (NEGs) לפריסות ב-GKE
בכל אזור, יכול להיות שילוב של סוגי קבוצות בקצה העורפי בהתאם לדרישות הפריסה.
בדיקת תקינות אזורית שמדווחת על המוכנות של שרתי הקצה העורפיים.
שירות לקצה עורפי אזורי שעוקב אחרי השימוש בקצה העורפי והתקינות שלו.
מפת URL אזורית שמנתחת את כתובת ה-URL של בקשה ומעבירה בקשות לשירותי קצה עורפיים ספציפיים על סמך המארח והנתיב של כתובת ה-URL של הבקשה.
שרת proxy אזורי של HTTP או HTTPS, שמקבל בקשה מהמשתמש ומעביר אותה למפת URL. ל-HTTPS, מגדירים משאב אזורי של אישור SSL. אם מגדירים איזון עומסים של HTTPS, שרת ה-proxy של היעד יכול להשתמש באישור SSL או באישור של Certificate Manager כדי לפענח תנועת SSL. שרת ה-Proxy של היעד יכול להעביר תנועה למופעים שלכם באמצעות HTTP או HTTPS.
כלל העברה, שכולל את כתובת ה-IP החיצונית של מאזן העומסים, כדי להעביר כל בקשה נכנסת לשרת ה-proxy של היעד.
כתובת ה-IP החיצונית שמשויכת לכלל ההעברה שמורה באמצעות הפקודה
gcloud compute addresses create, כפי שמתואר במאמר שמירת כתובת ה-IP של מאזן העומסים.
הגדרת הרשת ורשתות המשנה
צריך רשת VPC עם שתי רשתות משנה: אחת לקצה העורפי של מאזן העומסים והשנייה לשרתי ה-proxy של מאזן העומסים. מאזן עומסים חיצוני אזורי של אפליקציות (ALB) הוא אזורי. התעבורה ברשת ה-VPC מנותבת למאזן העומסים אם מקור התעבורה הוא ברשת משנה באותו אזור שבו נמצא מאזן העומסים.
בדוגמה הזו נעשה שימוש ברשת ה-VPC, באזור ובתת-רשתות הבאים:
רשת הרשת היא רשת VPC במצב מותאם אישית בשם
lb-network.תת-רשת לשרתי קצה עורפיים. רשת משנה בשם
backend-subnetבאזורus-west1משתמשת ב-10.1.2.0/24כטווח ה-IP הראשי שלה.תת-רשת לשרתי proxy. רשת משנה בשם
proxy-only-subnetבאזורus-west1משתמשת ב-10.129.0.0/23כטווח ה-IP הראשי שלה.
הגדרת הרשת ורשת המשנה לקצוות עורפיים
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על יצירת רשת VPC.
בשדה Name (שם), מזינים
lb-network.בקטע Subnets (רשתות משנה):
- מגדירים את מצב יצירת רשת משנה לבהתאמה אישית.
- בקטע New subnet (רשת משנה חדשה), מזינים את הפרטים הבאים:
- Name (שם):
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:gcloud compute networks subnets create backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
Terraform
כדי ליצור את רשת ה-VPC, משתמשים במשאב google_compute_network.
כדי ליצור את תת-הרשת של ה-VPC ברשת lb-network, משתמשים במשאב google_compute_subnetwork.
API
שולחים בקשת
POSTל-methodnetworks.insertומחליפים את PROJECT_ID במזהה הפרויקט.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "routingConfig": { "routingMode": "REGIONAL" }, "name": "lb-network", "autoCreateSubnetworks": false }שולחים בקשת
POSTל-methodsubnetworks.insertומחליפים את PROJECT_ID במזהה הפרויקט.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks { "name": "backend-subnet", "network": "projects/PROJECT_ID/global/networks/lb-network", "ipCidrRange": "10.1.2.0/24", "region": "projects/PROJECT_ID/regions/us-west1", }
הגדרת רשת המשנה ל-proxy בלבד
תת-רשת של proxy בלבד מספקת קבוצה של כתובות IP ש-Google משתמשת בהן כדי להפעיל שרתי proxy של Envoy בשמכם. הפרוקסיים מסיימים חיבורים מהלקוח ויוצרים חיבורים חדשים לשרתי הקצה.
כל מאזני העומסים האזוריים שמבוססים על Envoy באותו אזור של רשת ה-VPC lb-network משתמשים בתת-הרשת הזו שמשמשת רק כפרוקסי. יכולה להיות רק רשת משנה אחת פעילה של פרוקסי בלבד לכל אזור, לכל רשת.
המסוף
אם אתם משתמשים במסוף Google Cloud , אתם יכולים גם לחכות וליצור את רשת המשנה של ה-proxy בלבד מאוחר יותר בדף איזון עומסים.
כדי ליצור עכשיו את רשת המשנה של ה-proxy בלבד, פועלים לפי השלבים הבאים:
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על השם של רשת ה-VPC:
lb-network.לוחצים על הוספת רשת משנה.
בשדה Name (שם), מזינים
proxy-only-subnet.בשדה אזור, בוחרים באפשרות
us-west1.מגדירים את Purpose (מטרה) לערך Regional Managed Proxy (שרת proxy מנוהל אזורי).
בשדה טווח כתובות 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
כדי ליצור את תת-הרשת של ה-VPC לשימוש פרוקסי ברשת lb-network, משתמשים במשאב google_compute_subnetwork.
API
יוצרים את רשת המשנה של ה-proxy בלבד באמצעות השיטה subnetworks.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks
{
"name": "proxy-only-subnet",
"ipCidrRange": "10.129.0.0/23",
"network": "projects/PROJECT_ID/global/networks/lb-network",
"region": "projects/PROJECT_ID/regions/us-west1",
"purpose": "REGIONAL_MANAGED_PROXY",
"role": "ACTIVE"
}
הגדרת כללים לחומת אש
בדוגמה הזו נעשה שימוש בכללים הבאים של חומת האש:
fw-allow-health-check. כלל תעבורה נכנסת (ingress) שחל על המופעים (instances) שמתבצע איזון עומסים ביניהם, ומאפשר את כל תעבורת ה-TCP מטווחים של בדיקות תקינותGoogle Cloud. בדוגמה הזו, תג היעדload-balanced-backendמשמש לזיהוי המכונות הווירטואליות שכלל חומת האש חל עליהן.
fw-allow-proxies. כלל תעבורת נתונים נכנסת (ingress) שחל על המופעים שמתבצע איזון העומסים שלהם, שמאפשר תעבורת TCP ביציאות80,443ו-8080משרתי ה-proxy המנוהלים של מאזן העומסים החיצוני האזורי של האפליקציות. בדוגמה הזו נעשה שימוש בתג היעדload-balanced-backendכדי לזהות את המכונות הווירטואליות שכלל חומת האש חל עליהן.
בלי כללי חומת האש האלה, הכלל default deny ingress חוסם תנועה נכנסת למופעי ה-Backend.
תגי היעד מגדירים את מופעי ה-Backend. בלי תגי היעד, כללי חומת האש חלים על כל מופעי ה-Backend ברשת ה-VPC. כשיוצרים את מכונות ה-VM של ה-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לפרוטוקול וליציאה, Google Cloud יכול להשתמש ב-HTTP ביציאה80כדי ליצור קשר עם המכונות הווירטואליות, אבל הוא לא יכול להשתמש ב-HTTPS ביציאה443כדי ליצור איתן קשר.
- Name (שם):
לוחצים על יצירה.
לוחצים על Create firewall rule (יצירת כלל חומת אש) כדי ליצור את הכלל שיאפשר לשרתי ה-Proxy של מאזן העומסים להתחבר לשרתים העורפיים:
- Name (שם):
fw-allow-proxies - רשת:
lb-network - כיוון התנועה: כניסה
- פעולה במקרה של התאמה: אישור
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
load-balanced-backend - מסנן מקור: טווחים של כתובות IPv4
- טווחי IPv4 של המקור:
10.129.0.0/23 - פרוטוקולים ויציאות:
- בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- מסמנים את תיבת הסימון TCP ומזינים את הערך
80, 443, 8080עבור מספרי היציאות.
- Name (שם):
לוחצים על יצירה.
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יוצרים את כלל
fw-allow-proxiesכדי לאפשר לשרתי ה-proxy של מאזן העומסים החיצוני האזורי של האפליקציות להתחבר לקצה העורפי. מגדירים אתsource-rangesלטווחים שהוקצו לתת-הרשת של שרת ה-proxy בלבד, לדוגמה,10.129.0.0/23.gcloud compute firewall-rules create fw-allow-proxies \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=source-range \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080
Terraform
כדי ליצור את הכללים בחומת האש, משתמשים במשאב google_compute_firewall.
API
יוצרים את כלל חומת האש fw-allow-health-check על ידי שליחת בקשת POST ל-method firewalls.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls
{
"name": "fw-allow-health-check",
"network": "projects/PROJECT-ID/global/networks/lb-network",
"sourceRanges": [HEALTH_CHECK_RANGES],
"targetTags": [
"load-balanced-backend"
],
"allowed": [
{
"IPProtocol": "tcp"
}
],
"direction": "INGRESS"
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט
HEALTH_CHECK_RANGES: רשימה מופרדת בפסיקים של Google Cloud טווחים של בקשות לבדיקת תקינות (probe), בפורמט של מחרוזות עם מרכאות (לדוגמה, "192.0.2.0/24", "198.51.100.0/24")
יוצרים את כלל חומת האש fw-allow-proxies כדי לאפשר תעבורת TCP בתת-הרשת של ה-proxy עבור השיטה firewalls.insert. מחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls
{
"name": "fw-allow-proxies",
"network": "projects/PROJECT_ID/global/networks/lb-network",
"sourceRanges": [
"10.129.0.0/23"
],
"targetTags": [
"load-balanced-backend"
],
"allowed": [
{
"IPProtocol": "tcp",
"ports": [
"80"
]
},
{
"IPProtocol": "tcp",
"ports": [
"443"
]
},
{
"IPProtocol": "tcp",
"ports": [
"8080"
]
}
],
"direction": "INGRESS"
}
הגדרת מאזן עומסים חיצוני אזורי של אפליקציות עם שירות מבוסס מכונה וירטואלית
בקטע הזה מוצגת ההגדרה הנדרשת לשירותים שפועלים במכונות וירטואליות ב-Compute Engine. מכונות וירטואליות של לקוחות מתחברות לכתובת ה-IP ולמספר היציאה שהגדרתם בכלל ההעברה. כשיישומים של לקוחות שולחים תנועה לכתובת ה-IP ולפורט האלה, הבקשות שלהם מועברות למכונות הווירטואליות (VM) של העורף בהתאם למפת כתובות ה-URL של מאזן העומסים החיצוני של האפליקציות באזור.
בדוגמה שבדף הזה נוצרת במפורש כתובת IP חיצונית שמורה לכלל ההעברה של מאזן העומסים החיצוני האזורי של האפליקציה, במקום לאפשר הקצאה של כתובת IP חיצונית ארעית. כשיטה מומלצת, כדאי להקצות כתובות IP לכללי העברה.
יצירת קצה עורפי של קבוצת מופעי מכונה מנוהלים
בקטע הזה נסביר איך ליצור תבנית וקבוצת מופעי מכונה מנוהלים. קבוצת מופעי מכונה מנוהלים מספקת מופעי VM שמריצים את שרתי הבק-אנד של מאזן עומסים חיצוני אזורי לדוגמה של אפליקציות (ALB). התנועה מלקוחות מאוזנת בעומס לשרתים האלה בקצה העורפי. למטרות הדגמה, שרתי קצה עורפיים מציגים את שמות המארחים שלהם.
המסוף
יוצרים תבנית של הגדרות מכונה. נכנסים לדף Instance templates במסוף Google Cloud .
- לוחצים על Create instance template.
- בשדה Name (שם), מזינים
l7-xlb-backend-template. - מוודאים שהערך של דיסק אתחול מוגדר לקובץ אימג' של Debian, כמו Debian GNU/Linux 12 (bookworm). בהוראות האלה נעשה שימוש בפקודות שזמינות רק ב-Debian, כמו
apt-get. - לוחצים על אפשרויות מתקדמות.
- לוחצים על Networking ומגדירים את השדות הבאים:
- בשדה Network tags (תגי רשת), מזינים
load-balanced-backend. - בקטע Network interfaces (ממשקי רשת), בוחרים באפשרויות הבאות:
- רשת:
lb-network - Subnet (רשת משנה):
backend-subnet
- רשת:
- בשדה Network tags (תגי רשת), מזינים
לוחצים על ניהול. מזינים את הסקריפט הבא בשדה סקריפט לטעינה בזמן ההפעלה.
#! /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. - בקטע מיקום, בוחרים באפשרות אזור יחיד.
- בשדה אזור, בוחרים באפשרות
us-west1. - בשדה Zone, בוחרים באפשרות
us-west1-a. - בשדה תבנית של הגדרות מכונה, בוחרים באפשרות
l7-xlb-backend-template. בקטע מצב התאמה אוטומטית לעומס, בוחרים באפשרות מופעל: הוספה והסרה של מכונות לקבוצה.
מגדירים את המספר המינימלי של מופעים ל-
2, ואת המספר המקסימלי של מופעים ל-2או יותר.לוחצים על יצירה.
gcloud
ההוראות במדריך הזה מבוססות על ההנחה שאתם משתמשים ב-Cloud Shell או בסביבה אחרת שבה מותקן bash.gcloud
יוצרים תבנית של הגדרות מכונה עם שרת HTTP באמצעות הפקודה
gcloud compute instance-templates create.gcloud compute instance-templates create l7-xlb-backend-template \ --region=us-west1 \ --network=lb-network \ --subnet=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'
יוצרים קבוצת מופעי מכונה מנוהלים באזור באמצעות הפקודה
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
Terraform
כדי ליצור את תבנית של הגדרות מכונה, משתמשים במשאב google_compute_instance_template.
כדי ליצור את קבוצת מופעי המכונה המנוהלים, משתמשים במשאב google_compute_instance_group_manager.
API
יוצרים את תבנית של הגדרות מכונה באמצעות השיטה
instanceTemplates.insert, ומחליפים אתPROJECT_IDבמזהה הפרויקט.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name":"l7-xlb-backend-template", "properties": { "machineType":"e2-standard-2", "tags": { "items":[ "load-balanced-backend" ] }, "metadata": { "kind":"compute#metadata", "items":[ { "key":"startup-script", "value":"#! /bin/bash\napt-get update\napt-get install apache2 -y\na2ensite default-ssl\na2enmod ssl\nvm_hostname=\"$(curl -H \"Metadata-Flavor:Google\" \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)\"\necho \"Page served from: $vm_hostname\" | \\\ntee /var/www/html/index.html\nsystemctl restart apache2" } ] }, "networkInterfaces":[ { "network":"projects/PROJECT_ID/global/networks/lb-network", "subnetwork":"regions/us-west1/subnetworks/backend-subnet", "accessConfigs":[ { "type":"ONE_TO_ONE_NAT" } ] } ], "disks": [ { "index":0, "boot":true, "initializeParams": { "sourceImage":"projects/debian-cloud/global/images/family/debian-12" }, "autoDelete":true } ] } }יוצרים קבוצת מופעי מכונה מנוהלים בכל אזור באמצעות השיטה
instanceGroupManagers.insert, ומחליפים אתPROJECT_IDבמזהה הפרויקט.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/{zone}/instanceGroupManagers { "name": "l7-xlb-backend-example", "zone": "projects/PROJECT_ID/zones/us-west1-a", "instanceTemplate": "projects/PROJECT_ID/global/instanceTemplates/l7-xlb-backend-template", "baseInstanceName": "l7-xlb-backend-example", "targetSize": 2 }
הוספת יציאה עם שם לקבוצת המופעים
מגדירים שירות HTTP לקבוצת המופעים וממפים שם של יציאה ליציאה הרלוונטית. השירות לקצה העורפי של מאזן העומסים מעביר תנועה ליציאה שצוינה.
המסוף
נכנסים לדף Instance groups במסוף Google Cloud .
לוחצים על השם של קבוצת המכונות (בדוגמה הזו
l7-xlb-backend-example).בדף סקירה כללית של קבוצת המופעים, לוחצים על עריכה .
לוחצים על ציון מיפוי של שמות יציאות.
לוחצים על Add item.
בשדה 'שם הניוד', מזינים
http. בשדה של מספר היציאה, מזינים80.לוחצים על Save.
gcloud
משתמשים בפקודה gcloud compute instance-groups
set-named-ports.
gcloud compute instance-groups set-named-ports l7-xlb-backend-example \
--named-ports http:80 \
--zone us-west1-a
Terraform
המאפיין named_port כלול בדוגמה לקבוצת מופעי מכונה מנוהלים.
שמירת כתובת ה-IP של מאזן העומסים
שומרים כתובת IP סטטית למאזן העומסים.
המסוף
נכנסים לדף Reserve a static address במסוף Google Cloud .
בוחרים שם לכתובת החדשה.
בקטע Network Service Tier, בוחרים באפשרות Standard.
בשביל IP version, בוחרים IPv4. כתובות IPv6 יכולות להיות גלובליות בלבד, ואפשר להשתמש בהן רק עם מאזני עומסים גלובליים.
בקטע Type, בוחרים באפשרות Regional.
בשדה Region, בוחרים us-west1.
משאירים את האפשרות מצורף ל במצב ללא. אחרי שיוצרים את מאזן העומסים, כתובת ה-IP הזו מצורפת לכלל ההעברה של מאזן העומסים.
לוחצים על שמירה כדי לשמור את כתובת ה-IP.
gcloud
כדי לשמור כתובת IP חיצונית סטטית באמצעות
gcloud compute, משתמשים בפקודהcompute addresses create.gcloud compute addresses create ADDRESS_NAME \ --region=us-west1 \ --network-tier=STANDARD
מחליפים את מה שכתוב בשדות הבאים:
-
ADDRESS_NAME: השם שרוצים לתת לכתובת הזו. -
REGION: האזור שבו רוצים לשריין את הכתובת הזו. האזור הזה צריך להיות זהה לאזור של מאזן העומסים. כל כתובות ה-IP האזוריות הןIPv4.
-
משתמשים בפקודה
compute addresses describeכדי לראות את התוצאה:gcloud compute addresses describe ADDRESS_NAME
Terraform
כדי לשמור את כתובת ה-IP, משתמשים במשאב google_compute_address.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
API
כדי ליצור כתובת IPv4 אזורית, קוראים לשיטה האזורית addresses.insert:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
גוף הבקשה צריך לכלול את הפרטים הבאים:
{
"name": "ADDRESS_NAME"
"networkTier": "STANDARD"
"region": "us-west1"
}מחליפים את מה שכתוב בשדות הבאים:
-
ADDRESS_NAME: השם של הכתובת -
REGION: שם האזור של הבקשה -
PROJECT_ID: מזהה הפרויקט של הבקשה הזו
הגדרת מאזן העומסים
בדוגמה הזו מוסבר איך ליצור את המשאבים הבאים של מאזן עומסים חיצוני אזורי של אפליקציות (ALB):
- בדיקת תקינות של HTTP
- שירות קצה עורפי עם קבוצת מופעי מכונה מנוהלים כקצה עורפי
- מפת URL
- אם הוגדר אזור לשרת ה-proxy של HTTP(S) ביעד, חשוב לעיין במפת URL אזורית. מפת URL אזורית מעבירה בקשות לשירות לקצה העורפי אזורי על סמך כללים שאתם מגדירים למארח ולנתיב של כתובת URL נכנסת. אפשר להפנות למפת URL אזורית רק מכלל אזורי של שרת proxy ליעד באותו אזור.
- אישור SSL (ל-HTTPS)
- שרת proxy יעד
- כלל העברה
זמינות ה-Proxy
לפעמים Google Cloud באזורים מסוימים אין מספיק קיבולת של שרת proxy למאזן עומסים חדש. במקרה כזה, כשיוצרים את איזון העומסים, מוצגת במסוף הודעת אזהרה לגבי זמינות ה-proxy. Google Cloud כדי לפתור את הבעיה, אפשר לבצע אחת מהפעולות הבאות:
- בוחרים אזור אחר למאזן העומסים. זו יכולה להיות אפשרות מעשית אם יש לכם שרתי בק-אנד באזור אחר.
- בוחרים רשת VPC שכבר הוקצתה לה תת-רשת רק לשרתי proxy.
צריך להמתין עד שהבעיה בקיבולת תיפתר.
המסוף
בחירת סוג מאזן העומסים
נכנסים לדף 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 (הגדרה).
הגדרה בסיסית
- בשדה של שם מאזן העומסים, מזינים
regional-l7-xlb. - בשדה אזור, בוחרים באפשרות
us-west1. - בשדה רשת, בוחרים באפשרות
lb-network.
שמירת תת-רשת של שרת proxy בלבד
במאזן עומסים חיצוני אזורי של אפליקציות (ALB), שומרים רשת משנה לשרת proxy בלבד:
- לוחצים על שמירת רשת משנה.
- בשדה Name (שם), מזינים
proxy-only-subnet. - בשדה טווח כתובות IP, מזינים
10.129.0.0/23. - לוחצים על הוספה.
הגדרת הקצה הקדמי
ל-HTTP:
- לוחצים על Frontend configuration.
- מגדירים את Name לערך
l7-xlb-forwarding-rule. - מגדירים את Protocol לערך
HTTP. - מגדירים את מסלול שירות הרשת בתור Standard.
- מגדירים את Port לערך
80. - בוחרים את כתובת ה-IP שיצרתם בקטע שמירת כתובת ה-IP של מאזן העומסים.
- לוחצים על סיום.
ל-HTTPS:
- לוחצים על Frontend configuration.
- בשדה שם מזינים
l7-xlb-forwarding-rule. - בשדה Protocol, בוחרים באפשרות
HTTPS (includes HTTP/2). - מגדירים את מסלול שירות הרשת בתור Standard.
- מוודאים שהיציאה Port מוגדרת ל-
443. - בוחרים את כתובת ה-IP שיצרתם בקטע שמירת כתובת ה-IP של מאזן העומסים.
כדי להקצות אישור SSL לשרת ה-proxy של HTTPS של מאזן העומסים, אפשר להשתמש באישור SSL של Compute Engine או באישור של Certificate Manager.
כדי לצרף אישור של Certificate Manager ל-Proxy היעד של HTTPS במאזן העומסים, בקטע Choose certificate repository בוחרים באפשרות Certificates.
אם כבר יש לכם אישור קיים של Certificate Manager שאתם רוצים לבחור, אתם צריכים לפעול באופן הבא:
- לוחצים על הוספת אישור.
- לוחצים על Select an existing certificate (בחירת אישור קיים) ובוחרים את האישור מתוך רשימת האישורים.
- לוחצים על בחירה.
אחרי שבוחרים את האישור החדש של Certificate Manager, הוא מופיע ברשימת האישורים.
כדי ליצור אישור חדש ב-Certificate Manager:
- לוחצים על הוספת אישור.
- לוחצים על יצירת אישור חדש.
כדי ליצור אישור חדש, פועלים לפי השלבים שמתחילים בשלב 3, כפי שמתואר באחת משיטות ההגדרה הבאות במסמכי התיעוד של Certificate Manager:
אחרי שיוצרים את האישור החדש ב-Certificate Manager, הוא מופיע ברשימת האישורים.
כדי לצרף אישור SSL של Compute Engine לשרת ה-proxy של HTTPS של מאזן העומסים, בקטע Choose certificate repository בוחרים באפשרות Classic Certificates.
- ברשימה Certificate, מבצעים את הפעולות הבאות:
- אם כבר יש לכם משאב של אישור SSL בניהול עצמי ב-Compute Engine, בוחרים את אישור ה-SSL הראשי.
- לוחצים על יצירת אישור חדש.
- בשדה שם מזינים
l7-xlb-cert. - בשדות המתאימים, מעלים את הקבצים בפורמט PEM:
- אישור
- מפתח פרטי
- לוחצים על יצירה.
- בשדה שם מזינים
- אופציונלי: כדי להוסיף אישורים בנוסף לאישור ה-SSL הראשי:
- לוחצים על הוספת אישור.
- אם כבר יש לכם אישור, בוחרים אותו מהרשימה אישורים.
- אופציונלי: לוחצים על יצירת אישור חדש ופועלים לפי ההוראות שצוינו בשלב הקודם.
- ברשימה Certificate, מבצעים את הפעולות הבאות:
בוחרים מדיניות SSL מהרשימה מדיניות SSL. אופציונלי: כדי ליצור מדיניות SSL, מבצעים את הפעולות הבאות:
- ברשימה SSL policy (מדיניות SSL), בוחרים באפשרות Create a policy (יצירת מדיניות).
- מזינים שם למדיניות ה-SSL.
- בוחרים גרסת TLS מינימלית. ערך ברירת המחדל הוא TLS 1.0.
- בוחרים אחד מהפרופילים המנוהלים על ידי Google שהוגדרו מראש, או בוחרים פרופיל בהתאמה אישית שמאפשר לבחור תכונות SSL בנפרד. מוצגות האפשרויות תכונות מופעלות ותכונות מושבתות.
- לוחצים על Save.
אם לא יצרתם מדיניות SSL, תחול מדיניות SSL שמוגדרת כברירת מחדל Google Cloud .
לוחצים על סיום.
הגדרת שירות הקצה העורפי
- לוחצים על Backend configuration.
- בתפריט Create or select backend services (יצירה או בחירה של שירותי קצה עורפי), בוחרים באפשרות Create a backend service (יצירת שירות קצה עורפי).
- מגדירים את השם של שירות הקצה העורפי ל-
l7-xlb-backend-service. - בשדה Protocol, בוחרים באפשרות HTTP.
- בשדה Named Port (יציאה עם שם), מזינים
http. - מגדירים את Backend type בתור Instance group.
- ברשימה Health check, לוחצים על Create a health check ומזינים את הפרטים הבאים:
- בשדה שם מזינים
l7-xlb-basic-check. - ברשימה Protocol, בוחרים באפשרות HTTP.
- בשדה יציאה, מזינים
80.
- בשדה שם מזינים
- לוחצים על יצירה.
- בקטע New backend (מערכת עורפית חדשה):
- מגדירים את Instance group ל-
l7-xlb-backend-example. - מגדירים את ניוד מספרים לערך
80. - מגדירים את Balancing mode (מצב איזון) לערך Utilization (ניצול).
- לוחצים על סיום.
- מגדירים את Instance group ל-
- לוחצים על יצירה.
הגדרת כללי הניתוב
- לוחצים על כללי ניתוב.
- בקטע Mode (מצב), בוחרים באפשרות Simple host and path rule (כלל פשוט של מארח ונתיב).
- מוודאים ש-
l7-xlb-backend-serviceהוא שירות הקצה העורפי היחיד לכל מארח שלא תואם ולכל נתיב שלא תואם.
בדיקת ההגדרות
- לוחצים על Review and finalize.
- בודקים את הגדרות התצורה של מאזן העומסים.
- אופציונלי: לוחצים על Equivalent code (קוד מקביל) כדי לראות את בקשת API בארכיטקטורת REST שתשמש ליצירת מאזן העומסים.
- לוחצים על יצירה.
gcloud
מגדירים את בדיקת התקינות של HTTP באמצעות הפקודה
gcloud compute health-checks create http.gcloud compute health-checks create http l7-xlb-basic-check \ --region=us-west1 \ --request-path='/' \ --use-serving-port
מגדירים את שירות הקצה העורפי באמצעות הפקודה
gcloud compute backend-services create.gcloud compute backend-services create l7-xlb-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=l7-xlb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1
מוסיפים קצה עורפי לשירות הקצה העורפי באמצעות הפקודה
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
יוצרים את מפת ה-URL באמצעות הפקודה
gcloud compute url-maps create.gcloud compute url-maps create regional-l7-xlb-map \ --default-service=l7-xlb-backend-service \ --region=us-west1
יוצרים את שרת ה-proxy של היעד.
ל-HTTP:
כדי ליצור שרת proxy ליעד למאזן עומסים של HTTP, מריצים את הפקודה
gcloud compute target-http-proxies create.gcloud compute target-http-proxies create l7-xlb-proxy \ --url-map=regional-l7-xlb-map \ --url-map-region=us-west1 \ --region=us-west1
ל-HTTPS:
אתם יכולים ליצור אישורים של Compute Engine או של Certificate Manager. אפשר להשתמש בכל אחת מהשיטות הבאות כדי ליצור אישורים באמצעות Certificate Manager:
- אישורים אזוריים בניהול עצמי. מידע על יצירה ושימוש באישורים אזוריים בניהול עצמי אין תמיכה במיפוי אישורים.
אישורים אזוריים שמנוהלים על ידי Google. אין תמיכה במיפוי אישורים.
ב-Certificate Manager יש תמיכה בסוגים הבאים של אישורים אזוריים בניהול Google:
- אישורים אזוריים שמנוהלים על ידי Google עם הרשאת DNS לכל פרויקט. מידע נוסף זמין במאמר בנושא פריסת אישור אזורי מנוהל של Google עם הרשאת DNS.
- אישורים אזוריים שמנוהלים על ידי Google (פרטיים) באמצעות Certificate Authority Service. מידע נוסף זמין במאמר בנושא פריסת אישור אזורי שמנוהל על ידי Google באמצעות Certificate Authority Service.
אחרי שיוצרים אישורים, מצרפים אותם ישירות לשרת ה-proxy של היעד.
מקצים את נתיבי הקבצים לשמות של משתנים.
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=regional-l7-xlb-map \ --region=us-west1 \ --ssl-certificates=l7-xlb-cert
יוצרים את כלל ההעברה.
ל-HTTP:
משתמשים בפקודה
gcloud compute forwarding-rules createעם הדגלים המתאימים.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --network=lb-network \ --address=ADDRESS_NAME \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-xlb-proxy \ --target-http-proxy-region=us-west1
ל-HTTPS:
יוצרים את כלל ההעברה באמצעות הפקודה
gcloud compute forwarding-rules createעם הדגלים המתאימים.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --network=lb-network \ --address=ADDRESS_NAME \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-xlb-proxy \ --target-https-proxy-region=us-west1
Terraform
כדי ליצור את בדיקת התקינות, משתמשים במשאב google_compute_region_health_check.
כדי ליצור את שירות לקצה העורפי, משתמשים במשאב google_compute_region_backend_service.
כדי ליצור את מפת ה-URL, משתמשים במשאב google_compute_region_url_map.
כדי ליצור את ה-proxy של יעד HTTP, משתמשים במשאב google_compute_region_target_http_proxy.
כדי ליצור את כלל ההעברה, משתמשים במשאב google_compute_forwarding_rule.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
API
כדי ליצור את בדיקת תקינות, שולחים בקשת POST אל ה-method regionHealthChecks.insert ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/regions/{region}/healthChecks
{
"name": "l7-xlb-basic-check",
"type": "HTTP",
"httpHealthCheck": {
"portSpecification": "USE_SERVING_PORT"
}
}
יוצרים את שירות הלקצה העורפי האזורי על ידי שליחת בקשת POST ל-method regionBackendServices.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/regions/us-west1/backendServices
{
"name": "l7-xlb-backend-service",
"backends": [
{
"group": "projects/<var>PROJECT_ID</var>/zones/us-west1-a/instanceGroups/l7-xlb-backend-example",
"balancingMode": "UTILIZATION"
}
],
"healthChecks": [
"projects/<var>PROJECT_ID</var>/regions/us-west1/healthChecks/l7-xlb-basic-check"
],
"loadBalancingScheme": "EXTERNAL_MANAGED"
}
כדי ליצור את מפת ה-URL, שולחים בקשת POST ל-method regionUrlMaps.insert ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/regions/us-west1/urlMaps
{
"name": "regional-l7-xlb-map",
"defaultService": "projects/<var>PROJECT_ID</var>/regions/us-west1/backendServices/l7-xlb-backend-service"
}
יוצרים את ה-Proxy ל-HTTP של היעד על ידי שליחת בקשת POST לשיטה regionTargetHttpProxies.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/targetHttpProxy
{
"name": "l7-xlb-proxy",
"urlMap": "projects/PROJECT_ID/global/urlMaps/regional-l7-xlb-map",
"region": "us-west1"
}
יוצרים את כלל ההעברה על ידי שליחת בקשת POST ל-method forwardingRules.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules
{
"name": "l7-xlb-forwarding-rule",
"IPAddress": "10.1.2.99",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/regions/us-west1/targetHttpProxies/l7-xlb-proxy",
"loadBalancingScheme": "EXTERNAL_MANAGED",
"network": "projects/PROJECT_ID/global/networks/lb-network",
"networkTier": "STANDARD",
}
חיבור הדומיין למאזן העומסים
אחרי שיוצרים את מאזן העומסים, רושמים את כתובת ה-IP שמשויכת למאזן העומסים – לדוגמה, 30.90.80.100. כדי להפנות את הדומיין למאזן העומסים, צריך ליצור רשומת A באמצעות שירות הרישום של הדומיין. אם הוספתם מספר דומיינים לאישור ה-SSL, צריך להוסיף רשומת A לכל אחד מהם, כשכולם מפנים לכתובת ה-IP של מאזן העומסים. לדוגמה, כדי ליצור רשומות A בשביל www.example.com ובשביל example.com, משתמשים בפקודה הבאה:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
אם אתם משתמשים ב-Cloud DNS כספק ה-DNS, תוכלו לעיין במאמר בנושא הוספה, שינוי ומחיקה של רשומות.
בדיקת מאזן העומסים
עכשיו, כששירות איזון העומסים פועל, אפשר לשלוח תעבורה לכלל ההעברה ולראות איך התעבורה מתפזרת למופעים שונים.
המסוף
נכנסים לדף Load balancing במסוף Google Cloud .
- בוחרים את מאזן העומסים שיצרתם.
- בקטע Backend, מוודאים שהמכונות הווירטואליות תקינות. העמודה Healthy אמורה להתמלא, ולציין ששתי המכונות הווירטואליות תקינות (
2/2). אם לא, נסו קודם לטעון מחדש את הדף. יכול להיות שיחלפו כמה רגעים עד שמסוף Google Cloud יציין שהמכונות הווירטואליות תקינות. אם ה-backends לא מופיעים כפעילים אחרי כמה דקות, צריך לבדוק את הגדרת חומת האש ואת תג הרשת שהוקצה למכונות הווירטואליות של ה-backend. - אחרי שבמסוף מוצג שהמופעים בעורף בריאים, אפשר לבדוק את מאזן העומסים באמצעות דפדפן אינטרנט. לשם כך, עוברים אל
https://IP_ADDRESS(או אלhttp://IP_ADDRESS) ומחליפים אתIP_ADDRESSבכתובת ה-IP של מאזן העומסים. Google Cloud - אם השתמשתם באישור בחתימה עצמית לבדיקת HTTPS, בדפדפן תוצג אזהרה. צריך להגדיר במפורש בדפדפן לאשר אישור בחתימה עצמית.
- בדפדפן אמור להיות מוצג דף עם תוכן שכולל את השם של המופע ששירת את הדף, יחד עם האזור שלו (לדוגמה,
Page served from: lb-backend-example-xxxx). אם הדפדפן לא מציג את הדף הזה, כדאי לעיין בהגדרות התצורה במדריך הזה.
gcloud
שימו לב לכתובת ה-IPv4 שהוקצתה:
gcloud beta compute addresses describe ADDRESS_NAME \
--format="get(address)" \
--region="us-west1"
כדי לבדוק את מאזן העומסים באמצעות דפדפן אינטרנט, עוברים אל https://IP_ADDRESS (או אל http://IP_ADDRESS). מחליפים את IP_ADDRESS בכתובת ה-IP של מאזן העומסים.
אם השתמשתם באישור בחתימה עצמית כדי לבדוק HTTPS, בדפדפן תוצג אזהרה. צריך להנחות את הדפדפן באופן מפורש לקבל אישור בחתימה עצמית.
בדפדפן אמור להיטען דף עם מידע מינימלי על מופע ה-Backend. אם הדפדפן לא מעבד את הדף הזה, כדאי לעיין בהגדרות התצורה במדריך הזה.
אפשרויות הגדרה נוספות
בקטע הזה אנחנו מרחיבים את דוגמת ההגדרה ומציגים אפשרויות הגדרה חלופיות ונוספות. כל המשימות הן אופציונליות. אפשר לבצע אותן בכל סדר.
הפעלת זיקה לסשן
בקטעים הבאים מוסבר איך לעדכן שירות בק-אנד עבור מאזן עומסים חיצוני אזורי לדוגמה של אפליקציות, כך ששירות הבק-אנד ישתמש בהעדפת קובצי Cookie שנוצרו, בהעדפת שדות כותרת או בהעדפת קובצי Cookie של HTTP.
כשמופעלת זיקה לקובץ Cookie שנוצר, מאזן העומסים מנפיק קובץ Cookie בבקשה הראשונה. לכל בקשה עוקבת עם אותו קובץ Cookie, מאזן העומסים מפנה את הבקשה לאותה מכונה וירטואלית או לאותו קצה עורפי. במאזני עומסים חיצוניים אזוריים של אפליקציות, קובץ ה-Cookie נקרא GCILB.
כשזיקה לשדה כותרת מופעלת, מאזן העומסים מנתב בקשות למכונות וירטואליות או לנקודות קצה בעורף הרשת (NEG) על סמך הערך של כותרת ה-HTTP שצוינה בדגל --custom-request-header. הזיקה לשדה כותרת תקפה רק אם מדיניות המיקום של איזון העומסים היא RING_HASH או MAGLEV, ופונקציית הגיבוב העקבית של שירות ה-Backend מציינת את השם של כותרת ה-HTTP.
כשמפעילים את ההצמדה של קובצי Cookie של HTTP, מאזן העומסים מנתב בקשות למכונות וירטואליות בעורף או לנקודות קצה ב-NEG, על סמך קובץ Cookie של HTTP שנקרא בדגל HTTP_COOKIE עם הדגל האופציונלי --affinity-cookie-ttl. אם הלקוח לא מספק את קובץ ה-Cookie בבקשת ה-HTTP שלו, ה-proxy יוצר את קובץ ה-Cookie ומחזיר אותו ללקוח בכותרת Set-Cookie. הזיקה לקובצי Cookie של HTTP תקפה רק אם מדיניות המיקום של איזון העומסים היא RING_HASH או MAGLEV, והגיבוב העקבי של שירות הקצה העורפי מציין את קובץ ה-Cookie של HTTP.
המסוף
כדי להפעיל או לשנות את הזיקה לסשן (session affinity) בשירות לקצה העורפי:
נכנסים לדף Load balancing במסוף Google Cloud .
בוחרים את מאזן העומסים שיצרתם.
לוחצים על Backends.
לוחצים על l7-xlb-backend-service (השם של שירות הקצה העורפי שיצרתם בדוגמה הזו) ואז על Edit.
בדף Backend service details (פרטי שירות לקצה העורפי), לוחצים על Advanced configuration (הגדרה מתקדמת).
בקטע Session affinity (העדפה לסשן), בוחרים את סוג ההעדפה לסשן הרצוי מהתפריט.
לוחצים על עדכון.
gcloud
כדי לעדכן את שירות לקצה העורפי לסוגים שונים של זיקה לסשן (session affinity), משתמשים בפקודות הבאות:l7-xlb-backend-service
gcloud compute backend-services update l7-xlb-backend-service \
--session-affinity=GENERATED_COOKIE | HEADER_FIELD | HTTP_COOKIE | CLIENT_IP
--region=us-west1
API
כדי להגדיר זיקה לסשן (session affinity), שולחים בקשת PATCH אל ה-method regionBackendServices/patch.
PATCH https://compute.googleapis.com/compute/v1/projects/<var>PROJECT_ID</var>/regions/us-west1/regionBackendServices/l7-xlb-backend-service
{
"sessionAffinity": <var>"GENERATED_COOKIE" | "HEADER_FIELD" | "HTTP_COOKIE" | "CLIENT_IP"</var>
}
עדכון פסק הזמן של שמירת החיבור בחיים ב-HTTP של הלקוח
מאזן העומסים שנוצר בשלבים הקודמים הוגדר עם ערך ברירת מחדל לזמן הקצוב לתפוגה של חיבור HTTP פעיל של לקוח.כדי לעדכן את הזמן הקצוב לתפוגה של הלקוח ב-HTTP keepalive, פועלים לפי ההוראות הבאות.
המסוף
נכנסים לדף Load balancing במסוף Google Cloud .
- לוחצים על השם של מאזן העומסים שרוצים לשנות.
- לוחצים על עריכה.
- לוחצים על Frontend configuration.
- מרחיבים את הקטע תכונות מתקדמות. בשדה HTTP keepalive timeout, מזינים ערך של פסק זמן.
- לוחצים על עדכון.
- כדי לבדוק את השינויים, לוחצים על בדיקה וסיום ואז על עדכון.
gcloud
למאזן עומסים מסוג HTTP, מעדכנים את ה-proxy של HTTP היעד באמצעות הפקודה gcloud compute target-http-proxies update.
gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \
--http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
--region=REGION
במאזן עומסים מסוג HTTPS, מעדכנים את שרת ה-proxy של HTTPS באמצעות הפקודה gcloud compute target-https-proxies update.
gcloud compute target-https-proxies update TARGET_HTTP_PROXY_NAME \
--http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
--region REGION
מחליפים את מה שכתוב בשדות הבאים:
-
TARGET_HTTP_PROXY_NAME: השם של ה-proxy ל-HTTP של היעד. -
TARGET_HTTPS_PROXY_NAME: השם של שרת ה-proxy ל-HTTPS של היעד. -
HTTP_KEEP_ALIVE_TIMEOUT_SEC: ערך הזמן הקצוב לתפוגה של HTTP keepalive, מ-5 עד 600 שניות.
הפעלת IAP במאזן עומסים חיצוני של אפליקציות (ALB)
אפשר להגדיר את IAP כך שיהיה מופעל או מושבת (ברירת מחדל). אם האפשרות הזו מופעלת, צריך לספק ערכים למאפיינים oauth2-client-id ו-oauth2-client-secret.
כדי להפעיל את IAP, מעדכנים את שירות לקצה העורפי כך שיכלול את הדגל --iap=enabled עם הערכים oauth2-client-id ו-oauth2-client-secret.
אפשר גם להפעיל את IAP למשאב Compute Engine באמצעות מסוף Google Cloud , ה-CLI של gcloud או API.
המאמרים הבאים
- המרת מאזן עומסים של אפליקציות ל-IPv6
- סקירה כללית על ניהול תעבורה במאזני עומסים חיצוניים אזוריים של אפליקציות (ALB)
- תת-רשתות לשרתי proxy בלבד
- שימוש באישורי SSL בניהול עצמי
- ניקוי ההגדרות של מאזן העומסים