בדף הזה מוסבר איך להוסיף קבוצת מופעי מכונה מנוהלים (MIG) קיימת לשירות לקצה העורפי או למאגר היעדים של מאזן עומסים.
מאזן עומסים מפזר את תנועת המשתמשים, וכך עוזר להפחית את הסיכון לבעיות בביצועים של האפליקציה. Cloud Load Balancing משתמש בקבוצות של מכונות וירטואליות, מנוהלות ולא מנוהלות, כדי להעביר תנועה. בהתאם לסוג מאזן העומסים שבו אתם משתמשים, אתם יכולים להוסיף קבוצות מכונות למאגר יעד או לשירות לקצה העורפי.
מידע על יצירת סוג ספציפי של מאזן עומסים עם קצה עורפי של MIG זמין במסמכי העזרה של Cloud Load Balancing.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
הוספה של קבוצת מופעי מכונה מנוהלים לשירות קצה עורפי
שירות לקצה העורפי נדרש ליצירה של רוב הסוגים של מאזני עומסים.
שירות לקצה העורפי יכול להכיל כמה backends. קבוצת מכונות היא סוג של בק-אנד. המופעים בקבוצת המופעים מגיבים לתנועה ממאזן העומסים. שירות הקצה העורפי יודע אילו מופעים הוא יכול להשתמש בהם, כמה תנועה הם יכולים לטפל בה וכמה תנועה הם מטפלים בה כרגע. בנוסף, שירות לקצה העורפי עוקב אחרי בדיקות תקינות ולא שולח חיבורים חדשים למכונות לא תקינות.
כדי להוסיף קבוצת מופעי מכונה מנוהלים לשירות לקצה העורפי, פועלים לפי ההוראות הבאות.
המסוף
- נכנסים לדף Load balancing במסוף Cloud de Confiance .
- לוחצים על השם של שירות לקצה העורפי שאליו רוצים להוסיף את קבוצת מופעי המכונה המנוהלים.
- לוחצים על Edit.
- לוחצים על +הוספת קצה עורפי.
- בוחרים את קבוצת המכונות שרוצים להוסיף.
- עורכים את ההגדרות האופציונליות שרוצים לשנות.
- שומרים את השינויים.
gcloud
משתמשים בפקודה add-backend:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
--instance-group=INSTANCE_GROUP \
[--instance-group-region=INSTANCE_GROUP_REGION | --instance-group-zone=INSTANCE_GROUP_ZONE] \
--balancing-mode=BALANCING_MODE
התמיכה במצב איזון משתנה בהתאם לסוג מאזן העומסים. הרשימה המלאה מופיעה במאמר מצב איזון שזמין לכל מאזן עומסים.
נדרשים פרמטרים נוספים בהתאם למצב האיזון של קבוצת מופעי מכונה מנוהלים. מידע נוסף זמין במאמר בנושא הפקודה add-backend ב-SDK.
REST
להוספת שירות לקצה העורפי באמצעות API בארכיטקטורת REST, ראה backendServices.
מגבלות
איזון עומסים עם קבוצת MIG אזורית לא תומך בקיבולת היעד max-rate במצבי האיזון RATE ו-UTILIZATION. מידע נוסף על הנחיות השימוש בכל מאזן עומסים זמין במאמר מצבי איזון והגדרות קיבולת יעד.
הוספת קבוצה של מופעי מכונה מנוהלים למאגר כתובות יעד
מאגר של מכונות וירטואליות הוא אובייקט שמכיל מופע אחד או יותר של מכונה וירטואלית. מאגר יעד משמש במאזני עומסים חיצוניים של רשת להעברת סיגנל ללא שינוי, שבהם מאזן העומסים מעביר בקשות משתמשים למאגר היעד המצורף. המופעים שכלולים במאגר היעד הזה משרתים את הבקשות האלה ומחזירים תשובה. אתם יכולים להוסיף קבוצת מופעי מכונה מנוהלים למאגר מטרות, כך שכאשר מופעים מתווספים לקבוצת מופעי המכונה או מוסרים ממנה, מאגר המטרות מתעדכן אוטומטית בהתאם לשינויים.
כדי להוסיף קבוצת מופעי מכונה מנוהלים למאגר יעד, מאגר היעד צריך להתקיים. מידע נוסף זמין במאמר בנושא הוספת מאגר יעד.
כדי להוסיף קבוצת מופעי מכונה מנוהלים קיימת למאגר מטרות, פועלים לפי ההוראות האלה. כתוצאה מכך, כל המכונות הווירטואליות ששייכות לקבוצת המופעים המנוהלת יתווספו למאגר היעדים.
המסוף
- נכנסים לדף Target Pools במסוף Cloud de Confiance .
- לוחצים על מאגר היעדים שאליו רוצים להוסיף את קבוצת המופעים.
- לוחצים על הלחצן עריכה.
- גוללים למטה לקטע VM instances (מכונות וירטואליות) ולוחצים על Select instance groups (בחירת קבוצות של מופעים).
- בוחרים קבוצת מופעים מהתפריט הנפתח.
- שומרים את השינויים.
gcloud
משתמשים בפקודה set-target-pools:
gcloud compute instance-groups managed set-target-pools INSTANCE_GROUP \
--target-pools TARGET_POOL,..where:
-
INSTANCE_GROUPהוא השם של קבוצת המכונות. -
TARGET_POOL,..הוא השם של מאגר יעד אחד או יותר שאליו רוצים להוסיף את קבוצת המכונות הזו.
REST
מבצעים קריאה ל-setTargetPools עבור MIG אזורי או MIG אזורי.
לדוגמה:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP/setTargetPools
where:
-
PROJECT_IDהוא מזהה הפרויקט של הבקשה הזו. -
REGIONהוא האזור של קבוצת המכונות. -
INSTANCE_GROUPהוא השם של קבוצת המכונות.
גוף הבקשה צריך להכיל רשימה של מזהי URI של מאגרי היעד שרוצים להוסיף אליהם את הקבוצה הזו. לדוגמה:
{
"targetPools": [
"regions/us-central1/targetPools/example-targetpool-1",
"regions/us-central1/targetPools/example-targetpool-2"
]
}הקצאת יציאות עם שמות לקבוצות של מופעי מכונה מנוהלים
יציאות עם שמות הן צמדי מפתח/ערך שמייצגים את השם והמספר של יציאה. שם היציאה מייצג שם של שירות או אפליקציה. מספר היציאה מייצג את היציאה שבה השירות או האפליקציה פועלים.
יציאות עם שמות משמשות את Cloud Load Balancing. מאזני עומסים שפועלים כשרתי proxy נרשמים ליציאה אחת עם שם בהגדרות של שירות לקצה העורפי שלהם. שם היציאה מתורגם למספר יציאה על סמך המיפוי של כל קצה עורפי של קבוצת מופעים.
לדוגמה, שירות קצה עורפי יכול להירשם ליציאה בשם http-port.
לקבוצת המופעים של השרת העורפי יכול להיות פורט בשם http-port:80. קבוצת המופעים של ה-Backend מורה למאזן העומסים לשלוח תנועה למכונה וירטואלית בקבוצה ביציאה 80 באמצעות פרוטוקול (כמו TCP). הפרוטוקול מוגדר בשירות הקצה העורפי של מאזן העומסים.
יציאות עם שם הן מטא-נתונים פשוטים שמשמשים מאזני עומסים של שרת proxy. יציאות עם שמות לא שולטות במשאבי רשת או חומת אש ב-Compute Engine.
כמה מספרי יציאות ליציאה עם שם
אפשר להקצות כמה יציאות לכל שם שירות. אפשר גם להקצות כמה שמות שירות לכל ניוד.
חשוב לזכור:
- התנועה מאוזנת בין כל היציאות עם אותו שם יציאה.
- שירות קצה עורפי נתון יכול להעביר תנועה רק ליציאה אחת עם שם בכל פעם.
אם משתמשים בכמה מספרי יציאה ליציאה עם שם, כל היציאות צריכות להיות שייכות לאותה אפליקציה.
לדוגמה,
http:80,http:8080פועל, אבלhttp:80,http:443לא פועל כי יציאה 80 בדרך כלל לא תומכת ב-TLS.
אפשר להקצות כמה יציאות עם שם בקבוצת מופעים. לדוגמה, נניח שיש שירות לקצה העורפי שנרשם ליציאה בשם http-port, ויש לו שתי קבוצות של שרתי עורף:
-
instance-group-aעם יציאה בשםhttp-port:80 -
instance-group-bעם יציאה בשםhttp-port:79
שירות הקצה העורפי הזה שולח תעבורה ליציאה 80 למכונות וירטואליות ב-instance-group-a וליציאה 79 למכונות וירטואליות ב-instance-group-b.
כשמוסיפים את אותה קבוצת מכונות לכמה שירותים לקצה העורפי (לכמה מאזני עומסים), וקבוצת המכונות משרתת יציאות שונות בכל מאזן עומסים, לא מוסיפים את כל מספרי היציאות ליציאה אחת עם שם. במקום זאת, יוצרים יציאה ייחודית עם שם וממפים אותה לקבוצת יציאות שכל שירות קצה עורפי צריך לשרת.
לדוגמה, נניח שיש לכם שלוש אפליקציות, שלכל אחת מהן יש מאזן עומסים משלה. לכל אפליקציה יש מספר יציאה משלה: 81 ל-app1, 82 ל-app2 ו-83 ל-app3. בהנחה שכל שלושת שירותי ה-Backend משתמשים בקבוצת מופעים משותפת, צריך להקצות את היציאות עם השמות לקבוצת המופעים הזו כ-[app1:81, app2:82, app3:83].
יציאות עם שם ובדיקות תקינות
כדי שיציאה עם שם עם כמה מספרי יציאות בשירות לקצה העורפי תפעל במאזן עומסים חיצוני של אפליקציות (ALB) או במאזן עומסים פנימי של אפליקציות (ALB), בדיקת תקינות צריכה לכלול את הדגל --use-serving-port במקום מספר יציאה ספציפי. האפשרות הזו לא זמינה במסוף Cloud de Confiance . כדי להגדיר את --use-serving-port, צריך להשתמש ב-Google Cloud CLI או ב-API.
לדוגמה, נניח שיש לכם אפליקציה שמאזנת את העומס בתעבורת נתונים בשלוש יציאות שונות (81, 82, 83) באותו שירות לקצה העורפי עם קבוצת מכונות אחת. אפשר להקצות את הפורטים לקבוצות המכונות האלה כ-[app:81,
82, 83]. בדיקת התקינות בתרחיש הזה חייבת לכלול את הדגל --use-serving-port.
מידע נוסף זמין במסמכי התיעוד בנושא בדיקת תקינות של איזון עומסים.
יציאות עם שם וכללים לחומת האש
יציאות עם שם לא יוצרות או משנות Cloud de Confiance כללי חומת אש. כדי לאפשר תעבורה למכונות וירטואליות של קצה עורפי, עדיין צריך ליצור את הכללים הנדרשים של חומת האש.
שירותים לקצה עורפי ויציאות עם שם
בנוסף להגדרות של קבוצת המופעים, צריך להגדיר גם את שירות לקצה העורפי. לדוגמה, נניח שהגדרתם את היציאה עם השם בקבוצת מופעים עם השם my-service-name והיציאה 8888:
gcloud compute instance-groups set-named-ports my-unmanaged-ig \
--named-ports=my-service-name:8888
לאחר מכן, צריך להפנות ליציאה עם השם בהגדרות של שירות לקצה העורפי עם --port-name בשירות לקצה העורפי שמוגדר ל-my-service-name:
gcloud compute backend-services update my-backend-service \
--port-name=my-service-name
יצירת יציאות עם שמות
המסוף
- נכנסים לדף Instance groups במסוף Cloud de Confiance .
- לוחצים על השם של קבוצת המופעים שבה רוצים לציין יציאות עם שמות. נפתח דף עם המאפיינים של קבוצת המופעים.
- לוחצים על עריכה כדי לשנות את קבוצת מופעי המכונה המנוהלים הזו.
- בקטע מיפוי יציאות, לוחצים על הוספת יציאה ומזינים את שם היציאה הרצוי ואת מספרי היציאות שרוצים לשייך לשם הזה. אם צריך להוסיף עוד רשומות, לוחצים שוב על הוספת ניוד.
- לוחצים על שמירה כדי לשמור את השינויים ולהחיל את היציאות עם השמות על המופעים בקבוצת מופעי מכונה מנוהלים.
gcloud
במקרה של קבוצות מנוהלות של מכונות, מגדירים יציאה אחת או יותר עם שם באמצעות הפקודה instance-groups managed set-named-ports.
לקבוצות לא מנוהלות, משתמשים בפקודה instance-groups set-named-ports.
gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \
--named-ports PORT_NAME:PORT,PORT_NAME:PORTלדוגמה:
gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \
--named-ports name1:80,name2:8080כדי להקצות כמה יציאות לכל שם שירות או כמה שמות לכל שירות, צריך ליצור יותר מערך אחד לכל שם או יציאה. לדוגמה, אם היציאות 10, 20 ו-80 מיועדות לאותה אפליקציה, אפשר להקצות את name1 לכל היציאות האלה. בנוסף, יכול להיות שתקצו שני שמות, name2 ו-name3, להעברה של 8080. לבסוף, אפשר להקצות את הפורט 9000 ל-name4, כמו בדוגמה הבאה:
gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \
--named-ports name1:10,name1:20,name1:80,\
name2:8080,name3:8080,\
name4:9000כדי לבדוק את ההקצאות של יציאות עם שמות לקבוצת מופעי מכונה מנוהלים, משתמשים בפקודה get-named-ports:
gcloud compute instance-groups managed get-named-ports INSTANCE_GROUP
NAME PORT name1 10 name1 20 name1 80 name2 8080 name3 8080 name4 9000
REST
instanceGroupManagers API לא כולל את ה-method setNamedPorts API. במקום זאת, משתמשים ב-instanceGroups API כדי לבצע את המשימה הזו.
יוצרים בקשה ל-API של instanceGroups וכוללים את השם של קבוצת המופעים. כדי לקבל את הערך הנוכחי של fingerprint עבור קבוצת המופעים, מקבלים מידע על קבוצה ספציפית.
כוללים את fingerprint ואת זוגות הערכים namedPorts בגוף הבקשה:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroups/INSTANCE_GROUP/setNamedPorts
{
"fingerprint": "42WmSpB8rSM=",
"namedPorts": [
{
"name": "PORT_NAME",
"port": PORT_NUMBER
},
{
"name": "PORT_NAME",
"port": PORT_NUMBER
}
]
}
לדוגמה, אם היציאות 10, 20 ו-80 מיועדות לאותה אפליקציה, אפשר להקצות את name1 לכל היציאות האלה. בנוסף, יכול להיות שתקצו שני שמות, name2 ו-name3, להעברה של 8080. לבסוף, אפשר להקצות את היציאה 9000 ל-name4, כמו בדוגמה הבאה:
POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts
{
"fingerprint": "42WmSpB8rSM=",
"namedPorts": [
{
"name": "name1",
"port": 8080
},
{
"name": "name2",
"port": 9000
}
]
}
כדי להקצות כמה יציאות לכל שם שירות, יוצרים כמה רשומות לשם השירות הזה. לדוגמה, אפשר להקצות את הפורטים 10, 20 ו-80 ל-name1. אני רוצה גם להקצות את היציאה 8080 ל-name2.
POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts
{
"fingerprint": "42WmSpB8rSM=",
"namedPorts": [
{
"name": "name1",
"port": 10
},
{
"name": "name1",
"port": 20
}
{
"name": "name1",
"port": 80
}
{
"name": "name2",
"port": 8080
}
{
"name": "name3",
"port": 80
}
{
"name": "name4",
"port": 8080
}
]
}
כדי להציג את רשימת היציאות עם השמות שכבר הוקצו לקבוצת מופעים מנוהלים, יוצרים בקשת GET שמפנה לקבוצה:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP
המאמרים הבאים
- כדאי לנסות את המדריך שימוש באיזון עומסים באפליקציות עם זמינות גבוהה.
- יוצרים תבנית של הגדרות מכונה שאפשר להשתמש בה לקבוצת מופעי מכונה מנוהלים.
- יוצרים קבוצה אזורית של מופעי מכונה מנוהלים.
- מפעילים תיקון אוטומטי בקבוצת המופעים המנוהלת.
- מפעילים שינוי גודל אוטומטי לקבוצת המופעים המנוהלת.