במאמר הזה מוסבר איך להגדיר מאזן עומסים פנימי אזורי של אפליקציות לשירותים שפועלים במכונות וירטואליות של Compute Engine.
כדי להגדיר איזון עומסים לשירותים שפועלים בקבוצות Pod של Google Kubernetes Engine (GKE), אפשר לעיין במאמר איזון עומסים מקורי של קונטיינרים באמצעות קבוצות NEG עצמאיות ובקטע צירוף של מאזן עומסים פנימי של אפליקציות (ALB) לקבוצות NEG עצמאיות.
כדי להגדיר איזון עומסים לגישה לממשקי API ולשירותים של Google באמצעות Private Service Connect, אפשר לעיין במאמר גישה לממשקי Google API אזוריים דרך קצה עורפי.
ההגדרה של מאזני עומסים פנימיים של אפליקציות (ALB) כוללת שני חלקים:
- מבצעים את המשימות הנדרשות, כמו לוודא שלחשבונות הנדרשים יש את ההרשאות הנכונות ולהכין את הרשת של הענן הווירטואלי הפרטי (VPC).
- מגדירים את משאבי מאזן העומסים.
לפני שתמשיכו לקרוא את המדריך הזה, כדאי שתכירו את המושגים הבאים:
הרשאות
כדי לפעול לפי המדריך הזה, אתם צריכים להיות מסוגלים ליצור מופעים ולשנות רשת בפרויקט. צריכות להיות לכם הרשאות בעלים או עריכה בפרויקט, או כל תפקידי ה-IAM הבאים ב-Compute Engine.
| משימה | התפקיד הנדרש |
|---|---|
| יצירת רשתות, רשתות משנה ורכיבים של מאזן עומסים | אדמין של רשתות מחשוב (roles/compute.networkAdmin)
|
| הוספה והסרה של כללים לחומת האש | אדמין לענייני אבטחה ב-Compute (roles/compute.securityAdmin)
|
| יצירת מופעים | אדמין מכונות של Compute (roles/compute.instanceAdmin.v1)
|
מידע נוסף זמין במדריכים הבאים:
סקירה כללית של ההגדרה
אפשר להגדיר מאזן עומסים פנימי של אפליקציות (ALB) כמו שמתואר בתרשים זרימת ההגדרות הכללי הבא. השלבים הממוספרים מתייחסים למספרים בתרשים.
כפי שמוצג בתרשים, בדוגמה הזו נוצר איזון עומסים פנימי של אפליקציות ברשת VPC באזור us-west1, עם שירות קצה עורפי אחד ושתי קבוצות קצה עורפיות.
הדיאגרמה מציגה את הפריטים הבאים:
רשת VPC עם שתי רשתות משנה:
תת-רשת אחת משמשת לשרתי בק-אנד (קבוצות של מופעי מכונה) ולכלל ההעברה. טווח כתובות ה-IP הראשי שלה הוא
10.1.2.0/24.תת-רשת אחת היא תת-רשת של שרת proxy בלבד באזור
us-west1. צריך ליצור רשת משנה ל-proxy בלבד בכל אזור ברשת VPC שבה משתמשים במאזני עומסים פנימיים של אפליקציות. רשת המשנה של ה-proxy בלבד באזור משותפת לכל מאזני העומסים הפנימיים של האפליקציות באזור. כתובות המקור של מנות הנתונים שנשלחות ממאזן העומסים של אפליקציות (ALB) הפנימי לקצה העורפי של השירות מוקצות מרשת המשנה של proxy בלבד. בדוגמה הזו, לתת-הרשת של האזור שמוגדרת רק לשימוש פרוקסי יש טווח כתובות IP ראשי של10.129.0.0/23, שהוא הגודל המומלץ של תת-הרשת. מידע נוסף זמין במאמר בנושא רשתות משנה של פרוקסי בלבד למאזני עומסים מבוססי Envoy.
שני כללים לחומת האש:
- כלל חומת אש שמאפשר זרימת תעבורת נתונים מתת-רשת של שרת proxy בלבד ברשת. כלומר, צריך להוסיף כלל אחד שמאפשר תעבורת נתונים ביציאות TCP
80,443ו-8080מ-10.129.0.0/23(הטווח של רשת המשנה של שרת proxy בלבד בדוגמה הזו). - כלל חומת אש נוסף עבור בקשות לבדיקת תקינות.
- כלל חומת אש שמאפשר זרימת תעבורת נתונים מתת-רשת של שרת proxy בלבד ברשת. כלומר, צריך להוסיף כלל אחד שמאפשר תעבורת נתונים ביציאות TCP
מכונות וירטואליות של Compute Engine בקצה העורפי.
קבוצות של מופעי מכונה מנוהלים או לא מנוהלים לפריסות של מכונות וירטואליות ב-Compute Engine.
בכל אזור יכול להיות שילוב של סוגי קבוצות של שרתים עורפיים, בהתאם לדרישות של הפריסה.
בדיקת תקינות אזורית שמדווחת על המוכנות של שרתי הקצה העורפי.
שירות לקצה עורפי אזורי שעוקב אחרי השימוש בקצה העורפי והתקינות שלו.
מפת URL אזורית שמנתחת את כתובת ה-URL של בקשה ומעבירה בקשות לשירותי קצה עורפיים ספציפיים על סמך המארח והנתיב של כתובת ה-URL של הבקשה.
פרוקסי HTTP או HTTPS אזורי שמקבל בקשה מהמשתמש ומעביר אותה למפת ה-URL. ל-HTTPS, מגדירים משאב אזורי של אישור SSL. אם מגדירים איזון עומסים של HTTPS, שרת ה-proxy של היעד משתמש באישור ה-SSL כדי לפענח את תעבורת ה-SSL. שרת ה-Proxy של היעד יכול להעביר תנועה למופעים שלכם באמצעות HTTP או HTTPS.
כלל העברה שכולל את כתובת ה-IP הפנימית של מאזן העומסים, כדי להעביר כל בקשה נכנסת אל שרת ה-proxy של היעד.
כתובת ה-IP הפנימית שמשויכת לכלל ההעברה יכולה להיות מכל תת-רשת באותה רשת ואותו אזור. חשוב לשים לב לתנאים הבאים:
- כתובת ה-IP יכולה להיות (אבל לא חייבת) מאותה רשת משנה כמו קבוצות השרתים העורפיים.
- כתובת ה-IP לא יכולה להיות מתת-רשת שמורה של שרת proxy בלבד, שמוגדר בה הדגל
--purposeלערךREGIONAL_MANAGED_PROXY. - אם רוצים לשתף את כתובת ה-IP הפנימית עם כמה כללי העברה, צריך להגדיר את הדגל
--purposeשל כתובת ה-IP לערךSHARED_LOADBALANCER_VIP.
בדוגמה שבדף הזה נעשה שימוש בכתובת IP פנימית שמורה לכלל ההעברה של מאזן העומסים הפנימי של האפליקציות באזור, במקום לאפשר הקצאה של כתובת IP פנימית ארעית. כשיטה מומלצת, כדאי להקצות כתובות IP לכללי העברה.
הגדרת הרשתות ורשתות המשנה
צריך רשת VPC עם שתי רשתות משנה: אחת לקצה העורפי של מאזן העומסים והשנייה לשרתי ה-proxy של מאזן העומסים. מאזן עומסים פנימי של אפליקציות הוא אזורי. התעבורה בתוך רשת ה-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 הראשי שלה.
כדי להדגים גישה גלובלית, בדוגמה הזו נוצרת גם מכונת VM שנייה של לקוח לבדיקה באזור וברשת משנה אחרים:
- אזור:
europe-west1 - רשת משנה:
europe-subnet, עם טווח כתובות IP ראשי10.3.4.0/24
הגדרת הרשתות ורשתות המשנה
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על יצירת רשת VPC.
בשדה Name (שם), מזינים
lb-network.בקטע רשתות משנה, מגדירים את מצב יצירת רשתות משנה למותאם אישית.
יוצרים רשת משנה לשרתי הבק-אנד של מאזן העומסים. בקטע New subnet (רשת משנה חדשה), מזינים את הפרטים הבאים:
- Name (שם):
backend-subnet - אזור:
us-west1 - טווח כתובות IP:
10.1.2.0/24
- Name (שם):
לוחצים על סיום.
לוחצים על הוספת רשת משנה.
יוצרים רשת משנה כדי להדגים גישה גלובלית. בקטע New subnet, מזינים את הפרטים הבאים:
- Name (שם):
europe-subnet - אזור:
europe-west1 - טווח כתובות IP:
10.3.4.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יוצרים תת-רשת ברשת
lb-networkבאזורeurope-west1באמצעות הפקודהgcloud compute networks subnets create:gcloud compute networks subnets create europe-subnet \ --network=lb-network \ --range=10.3.4.0/24 \ --region=europe-west1
API
שולחים בקשת POST אל ה-method networks.insert.
מחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks
{
"routingConfig": {
"routingMode": "REGIONAL"
},
"name": "lb-network",
"autoCreateSubnetworks": false
}
שולחים בקשת POST אל ה-method subnetworks.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",
}
שולחים בקשת POST אל ה-method subnetworks.insert.
מחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/europe-west1/subnetworks
{
"name": "europe-subnet",
"network": "projects/PROJECT_ID/global/networks/lb-network",
"ipCidrRange": "10.3.4.0/24",
"region": "projects/PROJECT_ID/regions/europe-west1",
}
הגדרת רשת המשנה ל-proxy בלבד
רשת המשנה הזו, שכוללת רק פרוקסי, מיועדת לכל מאזני העומסים האזוריים שמבוססים על Envoy באזור us-west1 של 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 address range (טווח כתובות IP), מזינים
10.129.0.0/23.לוחצים על הוספה.
gcloud
יוצרים את תת-הרשת של ה-proxy בלבד באמצעות הפקודה gcloud compute networks subnets
create.
gcloud compute networks subnets create proxy-only-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=us-west1 \
--network=lb-network \
--range=10.129.0.0/23
API
יוצרים את רשת המשנה של ה-proxy בלבד באמצעות subnetworks.insert method, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/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-ssh. כלל תעבורת נתונים נכנסת (ingress) שחל על המכונות שמתבצע עליהן איזון עומסים, שמאפשר קישוריות SSH נכנסת ביציאת TCP22מכל כתובת. אתם יכולים לבחור טווח IP של מקור מגביל יותר לכלל הזה. לדוגמה, אתם יכולים לציין רק את טווחי ה-IP של המערכת שממנה אתם מפעילים סשנים של SSH. בדוגמה הזו, תג היעדallow-sshמשמש לזיהוי המכונות הווירטואליות שכלל חומת האש חל עליהן.
fw-allow-health-check. כלל תעבורה נכנסת (ingress) שחל על המופעים שמתבצע בהם איזון עומסים, שמאפשר את כל תעבורת ה-TCP ממערכות בדיקת התקינות (ב- Google Cloud, ב-130.211.0.0/22וב-35.191.0.0/16). בדוגמה הזו נעשה שימוש בתג היעדload-balanced-backendכדי לזהות את המכונות הווירטואליות שהכלל של חומת האש חל עליהן.fw-allow-proxies. כלל תעבורת נתונים נכנסת (ingress) שחל על המכונות שעליהן מתבצע איזון עומסים, שמאפשר תעבורת TCP ביציאות80,443ו-8080משרתי ה-proxy המנוהלים של מאזן העומסים הפנימי של האפליקציות. בדוגמה הזו נעשה שימוש בתג היעדload-balanced-backendכדי לזהות את המכונות הווירטואליות שכלל חומת האש חל עליהן.
בלי כללי חומת האש האלה, הכלל default deny ingress חוסם תנועה נכנסת למופעי ה-Backend.
תגי היעד מגדירים את מופעי ה-Backend. בלי תגי היעד, כללי חומת האש חלים על כל מופעי ה-Backend ברשת ה-VPC. כשיוצרים את המכונות הווירטואליות של ה-Backend, חשוב לכלול את תגי היעד שצוינו, כמו שמוצג במאמר יצירת Backend של קבוצת מופעים של מכונות וירטואליות מנוהלות.
המסוף
נכנסים לדף Firewall policies במסוף Google Cloud .
לוחצים על יצירת כלל חומת אש כדי ליצור את הכלל שיאפשר חיבורי SSH נכנסים:
- Name (שם):
fw-allow-ssh - רשת:
lb-network - כיוון התנועה: כניסה
- פעולה במקרה של התאמה: אישור
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
allow-ssh - מסנן מקור: טווחים של IPv4
- טווחים של כתובות IPv4 של המקור:
0.0.0.0/0 - פרוטוקולים ויציאות:
- בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- מסמנים את התיבה TCP ומזינים
22כמספר היציאה.
- Name (שם):
לוחצים על יצירה.
לוחצים על יצירת כלל לחומת האש בפעם השנייה כדי ליצור את הכלל שיאפשר בדיקות תקינות שלGoogle Cloud :
- Name (שם):
fw-allow-health-check - רשת:
lb-network - כיוון התנועה: כניסה
- פעולה במקרה של התאמה: אישור
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
load-balanced-backend - מסנן מקור: טווחים של IPv4
- טווחי IPv4 של המקור:
130.211.0.0/22ו-35.191.0.0/16 - פרוטוקולים ויציאות:
- בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- מסמנים את התיבה TCP ומזינים
80כמספר היציאה.
מומלץ להגביל את הכלל הזה רק לפרוטוקולים ולפורטים שתואמים לאלה שמשמשים בבדיקת תקינות. אם משתמשים ב-tcp:80לפרוטוקול וליציאה, 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-sshכדי לאפשר קישוריות SSH למכונות וירטואליות עם תג הרשתallow-ssh. אם לא מציינים אתsource-ranges,Google Cloud מפרש את הכלל כאילו הוא מתייחס לכל מקור.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22יוצרים את הכלל
fw-allow-health-checkכדי לאפשר Google Cloudבדיקות תקינות. בדוגמה הזו, כל תנועת ה-TCP מבודקי בדיקת תקינות מורשית, אבל אפשר להגדיר קבוצה מצומצמת יותר של יציאות בהתאם לצרכים שלכם.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=load-balanced-backend \ --rules=tcpיוצרים את כלל
fw-allow-proxiesכדי לאפשר לשרתי ה-proxy של מאזן העומסים הפנימי של האפליקציה להתחבר לשרתים העורפיים (backend) שלכם. מגדירים את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
API
יוצרים את כלל חומת האש fw-allow-ssh על ידי שליחת בקשת POST ל-method firewalls.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls
{
"name": "fw-allow-ssh",
"network": "projects/PROJECT_ID/global/networks/lb-network",
"sourceRanges": [
"0.0.0.0/0"
],
"targetTags": [
"allow-ssh"
],
"allowed": [
{
"IPProtocol": "tcp",
"ports": [
"22"
]
}
],
"direction": "INGRESS"
}
יוצרים את כלל חומת האש 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": [
"130.211.0.0/22",
"35.191.0.0/16"
],
"targetTags": [
"load-balanced-backend"
],
"allowed": [
{
"IPProtocol": "tcp"
}
],
"direction": "INGRESS"
}
יוצרים את כלל חומת האש 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"
}
שמירת כתובת ה-IP של מאזן העומסים
כברירת מחדל, כתובת IP אחת משמשת לכל כלל העברה. אתם יכולים לשריין כתובת IP משותפת, כדי להשתמש באותה כתובת IP עם כמה כללי העברה. עם זאת, אם רוצים לפרסם את מאזן העומסים באמצעות Private Service Connect, לא משתמשים בכתובת IP משותפת לכלל ההעברה.
לכתובת ה-IP של כלל ההעברה, משתמשים ב-backend-subnet. אם תנסו להשתמש ברשת משנה מסוג proxy בלבד, יצירת כלל ההעברה תיכשל.
המסוף
אפשר לשמור כתובת IP פנימית עצמאית באמצעות מסוףGoogle Cloud .
- עוברים לדף VPC networks.
- לוחצים על הרשת ששימשה להגדרת קישוריות היברידית בין הסביבות.
- לוחצים על כתובות IP פנימיות סטטיות ואז על שמירת כתובת סטטית.
- בשדה Name (שם), מזינים
l7-ilb-ip-address. - בשדה רשת משנה, בוחרים באפשרות
backend-subnet. - אם רוצים לציין איזו כתובת IP להזמין, בקטע כתובת IP סטטית בוחרים באפשרות אני רוצה לבחור וממלאים כתובת IP מותאמת אישית. אחרת, המערכת מקצה לכם באופן אוטומטי כתובת IP בתת-הרשת.
- אם רוצים להשתמש בכתובת ה-IP הזו עם כמה כללי העברה, בקטע מטרה בוחרים באפשרות משותפת.
- כדי לסיים את התהליך, לוחצים על שמירה.
gcloud
מריצים את הפקודה
gcloud compute addresses createב-CLI של gcloud:gcloud compute addresses create l7-ilb-ip-address \ --region=us-west1 \ --subnet=backend-subnetאם רוצים להשתמש באותה כתובת IP עם כמה כללי העברה, צריך לציין
--purpose=SHARED_LOADBALANCER_VIP.משתמשים בפקודה
gcloud compute addresses describeכדי לראות את כתובת ה-IP שהוקצתה:gcloud compute addresses describe l7-ilb-ip-address \ --region=us-west1
יצירת קצה עורפי של קבוצת מופעי מכונה מנוהלים
בסעיף הזה נסביר איך ליצור תבנית של קבוצת מופעים וקבוצה של מופעי מכונה מנוהלים. קבוצת מופעי מכונה מנוהלים מספקת מופעי VM שמריצים את שרתי הבק-אנד של מאזן עומסים פנימי אזורי לדוגמה של אפליקציות. עבור קבוצת המופעים, אפשר להגדיר שירות HTTP ולמפות שם של יציאה ליציאה הרלוונטית. השירות לקצה העורפי של מאזן העומסים מעביר את התנועה אל היציאות שנקראות. התנועה מלקוחות מאוזנת בעומס לשרתים בקצה העורפי. למטרות הדגמה, שרתי קצה עורפיים מציגים את שמות המארחים שלהם.
המסוף
יוצרים תבנית של הגדרות מכונה. נכנסים לדף Instance templates במסוף Google Cloud .
- לוחצים על Create instance template.
- בשדה Name (שם), מזינים
l7-ilb-backend-template. - מוודאים שדיסק האתחול מוגדר לקובץ אימג' של Debian, כמו Debian GNU/Linux 12 (bookworm). בהוראות האלה נעשה שימוש בפקודות שזמינות רק ב-Debian, כמו
apt-get. - לוחצים על אפשרויות מתקדמות.
- לוחצים על Networking ומגדירים את השדות הבאים:
- בשדה Network tags (תגי רשת), מזינים את הערכים
allow-sshו-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-ilb-backend-example. - בקטע מיקום, בוחרים באפשרות אזור יחיד.
- בשדה אזור, בוחרים באפשרות
us-west1. - בשדה Zone, בוחרים באפשרות
us-west1-a. - בשדה תבנית של הגדרות מכונה, בוחרים באפשרות
l7-ilb-backend-template. מציינים את מספר המופעים שרוצים ליצור בקבוצה.
בדוגמה הזו, מציינים את האפשרויות הבאות בקטע התאמה אוטומטית לעומס:
- בקטע מצב שינוי גודל אוטומטי, בוחרים באפשרות
Off:do not autoscale. - בשדה מספר מופעים מקסימלי, מזינים
2.
אופציונלי: בקטע Autoscaling (שינוי גודל אוטומטי) בממשק המשתמש, אפשר להגדיר את קבוצת המופעים כך שמופעים יתווספו או יוסרו באופן אוטומטי בהתבסס על השימוש במעבד של המופע.
- בקטע מצב שינוי גודל אוטומטי, בוחרים באפשרות
לוחצים על יצירה.
gcloud
ההוראות ל-gcloud במדריך הזה מבוססות על ההנחה שאתם משתמשים ב-Cloud Shell או בסביבה אחרת שבה מותקן bash.
יוצרים תבנית של הגדרות מכונה וירטואלית עם שרת HTTP באמצעות הפקודה
gcloud compute instance-templates create.gcloud compute instance-templates create l7-ilb-backend-template \ --region=us-west1 \ --network=lb-network \ --subnet=backend-subnet \ --tags=allow-ssh,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-ilb-backend-example \ --zone=us-west1-a \ --size=2 \ --template=l7-ilb-backend-template
API
יוצרים את תבנית של הגדרות מכונה באמצעות השיטה instanceTemplates.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
{
"name":"l7-ilb-backend-template",
"properties":{
"machineType":"e2-standard-2",
"tags":{
"items":[
"allow-ssh",
"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\n
vm_hostname=\"$(curl -H \"Metadata-Flavor:Google\"
\\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)\"\n
echo \"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-ilb-backend-example",
"zone": "projects/PROJECT_ID/zones/us-west1-a",
"instanceTemplate": "projects/PROJECT_ID/global/instanceTemplates/l7-ilb-backend-template",
"baseInstanceName": "l7-ilb-backend-example",
"targetSize": 2
}
הגדרת מאזן העומסים
בדוגמה הזו מוסבר איך ליצור את המשאבים הבאים של מאזן עומסים פנימי אזורי של אפליקציות:
- בדיקת תקינות של 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 (פנימי או גלוי לכולם), בוחרים באפשרות Internal (פנימי) ולוחצים על Next (הבא).
- בקטע פריסה חוצה אזורים או פריסה באזור יחיד, בוחרים באפשרות הכי מתאים לעומסי עבודה אזוריים ולוחצים על הבא.
- לוחצים על Configure (הגדרה).
הגדרה בסיסית
- בשדה Name של מאזן העומסים, מזינים
l7-ilb-map. - בשדה אזור, בוחרים באפשרות
us-west1. - בקטע רשת, בוחרים באפשרות
lb-network.
הזמנת רשת משנה לשרת proxy בלבד
שמירת תת-רשת של שרת proxy בלבד:
- לוחצים על שמירת רשת משנה.
- בשדה Name (שם), מזינים
proxy-only-subnet. - בשדה IP address range (טווח כתובות IP), מזינים
10.129.0.0/23. - לוחצים על הוספה.
הגדרת שירות הקצה העורפי
- לוחצים על Backend configuration.
- בתפריט Create or select backend services (יצירה או בחירה של שירותי קצה עורפי), בוחרים באפשרות Create a backend service (יצירת שירות קצה עורפי).
- מגדירים את שם השירות לקצה העורפי ל-
l7-ilb-backend-service. - מגדירים את Backend type (סוג הבק-אנד) בתור Instance group (קבוצת מכונות).
- ברשימה בדיקת תקינות, לוחצים על יצירת בדיקת תקינות ומזינים את הפרטים הבאים:
- Name (שם):
l7-ilb-basic-check - Protocol: HTTP
- יציאה:
80
- Name (שם):
- לוחצים על יצירה.
- בקטע New backend (מערכת עורפית חדשה):
- מגדירים את Instance group ל-
l7-ilb-backend-example. - מגדירים את ניוד מספרים ל-
80. - מגדירים את Balancing mode (מצב איזון) לערך Utilization (ניצול).
- לוחצים על סיום.
- מגדירים את Instance group ל-
-
אופציונלי: הגדרת מדיניות אבטחה של קצה עורפי כברירת מחדל. מדיניות האבטחה שמוגדרת כברירת מחדל מגבילה את התנועה מעבר לסף שהמשתמש הגדיר. מידע נוסף על מדיניות אבטחה שמוגדרת כברירת מחדל זמין במאמר סקירה כללית על הגבלת קצב של יצירת בקשות.
- כדי לבטל את ההצטרפות למדיניות האבטחה שמוגדרת כברירת מחדל ב-Cloud Armor, בוחרים באפשרות
Noneברשימה Cloud Armor backend security policy. - כדי להגדיר את מדיניות האבטחה שמוגדרת כברירת מחדל ב-Cloud Armor, בוחרים באפשרות Default security policy (מדיניות האבטחה שמוגדרת כברירת מחדל) ברשימה Cloud Armor backend security policy (מדיניות האבטחה של העורף האחורי ב-Cloud Armor).
- בשדה Policy name, מאשרים את השם שנוצר באופן אוטומטי או מזינים שם למדיניות האבטחה.
- בשדה Request count (מספר הבקשות), מאשרים את מספר הבקשות שמוגדר כברירת מחדל או מזינים מספר שלם בין
1ל-10,000. - בשדה Interval, בוחרים מרווח.
- בשדה Enforce on key (החלת האכיפה על מפתח), בוחרים באחד מהערכים הבאים: All (הכול), IP address (כתובת IP) או X-Forwarded-For IP address (כתובת ה-IP של X-Forwarded-For). מידע נוסף על האפשרויות האלה זמין במאמר בנושא זיהוי לקוחות להגבלת קצב.
- כדי לבטל את ההצטרפות למדיניות האבטחה שמוגדרת כברירת מחדל ב-Cloud Armor, בוחרים באפשרות
- לוחצים על יצירה.
הגדרת מפת URL
לוחצים על Host and path rules (כללים לגבי מארח ונתיב).
בקטע Mode (מצב), בוחרים באפשרות Simple host and path rule (כלל פשוט של מארח ונתיב).
מוודאים ש-
l7-ilb-backend-serviceהוא השירות היחיד לקצה עורפי לכל מארח שלא תואם ולכל נתיב שלא תואם.
מידע על ניהול תעבורה זמין במאמר הגדרת ניהול תעבורה עבור מאזני עומסים פנימיים של אפליקציות.
הגדרת הקצה הקדמי
ל-HTTP:
- לוחצים על Frontend configuration.
- מגדירים את השם של כלל ההעברה ל-
l7-ilb-forwarding-rule. - מגדירים את Protocol לערך
HTTP. - מגדירים את Subnetwork לערך
backend-subnet. - מגדירים את Port ל-
80. - ברשימה כתובת IP, בוחרים באפשרות
l7-ilb-ip-address. - לוחצים על סיום.
ל-HTTPS:
- לוחצים על Frontend configuration.
- מגדירים את השם של כלל ההעברה ל-
l7-ilb-forwarding-rule. - מגדירים את Protocol לערך
HTTPS (includes HTTP/2). - מגדירים את Subnetwork לערך
backend-subnet. - מוודאים שהיציאה מוגדרת ל-
443, כדי לאפשר תנועה ב-HTTPS. - ברשימה כתובת IP, בוחרים באפשרות
l7-ilb-ip-address. כדי להקצות אישור 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-ilb-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 .
לוחצים על סיום.
בדיקת ההגדרות האישיות
- לוחצים על Review and finalize.
- בודקים את הגדרות ההגדרה של מאזן העומסים.
- אופציונלי: לוחצים על Equivalent code (קוד מקביל) כדי לראות את בקשת API בארכיטקטורת REST שתשמש ליצירת מאזן העומסים.
- לוחצים על יצירה.
gcloud
מגדירים את בדיקת תקינות ה-HTTP באמצעות הפקודה
gcloud compute health-checks create http.gcloud compute health-checks create http l7-ilb-basic-check \ --region=us-west1 \ --use-serving-portמגדירים את שירות לקצה העורפי באמצעות הפקודה
gcloud compute backend-services create.gcloud compute backend-services create l7-ilb-backend-service \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-ilb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1מוסיפים קצה עורפי לשירות הקצה העורפי באמצעות הפקודה
gcloud compute backend-services add-backend.gcloud compute backend-services add-backend l7-ilb-backend-service \ --balancing-mode=UTILIZATION \ --instance-group=l7-ilb-backend-example \ --instance-group-zone=us-west1-a \ --region=us-west1יוצרים את מפת ה-URL באמצעות הפקודה
gcloud compute url-maps create.gcloud compute url-maps create l7-ilb-map \ --default-service=l7-ilb-backend-service \ --region=us-west1יוצרים את שרת ה-proxy של היעד.
ל-HTTP:
כדי ליצור שרת proxy ליעד עבור מאזן עומסים פנימי של HTTP, משתמשים בפקודה
gcloud compute target-http-proxies create.gcloud compute target-http-proxies create l7-ilb-proxy \ --url-map=l7-ilb-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-ilb-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-ilb-proxy \ --url-map=l7-ilb-map \ --region=us-west1 \ --ssl-certificates=l7-ilb-certיוצרים את כלל ההעברה.
ברשתות מותאמות אישית, צריך להפנות לרשת המשנה בכלל ההעברה. שימו לב: מדובר ברשת המשנה של המכונה הווירטואלית, ולא ברשת המשנה של ה-proxy.
ל-HTTP:
משתמשים בפקודה
gcloud compute forwarding-rules createעם הדגלים המתאימים.gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --address=l7-ilb-ip-address \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-ilb-proxy \ --target-http-proxy-region=us-west1ל-HTTPS:
יוצרים את כלל ההעברה באמצעות הפקודה
gcloud compute forwarding-rules createעם הדגלים המתאימים.gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --address=l7-ilb-ip-address \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-ilb-proxy \ --target-https-proxy-region=us-west1
API
כדי ליצור את בדיקת תקינות, שולחים בקשת POST אל ה-method regionHealthChecks.insert ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/{region}/healthChecks
{
"name": "l7-ilb-basic-check",
"type": "HTTP",
"httpHealthCheck": {
"portSpecification": "USE_SERVING_PORT"
}
}
יוצרים את שירות ה-Backend האזורי על ידי שליחת בקשת POST ל-method regionBackendServices.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices
{
"name": "l7-ilb-backend-service",
"backends": [
{
"group": "projects/PROJECT_ID/zones/us-west1-a/instanceGroups/l7-ilb-backend-example",
"balancingMode": "UTILIZATION"
}
],
"healthChecks": [
"projects/PROJECT_ID/regions/us-west1/healthChecks/l7-ilb-basic-check"
],
"loadBalancingScheme": "INTERNAL_MANAGED"
}
יוצרים את מפת ה-URL על ידי שליחת בקשת POST ל-method regionUrlMaps.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/urlMaps
{
"name": "l7-ilb-map",
"defaultService": "projects/PROJECT_ID/regions/us-west1/backendServices/l7-ilb-backend-service"
}
ל-HTTP:
יוצרים את שרת ה-proxy ל-HTTP ביעד על ידי שליחת בקשת POST אל השיטה regionTargetHttpProxies.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/targetHttpProxy
{
"name": "l7-ilb-proxy",
"urlMap": "projects/PROJECT_ID/global/urlMaps/l7-ilb-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-ilb-forwarding-rule",
"IPAddress": "IP_ADDRESS",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/regions/us-west1/targetHttpProxies/l7-ilb-proxy",
"loadBalancingScheme": "INTERNAL_MANAGED",
"subnetwork": "projects/PROJECT_ID/regions/us-west1/subnetworks/backend-subnet",
"network": "projects/PROJECT_ID/global/networks/lb-network",
"networkTier": "PREMIUM"
}
ל-HTTPS:
אתם יכולים ליצור אישורים של Compute Engine או של Certificate Manager. אפשר להשתמש בכל אחת מהשיטות הבאות כדי ליצור אישורים באמצעות Certificate Manager:
- אישורים אזוריים בניהול עצמי. מידע על יצירה ושימוש באישורים אזוריים בניהול עצמי אין תמיכה במיפוי אישורים.
אישורים אזוריים שמנוהלים על ידי Google. אין תמיכה במיפוי אישורים.
ב-Certificate Manager יש תמיכה בסוגים הבאים של אישורים אזוריים בניהול Google:
- אישורים אזוריים שמנוהלים על ידי Google עם הרשאת DNS לכל פרויקט. מידע נוסף זמין במאמר בנושא פריסת אישור אזורי שמנוהל על ידי Google עם הרשאת DNS.
- אישורים אזוריים שמנוהלים על ידי Google (פרטיים) באמצעות Certificate Authority Service. מידע נוסף זמין במאמר בנושא פריסת אישור אזורי שמנוהל על ידי Google באמצעות Certificate Authority Service.
אחרי שיוצרים אישורים, מצרפים אותם ישירות לשרת ה-proxy של היעד.
קוראים את קובצי האישור והמפתח הפרטי, ואז יוצרים את אישור ה-SSL. בדוגמה הבאה אפשר לראות איך עושים את זה באמצעות Python.
יוצרים את ה-HTTPS proxy של היעד על ידי שליחת בקשת POST ל-method regionTargetHttpsProxies.insert, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/regionTargetHttpsProxy
{
"name": "l7-ilb-proxy",
"urlMap": "projects/PROJECT_ID/regions/us-west1/urlMaps/l7-ilb-map",
"sslCertificates": /projects/PROJECT_ID/regions/us-west1/sslCertificates/SSL_CERT_NAME
}
שולחים בקשת POST ל-method forwardingRules.insert כדי ליצור את כלל ההעברה, ומחליפים את PROJECT_ID במזהה הפרויקט.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules
{
"name": "l7-ilb-forwarding-rule",
"IPAddress": "IP_ADDRESS",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/regions/us-west1/targetHttpsProxies/l7-ilb-proxy",
"loadBalancingScheme": "INTERNAL_MANAGED",
"subnetwork": "projects/PROJECT_ID/regions/us-west1/subnetworks/backend-subnet",
"network": "projects/PROJECT_ID/global/networks/lb-network",
"networkTier": "PREMIUM",
}
בדיקת מאזן העומסים
כדי לבדוק את מאזן העומסים, יוצרים מכונת VM של לקוח. לאחר מכן, יוצרים סשן SSH עם המכונה הווירטואלית ושולחים תעבורה מהמכונה הווירטואלית למאזן העומסים.
יצירת מכונת VM לבדיקת הקישוריות
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על Create instance.
מגדירים את Name לערך
l7-ilb-client-us-west1-a.מגדירים את Zone לערך
us-west1-a.לוחצים על אפשרויות מתקדמות.
לוחצים על Networking ומגדירים את השדות הבאים:
- בשדה Network tags (תגי רשת), מזינים
allow-ssh. - בקטע Network interfaces (ממשקי רשת), בוחרים באפשרויות הבאות:
- רשת:
lb-network - Subnet:
backend-subnet
- רשת:
- בשדה Network tags (תגי רשת), מזינים
לוחצים על יצירה.
gcloud
gcloud compute instances create l7-ilb-client-us-west1-a \
--image-family=debian-12 \
--image-project=debian-cloud \
--network=lb-network \
--subnet=backend-subnet \
--zone=us-west1-a \
--tags=allow-ssh
הפניית תנועה למאזן העומסים
מתחברים למופע שיצרתם ובודקים שאפשר להגיע לשירותי HTTP(S) בבק-אנד באמצעות כתובת ה-IP של כלל ההעברה של מאזן העומסים הפנימי האזורי של האפליקציה, ושהתעבורה מאוזנת בין מופעי הבק-אנד.
מתחברים לכל מופע לקוח באמצעות SSH
gcloud compute ssh l7-ilb-client-us-west1-a \
--zone=us-west1-a
איך מוצאים את כתובת ה-IP של מאזן העומסים
משתמשים בפקודה gcloud compute addresses describe כדי לראות את כתובת ה-IP שהוקצתה:
gcloud compute addresses describe l7-ilb-ip-address \
--region=us-west1
אימות כתובת ה-IP שמשרתת את שם המארח
מחליפים את IP_ADDRESS בכתובת ה-IP של מאזן העומסים.
בבדיקות HTTP:
curl IP_ADDRESS
לצורך בדיקת HTTPS:
curl -k -s 'https://DOMAIN_NAME:443' --connect-to DOMAIN_NAME:443:IP_ADDRESS:443
מחליפים את DOMAIN_NAME בשם הדומיין של האפליקציה, לדוגמה, test.example.com.
הדגל -k גורם ל-curl לדלג על אימות האישור.
מריצים 100 בקשות ומוודאים שהן מאוזנות
מחליפים את IP_ADDRESS בכתובת ה-IP של מאזן העומסים.
ל-HTTP:
{
RESULTS=
for i in {1..100}
do
RESULTS="$RESULTS:$(curl --silent IP_ADDRESS)"
done
echo "***"
echo "*** Results of load-balancing: "
echo "***"
echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
echo
}
ל-HTTPS:
מחליפים את DOMAIN_NAME בשם הדומיין של האפליקציה, לדוגמה, test.example.com.
{
RESULTS=
for i in {1..100}
do
RESULTS="$RESULTS:$(curl -k -s 'https://DOMAIN_NAME:443' --connect-to DOMAIN_NAME:443:IP_ADDRESS:443)"
done
echo "***"
echo "*** Results of load-balancing: "
echo "***"
echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
echo
}
אפשרויות הגדרה נוספות
בקטע הזה אנחנו מרחיבים את דוגמת ההגדרה ומציגים אפשרויות הגדרה חלופיות ונוספות. כל המשימות הן אופציונליות. אפשר לבצע אותן בכל סדר.
הפעלה של גישה גלובלית
אתם יכולים להפעיל גישה גלובלית למאזן עומסים פנימי אזורי של אפליקציות ולמאזן עומסי רשת פנימי אזורי בשרת proxy, כדי שהלקוחות יוכלו לגשת אליהם בכל האזורים. שרתי הבק-אנד של מאזן העומסים לדוגמה חייבים להיות ממוקמים באזור אחד (us-west1).
אי אפשר לשנות כלל העברה אזורי קיים כדי להפעיל גישה גלובלית. לשם כך, צריך ליצור כלל העברה חדש ולמחוק את כלל ההעברה הקודם. בנוסף, אחרי שיוצרים כלל העברה עם גישה גלובלית, אי אפשר לשנות אותו. כדי להשבית את הגישה הגלובלית, צריך ליצור כלל העברה אזורי חדש לגישה ולמחוק את כלל ההעברה הקודם לגישה גלובלית.
כדי להגדיר גישה גלובלית, מבצעים את שינויי ההגדרה הבאים.
המסוף
יוצרים כלל העברה חדש למאזן העומסים:
נכנסים לדף Load balancing במסוף Google Cloud .
בעמודה Name (שם), לוחצים על מאזן העומסים.
לוחצים על Frontend configuration.
לוחצים על Add frontend IP and port.
מזינים את השם ואת פרטי רשת המשנה של כלל ההעברה החדש.
בשדה רשת משנה, בוחרים באפשרות backend-subnet.
בשדה כתובת IP, אפשר לבחור את אותה כתובת IP כמו בכלל העברה קיים, לשמור כתובת IP חדשה או להשתמש בכתובת IP זמנית. אפשר לשתף את אותה כתובת IP בין כמה כללי העברה רק אם מגדירים את הדגל
--purposeשל כתובת ה-IP לערךSHARED_LOADBALANCER_VIPכשיוצרים את כתובת ה-IP.בשדה מספר היציאה, מזינים
110.בקטע גישה גלובלית, בוחרים באפשרות הפעלה.
לוחצים על סיום.
לוחצים על עדכון.
gcloud
יוצרים כלל העברה חדש למאזן העומסים עם הדגל
--allow-global-access.ל-HTTP:
gcloud compute forwarding-rules create l7-ilb-forwarding-rule-global-access \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --address=10.1.2.99 \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-ilb-proxy \ --target-http-proxy-region=us-west1 \ --allow-global-accessל-HTTPS:
gcloud compute forwarding-rules create l7-ilb-forwarding-rule-global-access \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --address=10.1.2.99 \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-ilb-proxy \ --target-https-proxy-region=us-west1 \ --allow-global-accessאפשר להשתמש בפקודה
gcloud compute forwarding-rules describeכדי לבדוק אם הגישה הגלובלית מופעלת בכלל העברה. לדוגמה:gcloud compute forwarding-rules describe l7-ilb-forwarding-rule-global-access \ --region=us-west1 \ --format="get(name,region,allowGlobalAccess)"כשהגישה הגלובלית מופעלת, המילה
Trueמופיעה בפלט אחרי השם והאזור של כלל ההעברה.
יצירת מכונה וירטואלית של לקוח לבדיקת גישה גלובלית
המסוף
נכנסים לדף VM instances במסוף Google Cloud .
לוחצים על Create instance.
מגדירים את Name לערך
europe-client-vm.מגדירים את Zone לערך
europe-west1-b.לוחצים על אפשרויות מתקדמות.
לוחצים על Networking ומגדירים את השדות הבאים:
- בשדה Network tags (תגי רשת), מזינים
allow-ssh. - בקטע Network interfaces (ממשקי רשת), בוחרים באפשרויות הבאות:
- רשת:
lb-network - Subnet:
europe-subnet
- רשת:
- בשדה Network tags (תגי רשת), מזינים
לוחצים על יצירה.
gcloud
יוצרים מכונה וירטואלית של לקוח באזור europe-west1-b.
gcloud compute instances create europe-client-vm \
--zone=europe-west1-b \
--image-family=debian-12 \
--image-project=debian-cloud \
--tags=allow-ssh \
--subnet=europe-subnet
התחברות ללקוח ה-VM ובדיקת הקישוריות
משתמשים ב-
sshכדי להתחבר למכונת הלקוח.gcloud compute ssh europe-client-vm \ --zone=europe-west1-bבודקים את החיבורים למאזן העומסים כמו שעשיתם מ-
vm-clientבאזורus-west1.curl http://10.1.2.99
הפעלת זיקה לסשן
במאמר הזה מוסבר איך לעדכן שירות לקצה העורפי בדוגמה של מאזן עומסים של אפליקציות פנימי אזורי או מאזן עומסים של אפליקציות פנימי חוצה אזורים, כך ששירות לקצה העורפי ישתמש בזיקה לקובץ Cookie שנוצר, בהעדפת שדות כותרת או בהעדפת קובצי Cookie של HTTP.
כשמופעלת זיקה לקובץ Cookie שנוצר, מאזן העומסים מנפיק קובץ Cookie בבקשה הראשונה. לכל בקשה עוקבת עם אותו קובץ Cookie, מאזן העומסים מפנה את הבקשה לאותו מופע של מכונה וירטואלית (VM) או לנקודת קצה בקצה העורפי. בדוגמה הזו, קובץ ה-cookie נקרא GCILB.
כשהזיקה לשדה הכותרת מופעלת, מאזן העומסים מנתב בקשות למכונות וירטואליות (VM) או לנקודות קצה בעורף הרשת בקבוצת נקודות קצה ברשת (NEG) על סמך הערך של כותרת ה-HTTP שצוינה בדגל --custom-request-header.
הזיקה לשדה כותרת תקפה רק אם מדיניות המיקום של איזון העומסים היא RING_HASH או MAGLEV, וגיבוב עקבי של שירות לקצה העורפי מציין את השם של כותרת ה-HTTP.
כשמפעילים את ההגדרה 'שמירת העדפות (Affinity) של קובצי 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-ilb-backend-service (השם של שירות ה-Backend שיצרתם בדוגמה הזו) ואז על Edit.
- בדף Backend service details (פרטי שירות לקצה העורפי), לוחצים על Advanced configuration (הגדרות מתקדמות).
- בקטע Session affinity (העדפה לסשן), בוחרים את סוג ההעדפה לסשן שרוצים.
- לוחצים על עדכון.
gcloud
משתמשים בפקודות הבאות של Google Cloud CLI כדי לעדכן את שירות הקצה העורפי לסוגים שונים של זיקה לסשן (session affinity):
gcloud compute backend-services update l7-ilb-backend-service \
--session-affinity=[GENERATED_COOKIE | HEADER_FIELD | HTTP_COOKIE | CLIENT_IP] \
--region=us-west1
API
כדי להגדיר את הזיקה לסשן, שולחים בקשת `PATCH` אל
ה-method backendServices/patch.
PATCH https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/regionBackendServices/l7-ilb-backend-service
{
"sessionAffinity": ["GENERATED_COOKIE" | "HEADER_FIELD" | "HTTP_COOKIE" | "CLIENT_IP" ]
}
הגבלת הלקוחות שיכולים לשלוח תנועה למאזן העומסים
אתם יכולים להגביל את הגישה של לקוחות לכתובת ה-VIP של כלל ההעברה של מאזן עומסים של אפליקציות (ALB) פנימי על ידי הגדרת כללי חומת אש ליציאה בלקוחות האלה. מגדירים את כללי חומת האש האלה במכונות וירטואליות ספציפיות של לקוחות על סמך חשבונות שירות או תגים.
אי אפשר להשתמש בכללי חומת אש כדי להגביל תנועה נכנסת לכתובות VIP ספציפיות של כלל העברה פנימי של מאזן עומסים של אפליקציות. בדרך כלל, כל לקוח באותה רשת VPC ובאותו אזור כמו כתובת ה-VIP של כלל ההעברה יכול לשלוח תעבורה לכתובת ה-VIP של כלל ההעברה.
בנוסף, כל הבקשות לשרתי קצה עורפיים מגיעות משרתי proxy שמשתמשים בכתובות IP בטווח של רשת המשנה ל-proxy בלבד. אי אפשר ליצור כללי חומת אש שמאפשרים או חוסמים תעבורת נתונים נכנסת (ingress) בשרתי הקצה האלה על סמך כתובת ה-VIP של כלל ההעברה שבה משתמש לקוח.
ריכזנו כאן כמה דוגמאות לשימוש בכללים של חומת אש לתעבורת נתונים יוצאת כדי להגביל את התנועה לכתובת ה-VIP של כלל ההעברה של מאזן העומסים.
המסוף
כדי לזהות את מכונות ה-VM של הלקוח, מתייגים את מכונות ה-VM הספציפיות שרוצים להגביל. התגים האלה משמשים לשיוך כללים של חומת אש למכונות וירטואליות של לקוחות מתויגים. לאחר מכן, מוסיפים את התג לשדה TARGET_TAG
בשלבים הבאים.
כדי להגדיר את זה, אפשר להשתמש בכלל אחד של חומת אש או בכמה כללים.
כלל חומת אש יחיד לתעבורת נתונים יוצאת
אפשר להגדיר כלל אחד של חומת אש ליציאת תעבורה כדי לדחות את כל תעבורת הנתונים היוצאת שיוצאת ממכונות וירטואליות של לקוחות עם תגים אל כתובת ה-VIP של מאזן העומסים.
נכנסים לדף Firewall rules במסוף Google Cloud .
לוחצים על יצירת כלל חומת אש כדי ליצור את הכלל לדחיית תעבורת נתונים יוצאת (egress) ממכונות וירטואליות של לקוחות עם תגים אל כתובת ה-IP הווירטואלית של מאזן העומסים.
- Name (שם):
fr-deny-access - רשת:
lb-network - עדיפות:
100 - כיוון התנועה: תעבורת נתונים יוצאת
- פעולה לגבי התאמה: דחייה
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
TARGET_TAG - מסנן יעד: טווחי כתובות IP
- טווחי כתובות IP של היעד:
10.1.2.99 - פרוטוקולים ויציאות:
- בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- מסמנים את התיבה tcp ומזינים את מספר היציאה
80.
- Name (שם):
לוחצים על יצירה.
מספר כללים לחומת אש לתעבורת נתונים יוצאת
גישה שניתנת יותר להרחבה כוללת הגדרה של שני כללים. כלל ברירת מחדל בעדיפות נמוכה שמגביל את הגישה של כל הלקוחות לכתובת ה-VIP של מאזן העומסים. כלל שני עם עדיפות גבוהה יותר שמאפשר לקבוצת משנה של לקוחות מתויגים לגשת ל-VIP של מאזן העומסים. רק מכונות וירטואליות עם תג יכולות לגשת ל-VIP.
נכנסים לדף Firewall rules במסוף Google Cloud .
לוחצים על יצירת כלל לחומת האש כדי ליצור את הכלל בעדיפות הנמוכה יותר, שיחסום את הגישה כברירת מחדל:
- Name (שם):
fr-deny-all-access-low-priority - רשת:
lb-network - עדיפות:
200 - כיוון התנועה: תעבורת נתונים יוצאת
- פעולה לגבי התאמה: דחייה
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
TARGET_TAG - מסנן יעד: טווחי כתובות IP
- טווחי כתובות IP של היעד:
10.1.2.99 - פרוטוקולים ויציאות:
- בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- מסמנים את התיבה TCP ומזינים
80כמספר היציאה.
- Name (שם):
לוחצים על יצירה.
לוחצים על יצירת כלל לחומת האש כדי ליצור את הכלל עם העדיפות הגבוהה יותר, שיאפשר תעבורה ממופעים מסוימים עם תגים.
- Name (שם):
fr-allow-some-access-high-priority - רשת:
lb-network - עדיפות:
100 - כיוון התנועה: תעבורת נתונים יוצאת
- פעולה במקרה של התאמה: אישור
- יעדים: תגי יעד שצוינו
- תגי טירגוט:
TARGET_TAG - מסנן יעד: טווחי כתובות IP
- טווחי כתובות IP של היעד:
10.1.2.99 - פרוטוקולים ויציאות:
- בוחרים באפשרות פרוטוקולים ויציאות שצוינו.
- מסמנים את התיבה TCP ומזינים
80כמספר היציאה.
- Name (שם):
לוחצים על יצירה.
gcloud
כדי לזהות את מכונות ה-VM של הלקוח, מתייגים את מכונות ה-VM הספציפיות שרוצים להגביל. אחר כך מוסיפים את התג לשדה TARGET_TAG
בשלבים הבאים.
כדי להגדיר את זה, אפשר להשתמש בכלל אחד של חומת אש או בכמה כללים.
כלל חומת אש יחיד לתעבורת נתונים יוצאת
אפשר להגדיר כלל אחד של חומת אש ליציאת תעבורה כדי לדחות את כל תעבורת הנתונים היוצאת שיוצאת ממכונות וירטואליות של לקוחות עם תגים אל כתובת ה-VIP של מאזן העומסים.
gcloud compute firewall-rules create fr-deny-access \
--network=lb-network \
--action=deny \
--direction=egress \
--rules=tcp \
--priority=100 \
--destination-ranges=10.1.2.99 \
--target-tags=TARGET_TAG
מספר כללים לחומת אש לתעבורת נתונים יוצאת
גישה שניתנת להרחבה יותר כוללת הגדרה של שני כללים: כלל ברירת מחדל בעדיפות נמוכה שמגביל את הגישה של כל הלקוחות לכתובת ה-VIP של מאזן העומסים, וכלל שני בעדיפות גבוהה יותר שמאפשר לקבוצת משנה של לקוחות מתויגים לגשת לכתובת ה-VIP של מאזן העומסים. רק מכונות וירטואליות עם תג יכולות לגשת ל-VIP.
יוצרים את הכלל עם העדיפות הנמוכה יותר:
gcloud compute firewall-rules create fr-deny-all-access-low-priority \ --network=lb-network \ --action=deny \ --direction=egress \ --rules=tcp \ --priority=200 \ --destination-ranges=10.1.2.99יוצרים את הכלל עם העדיפות הגבוהה יותר:
gcloud compute firewall-rules create fr-allow-some-access-high-priority \ --network=lb-network \ --action=allow \ --direction=egress \ --rules=tcp \ --priority=100 \ --destination-ranges=10.1.2.99 \ --target-tags=TARGET_TAG
כדי להשתמש בחשבונות שירות במקום בתגים כדי לשלוט בגישה, משתמשים באפשרות --target-service-accounts במקום בדגל --target-tags כשיוצרים כללי חומת אש.
הגבלת הגישה לשרתי קצה עורפיים של מאזן עומסים פנימי של אפליקציות (ALB) על סמך רשתות משנה
אם יש הרבה כללי העברה, קשה לתחזק כללי חומת אש נפרדים או להוסיף כתובות IP חדשות עם איזון עומסים לכללים קיימים, כמו שמתואר בקטע הקודם. אחת הדרכים למנוע את זה היא להקצות כתובות IP לכלל ההעברה מרשת משנה שמורה. לאחר מכן, אפשר לאפשר או לחסום תנועה ממקרים מתויגים או מחשבונות שירות באמצעות רשת המשנה השמורה כטווח היעד לכללי חומת האש. כך תוכלו לשלוט ביעילות בגישה לקבוצה של כתובות IP וירטואליות של כללי העברה בלי שתצטרכו לתחזק כללי יציאה של חומת אש לכל כתובת IP וירטואלית.
אלה השלבים ברמה גבוהה להגדרת מאזן עומסים אזורי, בהנחה שתיצרו בנפרד את כל המשאבים הנדרשים האחרים של מאזן העומסים.
gcloud
יוצרים רשת משנה אזורית כדי להקצות כתובות IP מאוזנות עומסים לכללי העברה:
gcloud compute networks subnets create l7-ilb-restricted-subnet \ --network=lb-network \ --region=us-west1 \ --range=10.127.0.0/24יוצרים כלל העברה שבוחר כתובת מרשת המשנה. בדוגמה הבאה השתמשנו בכתובת
10.127.0.1מרשת המשנה שנוצרה בשלב הקודם.gcloud compute forwarding-rules create l7-ilb-forwarding-rule-restricted \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=l7-ilb-restricted-subnet \ --address=10.127.0.1 \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-ilb-proxy \ --target-http-proxy-region=us-west1יוצרים כלל חומת אש שמגביל את התעבורה שמיועדת לטווח כתובות ה-IP ברשת המשנה של כלל ההעברה (
l7-ilb-restricted-subnet):gcloud compute firewall-rules create restrict-traffic-to-subnet \ --network=lb-network \ --action=deny \ --direction=egress \ --rules=tcp:80 \ --priority=100 \ --destination-ranges=10.127.0.0/24 \ --target-tags=TARGET_TAG
הגדרת חלוקת משנה של הקצה העורפי
החלוקה לקבוצות משנה בשרת העורפי משפרת את הביצועים ואת יכולת ההתאמה לגודל, כי היא מקצה קבוצת משנה של שרתים עורפיים לכל אחד ממופעי ה-proxy. כשהתכונה הזו מופעלת בשירות לקצה העורפי, היא משנה את מספר השרתים העורפיים שמוקצים לכל מופע של שרת proxy באופן הבא:
ככל שמספר מופעי ה-proxy שמשתתפים באיזון העומסים גדל, גודל קבוצת המשנה קטן.
אם המספר הכולל של השרתים העורפיים ברשת חורג מהקיבולת של מופע proxy יחיד, גודל קבוצת המשנה מצטמצם באופן אוטומטי עבור כל שירות שמופעלת בו חלוקה לקבוצות משנה של שרתים עורפיים.
בדוגמה הזו אפשר לראות איך ליצור משאבים של מאזן עומסים פנימי אזורי של אפליקציות ולהפעיל חלוקה לקבוצות משנה של קצה עורפי:
- משתמשים בהגדרת הדוגמה כדי ליצור שירות קצה עורפי אזורי
l7-ilb-backend-service. מפעילים חלוקה למערכי משנה של ה-backend על ידי הגדרת הדגל
--subsetting-policyלערךCONSISTENT_HASH_SUBSETTING. מגדירים את סכימת איזון העומסים לערךINTERNAL_MANAGED.gcloud
משתמשים בפקודה
gcloudהבאה כדי לעדכן אתl7-ilb-backend-serviceעם חלוקת משנה של ה-Backend:gcloud beta compute backend-services update l7-ilb-backend-service \ --region=us-west1 \ --subsetting-policy=CONSISTENT_HASH_SUBSETTINGAPI
שולחים בקשת
PATCHאל ה-methodregionBackendServices/patch.PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/us-west1/backendServices/l7-ilb-backend-service { "subsetting": { "policy": CONSISTENT_HASH_SUBSETTING } }
אפשר גם לשפר את איזון העומסים בעורף על ידי הגדרת מדיניות localityLbPolicy.
מידע נוסף זמין במאמר בנושא מדיניות בנושא תנועה.
שימוש באותה כתובת IP בכמה כללי העברה פנימיים
כדי שכמה כללי העברה פנימיים ישתמשו באותה כתובת IP פנימית, צריך לשמור את כתובת ה-IP ולהגדיר את הדגל --purpose שלה לערך SHARED_LOADBALANCER_VIP.
gcloud
gcloud compute addresses create SHARED_IP_ADDRESS_NAME \
--region=REGION \
--subnet=SUBNET_NAME \
--purpose=SHARED_LOADBALANCER_VIP
עדכון פסק הזמן של שמירת החיבור ב-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 שניות.
המאמרים הבאים
- המרת מאזן עומסים של אפליקציות ל-IPv6
- סקירה כללית על מאזן עומסים פנימי של אפליקציות (ALB)
- תת-רשתות של שרת proxy בלבד למאזני עומסים מבוססי Envoy
- החלפה או חידוש של אישור SSL לפני שפג התוקף שלו
- ניקוי הגדרות של איזון עומסים