כשמגדירים כתובות IP עם שמירת מצב בקבוצת מופעי מכונה מנוהלים (MIG), כתובות ה-IP נשמרות כשמכונות וירטואליות בקבוצה עוברות תיקון אוטומטי, מתעדכנות ונוצרות מחדש.
אפשר לשמור כתובות IPv4 פנימיות וחיצוניות. אתם יכולים להגדיר כתובות IP שיוקצו באופן אוטומטי, או להקצות כתובות IP ספציפיות לכל מכונה וירטואלית ב-MIG.
לפני שמתחילים
- כדאי לעיין במאמרים בנושא מתי כדאי להשתמש ב-MIG עם שמירת מצב ואיך פועל MIG עם שמירת מצב.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי 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
-
- הגדרת אזור ותחום כברירת מחדל
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
מגבלות
ל-MIG עם כתובות IP עם שמירת מצב יש את המגבלות הבאות:
אין תמיכה בכתובות IPv6.
אין תמיכה בכתובות IP פנימיות ברשתות שאין להן רשתות משנה – לדוגמה, רשתות מדור קודם.
קבוצת MIG עם הגדרות ששומרות את מצב המכונה – קבוצת MIG עם שמירת מצב – כפופה למגבלות הבאות:
- אי אפשר להשתמש בהתאמה אוטומטית לעומס אם ל-MIG יש הגדרה עם שמירת מצב.
- אם רוצים להשתמש בעדכונים אוטומטיים מדורגים, צריך להגדיר את שיטת ההחלפה ל-
RECREATE. - ב-MIG אזורי עם שמירת מצב, צריך להשבית את ההפצה מחדש הפרואקטיבית (להגדיר את סוג ההפצה מחדש ל-
NONE) כדי למנוע מחיקה של מופעים עם שמירת מצב על ידי הפצה מחדש אוטומטית בין אזורים. - אם אתם משתמשים בהגדרה לכל המכונות כדי לשנות מאפיינים של תבנית הגדרות מכונה, אתם לא יכולים לציין את המאפיינים האלה בהגדרה של מכונה ספציפית ובאותו הזמן בהגדרה לכל המכונות של הקבוצה.
תמחור
החיוב על כתובות IP חיצוניות מתבצע בהתאם לתמחור של הרשת.
מתי כדאי להשתמש בכתובות IP עם שמירת מצב
שמירה על כתובות ה-IP של המופעים שימושית בתרחישים הבאים:
- האפליקציה שלכם דורשת שכתובת ה-IP תישאר סטטית אחרי שהיא הוקצתה – לדוגמה, Kafka.
- ההגדרה של האפליקציה תלויה בכתובות IP ספציפיות – לדוגמה, שרת DNS.
- משתמשים, כולל אפליקציות אחרות, ניגשים לשרת שלכם דרך כתובת IP סטטית ייעודית – לדוגמה, שרת קבצים.
- אתם צריכים להעביר עומסי עבודה קיימים בלי לשנות את הגדרות הרשת.
הגדרת כתובות IP עם שמירת מצב לכל מכונות ה-VM בקבוצה
הגדרת כתובות IP עם שמירת מצב לכל מכונות ה-VM ב-MIG שימושית בתרחישים הבאים:
- האפליקציה שלכם דורשת שכתובת ה-IP תישאר סטטית אחרי שהיא הוקצתה. אבל האפליקציה לא דורשת הקצאה של כתובות IP ספציפיות למופעים ספציפיים. אפשר להקצות כתובות IP באופן אוטומטי כשיוצרים מכונה.
- המשתמשים שלכם, כולל אפליקציות אחרות, ניגשים לשרתים שלכם דרך כתובות IP סטטיות שאתם מפרסמים אחרי פריסת האפליקציה.
- אתם רוצים ליהנות מתיקון אוטומטי של מופעים ומעדכונים אוטומטיים, תוך שמירה על כתובת ה-IP הסטטית שמוקצית אוטומטית כשיוצרים מופע.
כדי לשמור על כתובות IP פנימיות או כתובות IP חיצוניות סטטיות עבור מכונות וירטואליות קיימות ועתידיות בקבוצה, צריך להגדיר את זה במדיניות עם שמירת מצב.
כשמוסיפים הגדרת כתובת IP עם שמירת מצב למדיניות עם שמירת מצב של הקבוצה, ה-MIG מחיל את ההגדרה באופן הבא:
- במקרים של מופעים חדשים, קבוצת ה-MIG מקצה ושומרת באופן אוטומטי כתובות IP סטטיות.
- במכונות וירטואליות קיימות, קבוצת ה-MIG מקדמת כתובות IP פנימיות או חיצוניות ארעיות שנמצאות בשימוש לכתובות סטטיות, על ידי שמירת כתובות ה-IP הסטטיות התואמות.
למכונות קיימות ללא כתובות IP חיצוניות, ה-MIG מקצה ומזמין כתובות IP סטטיות, ומוסיף הגדרת גישה לממשק הרשת המתאים עם ערכי ברירת המחדל הבאים:
"accessConfigs": [ { "kind": "compute#accessConfig", "name": "External NAT", "natIP": "XX.XX.XX.XX", "networkTier": "PREMIUM", "type": "ONE_TO_ONE_NAT" } ]
כדי לשמור כתובת IP סטטית, קבוצת ה-MIG יוצרת משאב כתובת.
הגדרת כתובות IP עם שמירת מצב בזמן יצירת MIG
אפשר להשתמש במסוף Cloud de Confiance , ב-CLI של gcloud, ב-Terraform או ב-REST.
המסוף
נכנסים לדף Instance groups במסוף Cloud de Confiance .
בוחרים פרויקט ולוחצים על המשך.
לוחצים על יצירת קבוצת מופעים.
בוחרים באפשרות New managed instance group (stateful) (קבוצת מופעי מכונה מנוהלים חדשה (עם שמירת מצב)).
מציינים שם לקבוצת המכונות.
בוחרים תבנית של הגדרות מכונה.
בקטע Number of instances (מספר המכונות), מציינים את מספר המכונות שרוצים לכלול בקבוצת מופעי מכונה מנוהלים.
בקטע Stateful configuration (הגדרה עם שמירת מצב), מרחיבים את הקטע External IP (כתובת IP חיצונית) ואת הקטע Internal IP (כתובת IP פנימית) כדי להגדיר את סוגי כתובות ה-IP האלה ככתובות עם שמירת מצב.
- בקטע Stateful (עם שמירת מצב), בוחרים באפשרות Yes (כן).
- ברשימה On permanent instance deletion בוחרים את הפעולה שתתבצע בכתובת ה-IP עם שמירת הסטטוס כשמוחקים את מכונת ה-VM. האפשרויות הזמינות הן:
- ניתוק כתובת IP: (ברירת מחדל). ביטול ההקצאה של הכתובת במקרה של מחיקת מופע ושמירת הכתובת כמוקצית.
- מחיקת כתובת IP: מחיקת ההזמנה של כתובת ה-IP הסטטית כשמוחקים מכונה באופן סופי מקבוצת המכונות – למשל, כשמוחקים מכונה באופן ידני או כשמקטינים את גודל הקבוצה.
- אחרי שמסיימים את ההגדרה של שמירת מצב, לוחצים על סיום.
לוחצים על יצירה.
gcloud
כשיוצרים קבוצת MIG, כדי לציין אילו כתובות IP בממשקי הרשת מתבנית של הגדרות מכונה צריכות להיות עם שמירת מצב, משתמשים באחד או יותר מהדגלים הבאים עם הפקודה gcloud compute instance-groups managed create:
-
--stateful-internal-ipכדי לסמן כתובת IP פנימית של ממשק רשת נתון ככתובת עם שמירת מצב. -
--stateful-external-ipכדי לסמן כתובת IP חיצונית של ממשק רשת נתון ככתובת עם שמירת מצב.
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--template INSTANCE_TEMPLATE \
--size SIZE \
--instance-redistribution-type NONE \
--stateful-internal-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
--stateful-external-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE]
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_GROUP_NAME: השם של קבוצת ה-MIG שרוצים ליצור.
- INSTANCE_TEMPLATE: השם של תבנית של הגדרות מכונה שבה רוצים להשתמש כשיוצרים מכונות חדשות.
- SIZE: המספר הראשוני של מופעים שצריך בקבוצה הזו.
- NI_NAME: (אופציונלי). שם ממשק הרשת. אם לא מציינים את האפשרות הזו, צריך לציין את האפשרות
enabled, וברירת המחדל היא שמניחים שמדובר בממשק הרשת הראשי שנקראnic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין את הדגל הזה לכל כתובת IP בכל ממשק רשת. DELETE_RULE: (אופציונלי). המדיניות קובעת מה צריך לקרות למשאב הכתובת הסטטית המשויך כשמוחקים מכונת וירטואלית באופן סופי. אלה האפשרויות הזמינות:
-
never: (ברירת מחדל). לעולם אל תמחקו את כתובת ה-IP הסטטית. במקום זאת, מבטלים את ההקצאה של הכתובת במחיקת המופע ושומרים את הכתובת ככתובת שמורה. -
on-permanent-instance-deletion: מחיקת ההזמנה של כתובת ה-IP הסטטית כשמכונה נמחקת לצמיתות מקבוצת המכונות – למשל, כשמוחקים מכונה באופן ידני או כשמקטינים את גודל הקבוצה.
ללא קשר לערך של כלל המחיקה, הקבוצה תמיד שומרת כתובות IP עם שמירת מצב בפעולות של תיקון אוטומטי של מופע, עדכון ויצירה מחדש.
-
דוגמה
צריך ליצור קבוצה אזורית של מכונות וירטואליות עם כתובות IP פנימיות סטטיות לרשתות ברירת המחדל ולרשתות המותאמות אישית, וכתובות IP חיצוניות סטטיות רק לרשת ברירת המחדל. אתם רוצים שהכתובות יוקצו באופן אוטומטי, אבל אתם צריכים שהן יישמרו במהלך תיקון תוכנה אוטומטי (autohealing) של מכונה, עדכונים ואירועי יצירה מחדש. אתם מאחסנים את הגדרת המכונה בתבנית של הגדרות מכונה בשם node-template.
כדי ליצור את הקבוצה, מריצים את הפקודה הבאה:
gcloud compute instance-groups managed create example-group \
--region us-east1 \
--template node-template \
--base-instance-name node \
--instance-redistribution-type NONE \
--size 3 \
--stateful-internal-ip interface-name=nic0,auto-delete=on-permanent-instance-deletion
--stateful-internal-ip interface-name=nic1,auto-delete=on-permanent-instance-deletion
--stateful-external-ip enabled,auto-delete=on-permanent-instance-deletion
כתובות ה-IP הפנימיות בממשקי הרשת nic0 ו-nic1 וכתובת ה-IP החיצונית בממשק הרשת nic0 מוגדרות ככתובות עם שמירת מצב לכל המופעים בקבוצה. הקבוצה שומרת באופן אוטומטי כתובות IP סטטיות פנימיות וכתובות IP חיצוניות לכל מופע. הקבוצה תמחק באופן אוטומטי את ההזמנות של כתובות ה-IP הסטטיות כשמוחקים את המופעים המשויכים או את הקבוצה כולה, כי הדגל auto-delete מוגדר לערך on-permanent-instance-deletion.
כדי לוודא שכתובות ה-IP הפנימיות בממשקי הרשת nic0 ו-nic1 וכתובת ה-IP החיצונית בממשק הרשת nic0 מוגדרות ככתובות עם שמירת מצב, מריצים את הפקודה הבאה:
gcloud compute instance-groups managed describe example-group \
--zone us-east1-cהפלט אמור להיראות כך:
baseInstanceName: node
...
name: example-group
...
statefulPolicy:
preservedState:
internalIPs:
nic0:
autoDelete: ON_PERMANENT_INSTANCE_DELETION
nic1:
autoDelete: ON_PERMANENT_INSTANCE_DELETION
externalIPs:
nic0:
autoDelete: ON_PERMANENT_INSTANCE_DELETION
...
אפשר לראות שהמדיניות עם שמירת מצב של הקבוצה מכריזה על כתובות IP פנימיות בממשקי הרשת nic0 ו-nic1 ועל כתובות IP חיצוניות בממשק הרשת nic0 כמדיניות עם שמירת מצב, עם הכלל למחיקת הזמנות של כתובות IP סטטיות במחיקה קבועה של מכונה.
Terraform
אם עדיין לא יצרתם תבנית של הגדרות מכונה שמציינת את סוג המכונה, את תמונת דיסק האתחול, את הרשת ומאפיינים אחרים של ה-VM שאתם רוצים לכל VM ב-MIG, אתם צריכים ליצור תבנית של הגדרות מכונה.
כשיוצרים קבוצת MIG, כדי לציין אילו כתובות IP בממשקי הרשת מתבנית של הגדרות מכונה צריכות להיות עם שמירת מצב, משתמשים באחד מהבלוקים הבאים או יותר:
-
stateful_internal_ipכדי לסמן כתובת IP פנימית של ממשק רשת נתון ככתובת עם שמירת מצב. -
stateful_external_ipכדי לסמן כתובת IP חיצונית של ממשק רשת נתון ככתובת עם שמירת מצב.
בדוגמה הבאה מוגדרות כתובות IP עם שמירת מצב כשיוצרים MIG אזורי. מידע נוסף על המשאב שבו נעשה שימוש בדוגמה זמין במאמר google_compute_region_instance_group_manager
משאב.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
REST
בעת יצירת MIG, כדי לציין אילו כתובות IP בתוך ממשקי רשת מתבנית של הגדרות מכונה צריכות להיות עם שמירת מצב, יש לכלול אותן ב-statefulPolicy שדה בגוף הבקשה שלinstanceGroupManagers.insert אוֹregionInstanceGroupManagers.insert שִׁיטָה:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers
{
"name": "INSTANCE_GROUP_NAME",
"versions": [
{
"instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
}
],
"targetSize": SIZE,
"statefulPolicy": {
"preservedState": {
"internalIPs": {
"NI_NAME": {"autoDelete": "DELETE_RULE" }
},
"externalIPs": {
"NI_NAME": {"autoDelete": "DELETE_RULE" }
}
}
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
}
}
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT: מזהה הפרויקט של הבקשה.
- REGION: במקרים של קבוצות אזוריות של MIG, האזור שבו הקבוצה ממוקמת. ל-MIG אזורי, מחליפים את
regions/REGIONב-zones/ZONEומציינים את האזור שבו נמצא ה-MIG. - NAME: השם של קבוצת המכונות המנוהלת שרוצים ליצור.
- INSTANCE_TEMPLATE: השם של תבנית של הגדרות מכונה שבה רוצים להשתמש כשיוצרים מופעים חדשים.
- SIZE: המספר הראשוני של מופעים שצריך בקבוצה הזו.
- NI_NAME: (אופציונלי). שם ממשק הרשת. אם לא מציינים את האפשרות הזו, צריך לציין את האפשרות
enabled, והמערכת מניחה כברירת מחדל שמדובר בממשק הרשת הראשי שנקראnic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין כמה NI_NAMES. DELETE_RULE: (אופציונלי) מגדיר מה צריך לקרות למשאב Address סטטי משויך כשמכונת VM נמחקת באופן סופי. אלה האפשרויות הזמינות:
-
NEVER: (ברירת מחדל) כתובת ה-IP הסטטית לא תימחק אף פעם. במקום זאת, מבטלים את ההקצאה של הכתובת כשמוחקים את המופע ושומרים את הכתובת ככתובת שמורה. -
ON_PERMANENT_INSTANCE_DELETION: מחיקת ההזמנה של כתובת ה-IP הסטטית כשמכונה נמחקת לצמיתות מקבוצת המכונות – למשל, כשמוחקים מכונה באופן ידני או כשמקטינים את גודל הקבוצה.
ללא קשר לערך של כלל המחיקה, הקבוצה תמיד שומרת כתובות IP עם שמירת מצב בפעולות של תיקון אוטומטי של מופע, עדכון ויצירה מחדש.
-
דוגמה
צריך ליצור קבוצה אזורית של מכונות וירטואליות עם כתובות IP פנימיות סטטיות לרשתות ברירת המחדל ולרשתות המותאמות אישית, וכתובות IP חיצוניות סטטיות רק לרשת ברירת המחדל. אתם רוצים שהכתובות יוקצו באופן אוטומטי, אבל אתם צריכים שהן יישמרו במהלך תיקון תוכנה אוטומטי (autohealing) של מכונה, עדכונים ואירועי יצירה מחדש. אתם מאחסנים את הגדרת המכונה בתבנית של הגדרות מכונה בשם node-template.
כדי ליצור את הקבוצה, משתמשים בשיטה regionInstanceGroupManagers.insert:
POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers
{
"name": "example-group",
"baseInstanceName": "node",
"versions": [
{
"instanceTemplate": "global/instanceTemplates/node-template"
}
],
"targetSize": 3,
"statefulPolicy": {
"preservedState": {
"internalIPs": {
"nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" },
"nic1": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
}
"externalIPs": {
"nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
}
}
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
}
}
כתובות ה-IP הפנימיות בממשקי הרשת nic0 ו-nic1 וכתובות ה-IP החיצוניות בממשק הרשת nic0 מוגדרות ככתובות עם שמירת מצב לכל המופעים בקבוצה. הקבוצה שומרת באופן אוטומטי כתובות IP סטטיות פנימיות וכתובות IP חיצוניות לכל מופע. מכיוון שהשדה auto-delete מוגדר ל-ON_PERMANENT_INSTANCE_DELETION, הקבוצה תמחק אוטומטית את ההזמנות של כתובות ה-IP הסטטיות כשמוחקים מופעים משויכים או את כל הקבוצה.
כדי לוודא שכתובות ה-IP הפנימיות בממשקי הרשת nic0 ו-nic1 וכתובות ה-IP החיצוניות בממשק הרשת nic0 מוגדרות במדיניות עם שמירת מצב של משאב regionInstanceGroupManagers החדש, משתמשים בשיטה regionInstanceGroupManagers.get:
GET https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group
התשובה מכילה את המדיניות המוגדרת עם שמירת מצב:
{
"name": "example-group",
"baseInstanceName": "node",
...
"statefulPolicy": {
"preservedState": {
"internalIPs": {
"nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" },
"nic1": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
}
"externalIPs": {
"nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
}
}
}
...
}
אפשר לראות שהמדיניות עם שמירת מצב של הקבוצה מגדירה כתובות IP פנימיות בממשקי הרשת nic0 ו-nic1 וכתובות IP חיצוניות בממשק הרשת nic0 ככתובות עם שמירת מצב, עם הכלל למחיקת ההזמנות המשויכות של כתובות IP סטטיות במקרה של מחיקה קבועה של מכונה.
הגדרה ועדכון של הגדרות stateful לכתובות IP בקבוצת מופעים מנוהלת (MIG) קיימת
אם אתם מריצים עומס עבודה ב-MIG בלי שמירת מצב (MIG ללא הגדרה של שמירת מצב), ועומס העבודה דורש כתובות IP סטטיות, אתם יכולים להגדיר כתובות IP שכבר הוקצו למופעים של מכונות וירטואליות מנוהלות כך שיהיה להן שמירת מצב. כך תוכלו לוודא שכתובות ה-IP של מכונות ה-VM הקיימות יישמרו באירועים של תיקון אוטומטי של מופעים, עדכונים ויצירה מחדש. אפשר גם לשמור את ההקצאות של כתובות ה-IP הסטטיות אחרי שהמופעים נמחקים.
אם מגדירים מדיניות עם שמירת מצב לכתובות IP בקבוצת MIG קיימת, אפשר:
- הגדרת כתובות IP ככתובות עם שמירת מצב לכל המופעים הקיימים והעתידיים בקבוצה. הפעולה הזו מקדמת את כתובות ה-IP הארעיות התואמות של כל המכונות הקיימות לכתובות IP סטטיות.
- מעדכנים את ההגדרות הקיימות של כתובות ה-IP.
ה-MIG מחיל את ההגדרה המעודכנת במדיניות עם שמירת מצב באופן אוטומטי ואסינכרוני על כל המופעים. עדכונים בהגדרות של כתובות IP במדיניות עם שמירת מצב לא משבשים את הפעולה של מופעי מכונות וירטואליות. מידע נוסף על החלת עדכוני מדיניות עם שמירת מצב
המסוף
נכנסים לדף Instance groups במסוף Cloud de Confiance .
לוחצים על השם של קבוצת המופעים שרוצים לציין עבורה כתובות IP עם שמירת מצב.
לוחצים על עריכה כדי לשנות את קבוצת מופעי המכונה המנוהלים.
לוחצים על Stateful & per-instance configuration (הגדרות Stateful ו-per-instance) כדי להרחיב את הקטע.
בקטע Group config, לוחצים על כתובת IP חיצונית ועל כתובת IP פנימית שרוצים להגדיר כ-stateful.
- בקטע Stateful (עם שמירת מצב), בוחרים באפשרות Yes (כן).
- ברשימה On permanent instance deletion בוחרים את הפעולה שתתבצע בכתובת ה-IP עם שמירת הסטטוס כשמוחקים את מכונת ה-VM. האפשרויות הזמינות הן:
- ניתוק כתובת IP: (ברירת מחדל). ביטול ההקצאה של הכתובת במקרה של מחיקת מופע ושמירת הכתובת כמוקצית.
- מחיקת כתובת IP: מחיקת השמורה של כתובת ה-IP הסטטית כשמוחקים מכונה באופן סופי מקבוצת המכונות – למשל, כשמוחקים מכונה באופן ידני או כשמקטינים את גודל הקבוצה.
- אחרי שמעדכנים את ההגדרה עם שמירת מצב, לוחצים על סיום.
- לוחצים על שמירה כדי להשלים את העדכון.
gcloud
כדי לציין אילו כתובות IP צריכות להיות עם שמירת מצב או כדי לעדכן את הגדרת כתובות ה-IP עם שמירת מצב עבור MIG קיים, משתמשים בדגל --stateful-internal-ip או --stateful-external-ip אחד או יותר עם הפקודה gcloud compute instance-groups managed update.
gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
--stateful-internal-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
--stateful-external-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE]
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_GROUP_NAME: השם של ה-MIG שרוצים לעדכן.
- NI_NAME: (אופציונלי). שם ממשק הרשת. אם לא מציינים את האפשרות הזו, צריך לציין את האפשרות
enabled, וברירת המחדל היא שמניחים שמדובר בממשק הרשת הראשי שנקראnic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין את הדגל הזה לכל כתובת IP בכל ממשק רשת. DELETE_RULE: (אופציונלי). מגדיר מה צריך לקרות למשאב כתובת סטטית משויכת כשמוחקים מכונה וירטואלית (VM) באופן סופי. אלה האפשרויות הזמינות:
-
never: (ברירת מחדל). לעולם אל תמחקו את כתובת ה-IP הסטטית. במקום זאת, מבטלים את ההקצאה של הכתובת במחיקת המופע ושומרים את הכתובת ככתובת שמורה. -
on-permanent-instance-deletion: מחיקת ההזמנה של כתובת ה-IP הסטטית כשמכונה נמחקת לצמיתות מקבוצת המכונות – למשל, כשמוחקים מכונה באופן ידני או כשמקטינים את גודל הקבוצה.
ללא קשר לערך של כלל המחיקה, הקבוצה תמיד שומרת כתובות IP עם שמירת מצב בפעולות של תיקון אוטומטי של מופע, עדכון ויצירה מחדש.
-
אם כתובת ה-IP שצוינה כבר מוגדרת במדיניות עם שמירת מצב לממשק רשת נתון, הפקודה מעדכנת את ההגדרה.
דוגמה
אתם צריכים לחשוף שרת קבצים שפועל ב-MIG עם שמירת מצב שנקרא example-fs-group למשתמשים חיצוניים באמצעות כתובות IP חיצוניות סטטיות.
למופעים בקבוצה יש כתובות IP חיצוניות זמניות.
צריך לוודא שכתובות ה-IP נשמרות בתיקון תוכנה אוטומטי (autohealing) של המכונה ובעדכונים שלה, כדי שלמשתמשים חיצוניים תהיה גישה רציפה לשרתים דרך כתובות ה-IP שפורסמו. בנוסף, צריך לשמור את כתובות ה-IP שהוקצו להמשכיות במקרה של מחיקת קבוצה לא מכוונת.
מעדכנים את קבוצת ה-MIG כדי להגדיר את כתובות ה-IP החיצוניות ככתובות עם שמירת מצב באמצעות הפקודה הבאה:
gcloud compute instance-groups managed update example-fs-group \
--stateful-external-ip enabled
כתוצאה מכך, הקבוצה מקדמת כתובות IP חיצוניות ארעיות בממשק הרשת nic0 לכתובות IP סטטיות לכל המכונות המנוהלות באופן אסינכרוני.
כתובות ה-IP החיצוניות נשמרות עכשיו באירועים של תיקון אוטומטי, עדכון ויצירה מחדש של מופעים. ההזמנות המשויכות של כתובות IP סטטיות לא מוקצות ונשמרות במחיקת המופע, כי כלל auto-delete הלא מוגדר מוגדר כברירת מחדל לערך never.
כדי לוודא שכתובת ה-IP החיצונית עם שמירת מצב מוגדרת במדיניות עם שמירת מצב, מריצים את הפקודה gcloud compute instance-groups managed describe example-fs-group.
REST
כדי לציין אילו כתובות IP צריכות להיות סטייטפול או כדי לעדכן את הגדרת ה-IP הסטייטפול של MIG קיים, משתמשים בשיטה instanceGroupManagers.patch או regionInstanceGroupManagers.patch:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
{
"statefulPolicy": {
"preservedState": {
"internalIPs": {
"NI_NAME": {"autoDelete": "DELETE_RULE" }
},
"externalIPs": {
"NI_NAME": {"autoDelete": "DELETE_RULE" }
}
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT: מזהה הפרויקט של הבקשה.
- REGION: במקרים של קבוצות אזוריות של MIG, האזור שבו הקבוצה ממוקמת. ל-MIG אזורי, מחליפים את
regions/REGIONב-zones/ZONEומציינים את האזור שבו נמצא ה-MIG. - NAME: השם של קבוצת המכונות המנוהלת שרוצים ליצור.
- NI_NAME: (חובה) השם של ממשק הרשת. ממשק הרשת הראשי נקרא
nic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין כמה NI_NAMES. DELETE_RULE: (אופציונלי) מגדיר מה צריך לקרות למשאב Address סטטי משויך כשמכונת VM נמחקת באופן סופי. אלה האפשרויות הזמינות:
-
NEVER: (ברירת מחדל) כתובת ה-IP הסטטית לא תימחק אף פעם. במקום זאת, מבטלים את ההקצאה של הכתובת כשמוחקים את המופע ושומרים את הכתובת ככתובת שמורה. -
ON_PERMANENT_INSTANCE_DELETION: מחיקת ההזמנה של כתובת ה-IP הסטטית כשמכונה נמחקת לצמיתות מקבוצת המכונות – למשל, כשמוחקים מכונה באופן ידני או כשמקטינים את גודל הקבוצה.
ללא קשר לערך של כלל המחיקה, הקבוצה תמיד שומרת כתובות IP עם שמירת מצב בפעולות של תיקון אוטומטי של מופע, עדכון ויצירה מחדש.
-
אם כתובת ה-IP שצוינה כבר מוגדרת במדיניות עם שמירת מצב, השיטה מתקנת את ההגדרה.
דוגמה
אתם צריכים לחשוף שרת קבצים שפועל ב-MIG עם שמירת מצב שנקרא example-fs-group למשתמשים חיצוניים באמצעות כתובות IP חיצוניות סטטיות.
למופעים בקבוצה יש כתובות IP חיצוניות זמניות.
חשוב לוודא שכתובות ה-IP נשמרות בתיקון אוטומטי של המכונה ובעדכונים שלה, כדי שלמשתמשים חיצוניים תהיה גישה רציפה לשרתים דרך ממשק הרשת שפורסם. בנוסף, צריך לשמור את כתובות ה-IP שמוקצות להמשכיות במקרה של מחיקת קבוצה לא מכוונת.
מבצעים תיקון של ה-MIG כדי להגדיר את כתובות ה-IP החיצוניות ככתובות עם שמירת מצב:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-fs-group
{
"statefulPolicy": {
"preservedState": {
"externalIPs": {
"nic0": {"autoDelete": "NEVER" }
}
}
}
}
כתוצאה מכך, הקבוצה מקדמת כתובות IP חיצוניות ארעיות בממשק הרשת nic0 לכתובות IP סטטיות לכל המכונות המנוהלות באופן אסינכרוני.
כתובות ה-IP החיצוניות נשמרות עכשיו באירועים של תיקון אוטומטי, עדכון ויצירה מחדש של מופעים. ההזמנות המשויכות של כתובות IP סטטיות יבוטלו ויישמרו במחיקת המופע, כי הכלל autoDelete מוגדר ל-NEVER.
כדי לוודא שכתובת ה-IP החיצונית מוגדרת במדיניות עם שמירת מצב, צריך להציג את המשאב regionInstanceGroupManagers שמוחזר על ידי השיטה regionInstanceGroupManagers.get.
הצהרה על כתובות IP שהיו עם שמירת מצב ככתובות IP ללא שמירת מצב
יכול להיות שתצטרכו להגדיר כתובת IP עם שמירת מצב כך שתהפוך לכתובת זמנית – למשל, מהסיבות הבאות:
- אתם משנים את הארכיטקטורה של האפליקציה כך שהיא לא תסתמך יותר על כתובות IP סטטיות.
- הגדרתם את כתובת ה-IP ככתובת עם שמירת מצב בטעות, ואתם רוצים לבטל את ההגדרה.
אתם יכולים להסיר את הגדרת ה-IP עם שמירת מצב מהמדיניות עם שמירת מצב של הקבוצה כדי להגדיר כתובת IP בממשק רשת נתון ככתובת זמנית לכל המכונות המנוהלות.
כשמסירים הגדרת IP עם שמירת מצב ממדיניות עם שמירת מצב, ה-MIG מסיר את כתובות ה-IP באופן אוטומטי ואסינכרוני מהמצב שנשמר של כל המופעים בקבוצה. הפעולה הזו לא משבשת את הפעלת מכונות וירטואליות. כתובות ה-IP נשארות פעילות במופעים, אבל הן כבר לא stateful. כשיוצרים מחדש את המופעים או מעדכנים אותם, או כשהמופעים מתקנים את עצמם באופן אוטומטי, קבוצת ה-MIG מבטלת את ההקצאה של כתובות ה-IP הסטטיות המשויכות ומקצה באופן אוטומטי כתובות זמניות. אם כבר לא צריך לשמור את כתובות ה-IP החיצוניות הסטטיות, אפשר לבטל את השמירה שלהן.
מידע נוסף זמין במאמרים הבאים:
המסוף
נכנסים לדף Instance groups במסוף Cloud de Confiance .
לוחצים על השם של קבוצת המופעים שרוצים להסיר ממנה את ההגדרה עם שמירת הסטטוס של כתובות ה-IP.
לוחצים על עריכה כדי לשנות את קבוצת מופעי המכונה המנוהלים.
לוחצים על Stateful & per-instance configuration (הגדרות Stateful ו-per-instance) כדי להרחיב את הקטע.
בקטע Group config, מרחיבים את External IP ואת כתובת ה-IP Internal שרוצים להפוך ללא סטטית.
- משנים את האפשרות Stateful לNo.
- לוחצים על סיום.
אחרי שמבצעים את השינויים, לוחצים על שמירה.
gcloud
כדי לציין אילו כתובות IP ממדיניות stateful של MIG יהיו זמניות, משתמשים בדגל --remove-stateful-internal-ips או --remove-stateful-external-ips עם הפקודה gcloud compute instance-groups managed update:
gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
--remove-stateful-internal-ips NI_NAME[,NI_NAME,...] \
--remove-stateful-external-ips NI_NAME[,NI_NAME,...]
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_GROUP_NAME: השם של ה-MIG שרוצים לעדכן.
- NI_NAME: (חובה). שם ממשק הרשת. ממשק הרשת הראשי נקרא
nic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין כמה NI_NAMES.
אם אתם צריכים להפוך כתובת IP עם שמירת מצב מממשק הרשת הראשי שמוגדר כברירת מחדל ושנקרא nic0 לכתובת IP ארעית, אתם יכולים להשתמש גם בפקודה הבאה:
gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
--stateful-internal-ip disabled \
--stateful-external-ip disabled
דוגמה
האפליקציה שלך נחשפה למשתמשים דרך כתובות IP חיצוניות סטטיות שפורסמו של מופעי מכונות וירטואליות בקבוצת מופעים מנוהלת (MIG) בשם example-group.
ביצעתם ארכיטקטורה מחדש של השירות על ידי פריסת מאזן עומסים מול ה-MIG וניתוב התנועה למכונות הווירטואליות המנוהלות דרכו.
אתם לא צריכים יותר לתחזק את כתובות ה-IP החיצוניות הסטטיות, ואתם רוצים להפוך את כתובות ה-IP החיצוניות של המכונות הווירטואליות לארעיות.
כדי להפוך את כתובות ה-IP החיצוניות הסטטיות של מכונות וירטואליות ב-MIG לזמניות, מריצים את הפקודה הבאה:
gcloud compute instance-groups managed update example-group \
--remove-stateful-external-ips nic0
ה-MIG מסיר באופן אוטומטי ואסינכרוני את כתובות ה-IP החיצוניות הסטטיות של nic0ממשק הרשת מהמצב שנשמר של כל המופעים בקבוצה. כתובות ה-IP החיצוניות נשארות פעילות במופעים, אבל הן כבר לא סטייטפול. כשיוצרים מחדש את המופעים או מעדכנים אותם, או כשהמופעים מתקנים את עצמם באופן אוטומטי, קבוצת ה-MIG מבטלת את ההקצאה של כתובות ה-IP הסטטיות המשויכות ומקצה באופן אוטומטי כתובות זמניות. אם אין לכם יותר צורך בשמירת כתובות IP חיצוניות סטטיות, אתם יכולים לבטל את השמירה שלהן.
REST
כדי לציין אילו כתובות IP ממדיניות שמירת המצב של קבוצת ה-MIG יהיו זמניות, מסירים את ההגדרה של כל כתובת IP ממדיניות שמירת המצב של קבוצת ה-MIG באמצעות השיטה instanceGroupManagers.patch או regionInstanceGroupManagers.patch:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
{
"statefulPolicy": {
"preservedState": {
"internalIPs": {
"NI_NAME": null
},
"externalIPs": {
"NI_NAME": null
}
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT: מזהה הפרויקט של הבקשה.
- REGION: במקרים של קבוצות אזוריות של MIG, האזור שבו הקבוצה ממוקמת. ל-MIG אזורי, מחליפים את
regions/REGIONב-zones/ZONEומציינים את האזור שבו נמצא ה-MIG. - INSTANCE_GROUP_NAME: השם של קבוצת המכונות המנוהלת שרוצים ליצור.
- NI_NAME: (חובה) השם של ממשק הרשת. ממשק הרשת הראשי נקרא
nic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין כמה NI_NAMES.
דוגמה
האפליקציה שלך נחשפה למשתמשים באמצעות כתובות IP חיצוניות סטטיות שפורסמו של מופעי מכונות וירטואליות בקבוצת מופעים מנוהלת (MIG) בשם example-group. הגדרתם מחדש את הארכיטקטורה של השירות על ידי פריסת מאזן עומסים לפני ה-MIG והפניית התנועה למכונות הווירטואליות המנוהלות דרכו. אתם לא צריכים יותר לשמור על כתובות IP חיצוניות סטטיות, ואתם רוצים להפוך את כתובות ה-IP החיצוניות של המכונות הווירטואליות לארעיות.
כדי להפוך את כתובות ה-IP החיצוניות הסטטיות של המכונות הווירטואליות ב-MIG לחולפות, צריך להחיל תיקון על ה-MIG:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group
{
"statefulPolicy": {
"preservedState": {
"externalIPs": {
"nic0": null
}
}
}
}
ה-MIG מסיר באופן אוטומטי ואסינכרוני את כתובות ה-IP החיצוניות הסטטיות של nic0ממשק הרשת מהמצב שנשמר של כל המופעים בקבוצה. כתובות ה-IP החיצוניות נשארות פעילות במופעים, אבל הן כבר לא סטייטפול. כשיוצרים מחדש את המופעים או מעדכנים אותם, או כשהמופעים מתקנים את עצמם באופן אוטומטי, קבוצת ה-MIG מבטלת את ההקצאה של כתובות ה-IP הסטטיות המשויכות ומקצה באופן אוטומטי כתובות זמניות.
אם אין לכם יותר צורך בשמירת כתובות IP חיצוניות סטטיות, אתם יכולים לבטל את השמירה שלהן.
הגדרה של כתובות IP עם שמירת מצב בנפרד למכונות וירטואליות ב-MIG
הגדרת כתובות IP עם שמירת מצב בנפרד למכונות וירטואליות ב-MIG שימושית בתרחישים הבאים:
- העברת עומסי עבודה קיימים (כולל כתובות IP סטטיות שמורות קיימות) ממכונות VM עצמאיות לקבוצות MIG עם שמירת מצב, כדי ליהנות מתיקון אוטומטי ומעדכונים אוטומטיים.
- הקצאת כתובות IP קבועות שמורות ספציפיות שנדרשות על ידי הארכיטקטורה או הגדרת עומס העבודה.
הגדרת כתובות IP סטטיות ביצירת מכונה וירטואלית בקבוצת מופעים מנוהלת (MIG)
אתם יכולים לשריין כתובות IP סטטיות ולהקצות אותן למופעים ספציפיים כשאתם יוצרים את המופעים האלה בנפרד ב-MIG. האפשרות הזו שימושית להעברת אפליקציה עם שמירת מצב ממכונות וירטואליות עצמאיות קיימות לקבוצת MIG עם שמירת מצב, במקרים שבהם הארכיטקטורה, ההגדרה או המשתמשים מסתמכים על כתובות IP סטטיות ספציפיות.
כשיוצרים מופע באופן ידני ב-MIG ומספקים כתובת IP סטטית, ה-MIG מבצע את הפעולות הבאות:
- יוצר הזמנה של כתובת IP פנימית או חיצונית סטטית לכתובות ה-IP שסופקו, אם הן עדיין לא קיימות.
- יוצר מכונה מתבנית של הגדרות מכונה באמצעות שם המכונה וכתובות ה-IP שסופקו.
- יוצרת הגדרה לכל מכונה עם ההגדרה המפורטת של כתובות ה-IP.
gcloud
כדי ליצור מכונה עם כתובת IP סטטית מוגדרת מראש, משתמשים בפקודה gcloud compute instance-groups managed create-instance עם אחד או יותר מהדגלים הבאים:
-
--stateful-internal-ipכדי להגדיר כתובת IP פנימית סטטית לממשק רשת נתון. -
--stateful-external-ipכדי להגדיר כתובת IP חיצונית סטטית של ממשק רשת נתון.
gcloud compute instance-groups managed create-instance INSTANCE_GROUP_NAME \
--instance INSTANCE_NAME \
--stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
--stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE]
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_GROUP_NAME: השם של ה-MIG.
- INSTANCE_NAME: השם של המכונה שרוצים ליצור.
- NI_NAME: (אופציונלי). שם ממשק הרשת. אם לא מציינים ממשק רשת, המערכת מניחה כברירת מחדל שמדובר בממשק הרשת הראשי שנקרא
nic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין את הדגל הזה לכל כתובת IP בכל ממשק רשת. ADDRESS: (חובה). כתובת IP סטטית להקצאה למכונה הווירטואלית באחד מהפורמטים הבאים:
- כתובת. כתובת URL של שמירת כתובת IP סטטית – לדוגמה:
"projects/example-project/regions/us-east1/addresses/example-ip-name". - מילולי – לדוגמה:
"130.211.181.55".- אם כתובת ה-IP שצוינה עדיין לא הוזמנה, קבוצת ה-MIG יוצרת באופן אוטומטי הזמנה תואמת של כתובת IP.
- אם כתובת ה-IP שצוינה שמורה, קבוצת ה-MIG מקצה את השמורה למכונה.
- כתובת. כתובת URL של שמירת כתובת IP סטטית – לדוגמה:
DELETE_RULE: (אופציונלי). מגדיר מה צריך לקרות למשאב כתובת סטטית משויכת כשמוחקים מכונת VM באופן סופי. אלה האפשרויות הזמינות:
-
never: (ברירת מחדל). לעולם אל תמחקו את כתובת ה-IP הסטטית. במקום זאת, מבטלים את ההקצאה של הכתובת במחיקת המופע ושומרים את הכתובת ככתובת שמורה. -
on-permanent-instance-deletion: מחיקת ההזמנה של כתובת ה-IP הסטטית כשמכונה נמחקת לצמיתות מקבוצת המכונות – למשל, כשמוחקים מכונה באופן ידני או כשמקטינים את גודל הקבוצה.
ללא קשר לערך של כלל המחיקה, הקבוצה תמיד שומרת כתובות IP עם שמירת מצב בפעולות של תיקון אוטומטי של מופע, עדכון ויצירה מחדש.
-
דוגמה
צריך להוסיף עוד מופע של מכונה וירטואלית לאשכול שרתי ה-proxy, שפועל בקבוצת מופעי מכונה מנוהלים (MIG) בשם proxy-cluster. יצרתם שמירה של כתובת IP פנימית סטטית בשם proxy-node-03-ip ואתם צריכים להקצות אותה לצומת החדש. אתם רוצים לשמור את כתובת ה-IP שהוזמנה גם אם תחליטו למחוק את הצומת בעתיד.
מריצים את הפקודה הבאה כדי ליצור את הצומת:
gcloud compute instance-groups managed create-instance proxy-cluster \
--instance proxy-node-03 \
--stateful-internal-ip address="projects/example-project/regions/us-east1/addresses/proxy-node-03-ip",auto-delete=never
הפקודה יוצרת מכונה בשם proxy-node-03, מקצה למכונה את כתובת ה-IP הפנימית הסטטית שצוינה בשם proxy-node-03-ip, ושומרת את ההגדרות עם שמירת מצב של כתובת ה-IP בהגדרות התואמות לכל מכונה.
הדגל auto-delete מוגדר לערך never, ולכן כתובת ה-IP נשארת שמורה גם אם מוחקים את המכונה בהמשך.
Terraform
כדי ליצור מכונה וירטואלית עם כתובת IP סטטית מוגדרת מראש, משתמשים באחד מהבלוקים הבאים או ביותר:
-
preserved_state.internal_ipכדי לסמן כתובת IP פנימית של ממשק רשת נתון ככתובת עם שמירת מצב. -
preserved_state.external_ipכדי לסמן כתובת IP חיצונית של ממשק רשת נתון ככתובת עם שמירת מצב.
בדוגמה הבאה מוגדרות כתובות IP סטטיות בזמן יצירת מכונה וירטואלית בקבוצת MIG אזורית. מידע נוסף על המשאב שבו נעשה שימוש בדוגמה זמין במאמר google_compute_region_per_instance_config
משאב.
בשביל MIG אזורי, משתמשים במשאב google_compute_per_instance_config.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
REST
כדי ליצור מכונה אחת או יותר בקבוצת MIG, להגדיר שמות מותאמים אישית למכונות ולהקצות למכונות האלה כתובות IP סטטיות מוגדרות מראש, משתמשים בשיטה instanceGroupManagers.createInstances או regionInstanceGroupManagers.createInstances.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/createInstances
{
"instances": [
{
"name": "INSTANCE_NAME",
"preservedState" : {
"internalIPs": {
"NI_NAME" : {
"ipAddress": {
"address": "ADDRESS",
"literal": "LITERAL"
},
"autoDelete": "DELETE_RULE"
},
...
},
"externalIPs": {
"NI_NAME" : {
"ipAddress": {
"address": "ADDRESS",
"literal": "LITERAL"
},
"autoDelete": "DELETE_RULE"
},
...
},
...
}
},
...
]
}
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט של הבקשה.
- NAME: השם של ה-MIG.
- REGION: במקרים של קבוצות אזוריות של MIG, האזור שבו הקבוצה ממוקמת. ל-MIG אזורי, מחליפים את
regions/REGIONב-zones/ZONEומציינים את האזור שבו נמצא ה-MIG. - INSTANCE_NAME: השם של המכונה שרוצים ליצור.
- NI_NAME: (חובה). שם ממשק הרשת. ממשק הרשת הראשי נקרא
nic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין כמה NI_NAMES. - ADDRESS: (אופציונלי). כתובת IP סטטית להקצאה למכונה הווירטואלית בפורמט של כתובת URL של הזמנת כתובת IP סטטית – לדוגמה:
"projects/example-project/regions/us-east1/addresses/example-ip-name". כשמקצים כתובת IP סטטית, צריך להגדיר רק שדה אחד בכל פעם, אוaddressאוliteral. - LITERAL: (אופציונלי). כתובת IP סטטית להקצאה למכונה הווירטואלית בפורמט המילולי – לדוגמה:
"130.211.181.55". כשמקצים כתובת IP סטטית, צריך להגדיר שדה אחד בלבד,addressאוliteral.- אם כתובת ה-IP המילולית שצוינה עדיין לא שמורה, קבוצת ה-MIG יוצרת באופן אוטומטי שמירת כתובת IP תואמת.
- אם כתובת ה-IP המילולית שצוינה שמורה, קבוצת ה-MIG מקצה את השמורה למכונה.
DELETE_RULE: (אופציונלי). מגדיר מה צריך לקרות למשאב כתובת סטטית משויכת כשמוחקים מכונת VM באופן סופי. אלה האפשרויות הזמינות:
-
NEVER: (ברירת מחדל). לעולם אל תמחקו את כתובת ה-IP הסטטית. במקום זאת, מבטלים את ההקצאה של הכתובת במחיקת המופע ושומרים את הכתובת ככתובת שמורה. -
ON_PERMANENT_INSTANCE_DELETION: מחיקת ההזמנה של כתובת ה-IP הסטטית כשמכונה נמחקת לצמיתות מקבוצת המכונות – למשל, כשמוחקים מכונה באופן ידני או כשמקטינים את גודל הקבוצה.
ללא קשר לערך של כלל המחיקה, הקבוצה תמיד שומרת כתובות IP עם שמירת מצב בפעולות של תיקון אוטומטי של מופע, עדכון ויצירה מחדש.
-
דוגמה
צריך להוסיף עוד מופע של מכונה וירטואלית לאשכול שרתי ה-proxy, שפועל בקבוצת מופעי מכונה מנוהלים (MIG) בשם proxy-cluster. יצרתם שמירה של כתובת IP פנימית סטטית בשם proxy-node-03-ip ואתם צריכים להקצות אותה לצומת החדש. אתם רוצים לשמור את כתובת ה-IP שהוזמנה גם אם תחליטו למחוק את הצומת בעתיד.
מבצעים קריאה ל-method regionInstanceGroupManagers.createInstances כדי ליצור מופע נוסף:
POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/proxy-cluster/createInstances
{
"instances": [
{
"name": "proxy-node-03",
"preservedState" : {
"internalIPs": {
"nic0" : {
"ipAddress": {
"address": "projects/example-project/regions/us-east1/addresses/proxy-node-03-ip"
},
"autoDelete": "NEVER"
}
}
}
}
]
}
השיטה יוצרת מופע בשם proxy-node-03, מקצה למופע את כתובת ה-IP הפנימית הסטטית שצוינה בשם proxy-node-03-ip, ומאחסנת את ההגדרה עם שמירת מצב של כתובת ה-IP בהגדרה לכל מופע המתאימה.
מכיוון שהשדה autoDelete מוגדר ל-NEVER, כתובת ה-IP נשארת שמורה גם אם תמחקו את המופע בהמשך.
הגדרת כתובות IP סטטיות למכונה וירטואלית קיימת בקבוצת MIG
אפשר להגדיר כתובת IP סטטית מוגדרת מראש או לעדכן את הגדרת ה-IP עם שמירת מצב למכונה מנוהלת בנפרד – לדוגמה:
- הקצאת כתובת IP סטטית למכונה וירטואלית קיימת ב-MIG. כדי להקצות כתובות IP חיצוניות סטטיות, צריך לרענן את המופע, וכדי להקצות כתובות IP פנימיות סטטיות, צריך ליצור מחדש את המופע.
- עדכון כלל המחיקה של כתובת IP סטטית שכבר הוקצתה. אפשר לבצע את הפעולה הזו בלי לשבש את המופע הפועל.
אם יש לכם מכונה קיימת ללא כתובת IP חיצונית, ואתם מגדירים עבורה כתובת IP חיצונית עם שמירת מצב, קבוצת ה-MIG מוסיפה הגדרת גישה לממשק הרשת המתאים עם ערכי ברירת המחדל הבאים:
"accessConfigs": [
{
"kind": "compute#accessConfig",
"name": "External Nat",
"natIP": "XX.XX.XX.XX",
"networkTier": "PREMIUM",
"type": "ONE_TO_ONE_NAT"
}
]
gcloud
כדי להגדיר כתובת IP עם שמירת מצב באופן פרטני למכונה וירטואלית ב-MIG, צריך להוסיף או לעדכן את הגדרת כתובת ה-IP עם שמירת מצב בהגדרות המשויכות לכל מכונה.
אם עדיין לא קיימת הגדרה לכל מכונה, משתמשים בפקודה gcloud compute instance-groups managed instance-configs create עם אחד או יותר מהדגלים הבאים:
-
--stateful-internal-ipכדי להגדיר כתובת IP פנימית סטטית לממשק רשת נתון. -
--stateful-external-ipכדי להגדיר כתובת IP חיצונית סטטית של ממשק רשת נתון.
gcloud compute instance-groups managed instance-configs create INSTANCE_GROUP_NAME \
--instance INSTANCE_NAME \
--stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
--stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
[--no-update-instance | --update-instance]
[--instance-update-minimal-action MINIMAL_ACTION]
אם כבר קיים מערך של הגדרות אישיות למכונה, משתמשים בפקודה gcloud compute instance-groups managed instance-configs update עם דגל אחד או יותר של --stateful-internal-ip או --stateful-external-ip:
gcloud compute instance-groups managed instance-configs update INSTANCE_GROUP_NAME \
--instance INSTANCE_NAME \
--stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
--stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
[--no-update-instance | --update-instance]
[--instance-update-minimal-action MINIMAL_ACTION]
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_GROUP_NAME: השם של ה-MIG.
- INSTANCE_NAME: השם של המכונה שעבורה רוצים להגדיר כתובות IP עם שמירת מצב.
- NI_NAME: (אופציונלי). שם ממשק הרשת. אם לא מציינים ממשק רשת, המערכת מניחה כברירת מחדל שמדובר בממשק הרשת הראשי שנקרא
nic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין את הדגל הזה לכל כתובת IP בכל ממשק רשת. - ADDRESS: כתובת IP סטטית להקצאה למכונה באחד מהפורמטים הבאים:
- כתובת. כתובת URL של שמירת כתובת IP סטטית – לדוגמה:
"projects/example-project/regions/us-east1/addresses/example-ip-name". - מילולי. לדוגמה:
"130.211.181.55".- אם כתובת ה-IP שצוינה עדיין לא הוזמנה, קבוצת ה-MIG יוצרת באופן אוטומטי הזמנה תואמת של כתובת IP.
- אם כתובת ה-IP שצוינה שמורה, קבוצת ה-MIG מקצה את השמורה למכונה.
- הדגל המשני הזה הוא אופציונלי אם הכתובת כבר מוגדרת בהגדרה של כל מופע בנפרד. אחרת, חובה להזין ערך.
- אם לא מציינים כתובת, הכתובת שהוגדרה לא משתנה.
- כתובת. כתובת URL של שמירת כתובת IP סטטית – לדוגמה:
DELETE_RULE: (אופציונלי). מגדיר מה צריך לקרות למשאב כתובת סטטית משויכת כשמוחקים מכונת VM באופן סופי. אלה האפשרויות הזמינות:
-
never: (ברירת מחדל). לעולם אל תמחקו את כתובת ה-IP הסטטית. במקום זאת, מבטלים את ההקצאה של הכתובת במחיקת המופע ושומרים את הכתובת ככתובת שמורה. -
on-permanent-instance-deletion: מחיקת ההזמנה של כתובת ה-IP הסטטית כשמכונה נמחקת לצמיתות מקבוצת המכונות – למשל, כשמוחקים מכונה באופן ידני או כשמקטינים את גודל הקבוצה. - אם לא מציינים ערך, ערך ברירת המחדל מוגדר עבור הגדרת IP חדשה עם שמירת מצב. הערך לא משתנה בהגדרה קיימת.
ללא קשר לערך של כלל המחיקה, הקבוצה תמיד שומרת כתובות IP עם שמירת מצב בפעולות של תיקון אוטומטי של מופע, עדכון ויצירה מחדש.
-
--update-instance: (אופציונלי. Default.) החלת השינויים באופן מיידי על המופע. אם משתמשים בדגל--no-update-instance, השינויים לא מוחלים ויוחלו כשיוצרים מחדש את המופע או כשמחילים עליו את העדכון מאוחר יותר.MINIMAL_ACTION: (אופציונלי). מבצעים לפחות את הפעולה שצוינה כשמחילים עדכון של הגדרות לכל מופע על המופע. חובה להשתמש בה יחד עם הדגל
--update-instance. הערך חייב להיות אחד מהערכים הבאים:-
none: אין פעולה. -
refresh: החלת עדכונים שאפשר להחיל בלי לעצור את המכונה. -
restart: עצירה של המכונה והפעלה מחדש שלה. -
replace: יצירה מחדש של המכונה.
-
אם לא מציינים פעולה, המערכת משתמשת בפעולה הכי פחות משבשת שנדרשת לעדכון.
דוגמה
יש לכם מופע של שרת קבצים בשם file-server, שהוא מופע יחיד ב-MIG עם שמירת מצב בשם fs-group. לקבוצה יש הגדרה תואמת לכל מופע, שבה מוגדר דיסק נתונים עם שמירת מצב. הגישה לשרת הקבצים הייתה אפשרית רק באופן פנימי, אבל עכשיו יש משתמשים שצריכים לגשת אליו באופן חיצוני באמצעות כתובת IP סטטית. שמרתם את כתובת ה-IP החיצונית הסטטית על ידי יצירת שמירת כתובת file-server-ip. עכשיו צריך להקצות את כתובת ה-IP הזו למופע של שרת הקבצים.
מריצים את הפקודה הבאה כדי להגדיר את כתובת ה-IP החיצונית עם שמירת מצב למופע של שרת הקבצים:
gcloud compute instance-groups managed instance-configs update fs-group \
--instance file-server \
--stateful-external-ip interface-name=nic0,address="projects/example-project/regions/us-east1/addresses/file-server-ip",auto-delete=never \
--update-instance
הפקודה מבצעת את הפעולות הבאות:
- מעדכנים את ההגדרה לכל מופע עבור המופע
file-server:- נוספה הגדרה של כתובת IP חיצונית עם שמירת מצב, שמפנה אל
file-server-ipכתובת ה-IP השמורה. - ההגדרה הקיימת של דיסק נתונים עם שמירת מצב נשארת ללא שינוי.
- נוספה הגדרה של כתובת IP חיצונית עם שמירת מצב, שמפנה אל
- העדכון של ההגדרה לכל מופע מוחל על מופע
file-serverבאופן מיידי כי הדגל--update-instanceכלול: המופע מתרענן ומוקצית לו כתובת IP חיצונית סטטית מהזמנתfile-server-ip.
REST
כדי להגדיר כתובות IP עם שמירת מצב בנפרד למכונות וירטואליות בקבוצת MIG, מוסיפים או מעדכנים את הגדרת כתובות ה-IP עם שמירת מצב בהגדרות המשויכות לכל מכונה.
אם עדיין לא קיימות הגדרות לכל מופע עבור המופעים הנתונים, אפשר להשתמש בשיטת instanceGroupManagers.updatePerInstanceConfigs או בשיטת regionInstanceGroupManagers.updatePerInstanceConfigs עם הגדרה מבוססת-מצב עבור כתובת IP אחת או יותר:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/updatePerInstanceConfigs
{
"perInstanceConfigs": [
{
"name": "INSTANCE_NAME",
"preservedState" : {
"internalIPs": {
"NI_NAME" : {
"ipAddress": {
"address": "ADDRESS",
"literal": "LITERAL"
},
"autoDelete": "DELETE_RULE"
},
...
},
"externalIPs": {
"NI_NAME" : {
"ipAddress": {
"address": "ADDRESS",
"literal": "LITERAL"
},
"autoDelete": "DELETE_RULE"
},
...
},
...
},
"fingerprint: "FINGERPRINT"
},
...
]
}
אם כבר קיימות הגדרות לכל מופע עבור המופעים הנתונים, משתמשים בשיטה instanceGroupManagers.patchPerInstanceConfigs או בשיטה regionInstanceGroupManagers.patchPerInstanceConfigs עם הגדרה ששומרת את המצב עבור כתובת IP אחת או יותר:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/patchPerInstanceConfigs
{
"perInstanceConfigs": [
{
"name": "INSTANCE_NAME",
"preservedState" : {
"internalIPs": {
"NI_NAME" : {
"ipAddress": {
"address": "ADDRESS",
"literal": "LITERAL"
},
"autoDelete": "DELETE_RULE"
},
...
},
"externalIPs": {
"NI_NAME" : {
"ipAddress": {
"address": "ADDRESS",
"literal": "LITERAL"
},
"autoDelete": "DELETE_RULE"
},
...
},
...
},
"fingerprint: "FINGERPRINT"
},
...
]
}
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט של הבקשה.
- NAME: השם של ה-MIG.
- REGION: במקרים של קבוצות אזוריות של MIG, האזור שבו הקבוצה ממוקמת. ל-MIG אזורי, מחליפים את
regions/REGIONב-zones/ZONEומציינים את האזור שבו נמצא ה-MIG. - INSTANCE_NAME: (חובה). השם של המופע שעבורו רוצים להגדיר כתובות IP עם שמירת מצב.
- NI_NAME: (חובה). שם ממשק הרשת. ממשק הרשת הראשי נקרא
nic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין כמה NI_NAMES. - ADDRESS: (אופציונלי). כתובת IP סטטית להקצאה למכונה הווירטואלית בפורמט של כתובת URL של הזמנת כתובת IP סטטית – לדוגמה:
"projects/example-project/regions/us-east1/addresses/example-ip-name". כשמקצים כתובת IP סטטית, צריך להגדיר רק שדה אחד בכל פעם, או כתובת או מחרוזת. - LITERAL: (אופציונלי). כתובת IP סטטית להקצאה למכונה הווירטואלית בפורמט המילולי. לדוגמה:
"130.211.181.55". כשמקצים כתובת IP סטטית, אפשר להגדיר רק שדה אחד בכל פעם, כתובת או מחרוזת.- אם כתובת ה-IP המילולית שצוינה עדיין לא שמורה, קבוצת ה-MIG יוצרת באופן אוטומטי שמירת כתובת IP תואמת.
- אם כתובת ה-IP המילולית שצוינה שמורה, קבוצת ה-MIG מקצה את השמורה למכונה.
DELETE_RULE: (אופציונלי). מגדיר מה צריך לקרות למשאב כתובת סטטית משויכת כשמוחקים מכונת VM באופן סופי. אלה האפשרויות הזמינות:
-
NEVER: (ברירת מחדל). לעולם אל תמחקו את כתובת ה-IP הסטטית. במקום זאת, מבטלים את ההקצאה של הכתובת במחיקת המופע ושומרים את הכתובת ככתובת שמורה. -
ON_PERMANENT_INSTANCE_DELETION: מחיקת ההזמנה של כתובת ה-IP הסטטית כשמכונה נמחקת לצמיתות מקבוצת המכונות – למשל, כשמוחקים מכונה באופן ידני או כשמקטינים את גודל הקבוצה. - אם לא מציינים ערך, ערך ברירת המחדל מוגדר עבור הגדרת IP חדשה עם שמירת מצב. הערך לא משתנה בהגדרה קיימת.
ללא קשר לערך של כלל המחיקה, הקבוצה תמיד שומרת כתובות IP עם שמירת מצב בפעולות של תיקון אוטומטי של מופע, עדכון ויצירה מחדש.
-
FINGERPRINT: (אופציונלי). טביעת האצבע של ההגדרה הנתונה, אם היא כבר קיימת. משמש לנעילה אופטימית. הפעולה נכשלת אם טביעת האצבע שונה מהטביעה שסופקה, כי זה מצביע על כך שההגדרה לכל מופע השתנתה מאז הקריאה האחרונה שלה. כדי לראות את טביעת האצבע העדכנית, אפשר לעיין בפלט של השיטה
listPerInstanceConfigsעבור MIG אזורי או אזורי. אם לא מציינים אתfingerprint, הפעולה מתבצעת ללא השוואה של טביעות אצבע.
השיטות updatePerInstanceConfigs ו-patchPerInstanceConfigs מעדכנות את ההגדרות שצוינו לכל מופע, אבל לא מחילות את עדכוני ההגדרות על המופעים המנוהלים המשויכים. השינויים חלים על מופע כשמנחים את ה-MIG ליצור מחדש את המופע או לעדכן אותו. אפשר להחיל את העדכון באופן ידני כדי להחיל את השינויים על מופע.
דוגמה
יש לכם מופע של שרת קבצים בשם file-server, שהוא מופע יחיד ב-MIG עם שמירת מצב בשם fs-group. לקבוצה יש הגדרה תואמת לכל מופע, שבה מוגדר דיסק נתונים עם שמירת מצב. הגישה לשרת הקבצים הייתה אפשרית רק באופן פנימי, אבל עכשיו יש משתמשים שצריכים לגשת אליו באופן חיצוני באמצעות כתובת IP סטטית. שמרתם את כתובת ה-IP החיצונית הסטטית על ידי יצירת שמירת כתובת file-server-ip. עכשיו צריך להקצות את כתובת ה-IP הזו למופע של שרת הקבצים.
כדי לעדכן את ההגדרה לכל מופע של file-server עם כתובת ה-IP החיצונית החדשה עם שמירת מצב, מפעילים את method patchPerInstanceConfigs:
POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/fs-group/patchPerInstanceConfigs
{
"perInstanceConfigs": [
{
"name": "file-server",
"preservedState" : {
"externalIPs": {
"nic0" : {
"ipAddress": {
"address": "projects/example-project/regions/us-east1/addresses/file-server-ip"
},
"autoDelete": "NEVER"
}
}
}
}
]
}
השיטה מתקנת את ההגדרה לכל מופע של file-serverinstance:
- הוספה של הגדרת כתובת IP חיצונית עם שמירת מצב, שמפנה אל
file-server-ipכתובת שמורה. - ההגדרה הקיימת של דיסק נתונים עם שמירת מצב נשארת ללא שינוי.
עדיין לא הוחל עדכון ההגדרות על מכונת file-server הווירטואלית. ה-MIG יחיל את עדכון ההגדרה כשתיצרו מחדש את המופע או תחיל את העדכון על המופע מאוחר יותר.
כדי להחיל את עדכון ההגדרות של המכונה על מכונת ה-VM file-server, צריך להפעיל את השיטה regionInstanceGroupManagers.applyUpdatesToInstances עבור המכונה:
POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/gs-group/applyUpdatesToInstances
{
"instances": ["/zones/us-east1-b/instances/file-server"]
}
השיטה מקצה את כתובת ה-IP החיצונית הסטטית שהוגדרה מfile-server-ip השמורה למכונה המנוהלת. השיטה מרעננת את מופע file-server כדי להקצות כתובת IP חיצונית.
מכיוון שהערך של autoDelete מוגדר כ-NEVER בהגדרת ה-IP עם שמירת מצב, כתובת ה-IP תישאר שמורה אם תמחקו את המופע בהמשך.
ביטול השיוך של כתובות IP סטטיות למכונה וירטואלית קיימת בקבוצת מופעים מנוהלת
יכול להיות שתצטרכו לבטל את השיוך של כתובת IP סטטית למכונה וירטואלית קיימת, כדי להפוך את ממשק הרשת לארעי עבור המכונה הווירטואלית. האפשרות הזו שימושית בתרחישים הבאים:
- אתם משנים את הארכיטקטורה של האפליקציה כך שהיא לא תסתמך יותר על כתובות IP סטטיות.
- הגדרתם את כתובת ה-IP ככתובת עם שמירת מצב בטעות, ואתם רוצים לבטל את ההגדרה.
אפשר לבטל את השיוך של כתובת IP סטטית למכונה וירטואלית קיימת ב-MIG ולהפוך את כתובת ה-IP לארעית עבור מכונה וירטואלית ספציפית. כדי לעשות זאת, צריך להסיר את ההגדרה של כתובת ה-IP עם שמירת מצב מההגדרה המשויכת לכל מופע, או למחוק את ההגדרה כולה לכל מופע אם היא לא מכילה מצב אחר. החלת השינוי תגרום להשפעות הבאות:
- כתובת ה-IP נשארת פעילה במופע, אבל היא כבר לא סטטית.
- כשיוצרים מחדש את המופע או מעדכנים אותו, או כשהמופע מתוקן אוטומטית, ה-MIG מבטל את ההקצאה של כתובת ה-IP הסטטית המשויכת ומקצה באופן אוטומטי כתובת זמנית.
- אחרי שמבטלים את ההקצאה, כתובת ה-IP הסטטית נשארת שמורה.
הסרה של הגדרת IP עם שמירת מצב מהגדרות לכל מופע לא משבשת את הפעולה של מופעי מכונות וירטואליות שפועלים, אלא אם בוחרים לעשות זאת במפורש.
מידע נוסף זמין במאמרים הבאים:
- איך הסרה של הגדרת IP עם שמירת מצב מההגדרות לכל מכונה משפיעה על המצב שנשמר.
- החלת עדכונים בהגדרות של כל מופע.
gcloud
כדי להסיר הגדרת IP עם שמירת מצב מההגדרה המשויכת לכל מכונה, משתמשים בפקודה gcloud compute instance-groups managed instance-configs update עם הדגלים --remove-stateful-internal-ips או --remove-stateful-external-ips:
gcloud compute instance-groups managed instance-configs update INSTANCE_GROUP_NAME \
--instance INSTANCE_NAME \
--remove-stateful-internal-ips NI_NAME[,NI_NAME,...] \
--remove-stateful-external-ips NI_NAME[,NI_NAME,...]
[--no-update-instance | --update-instance] \
[--instance-update-minimal-action MINIMAL_ACTION]
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_GROUP_NAME: השם של ה-MIG.
- INSTANCE_NAME: (חובה). השם של המופע שרוצים להסיר ממנו את הגדרת ה-IP עם שמירת מצב.
- NI_NAME: (חובה). שם ממשק הרשת. ממשק הרשת הראשי נקרא
nic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין כמה NI_NAMES. -
--update-instance: (אופציונלי. Default.) החלת השינויים באופן מיידי על המופע. אם משתמשים בדגל--no-update-instance, השינויים לא מוחלים ויוחלו כשיוצרים מחדש את המופע או כשמחילים עליו את העדכון מאוחר יותר. MINIMAL_ACTION: (אופציונלי). מבצעים לפחות את הפעולה שצוינה כשמחילים עדכון של הגדרת תצורה לכל מופע על המופע. אפשר להשתמש בדגל הזה רק יחד עם הדגל
--update-instance. הערך צריך להיות אחד מהערכים הבאים:-
none: אין פעולה. -
refresh: החלת עדכונים שאפשר להחיל בלי לעצור את המכונה. -
restart: עצירה של המכונה והפעלה מחדש שלה. -
replace: יצירה מחדש של המכונה.
אם לא מציינים פעולה, המערכת משתמשת בפעולה הכי פחות משבשת שנדרשת לעדכון.
-
דוגמה
האפליקציה שלכם נחשפה למשתמשים דרך כתובות IP חיצוניות סטטיות שפורסמו ספציפית של מופעי VM ב-MIG שנקרא example-group.
הגדרתם מחדש את הארכיטקטורה של השירות על ידי פריסת מאזן עומסים לפני ה-MIG וניתוב התנועה למכונות הווירטואליות המנוהלות דרכו. אתם לא צריכים יותר לשמור על כתובות IP חיצוניות סטטיות, ואתם רוצים להפוך את כתובות ה-IP החיצוניות של המכונות הווירטואליות לארעיות.
כדי להפוך את כתובות ה-IP החיצוניות של מכונות ה-VM ב-MIG לזמניות, מריצים את הפקודה הבאה לכל מכונה, לדוגמה, עבור node-1:
gcloud compute instance-groups managed instance-configs update example-group \
--instance node-1 \
--remove-stateful-external-ips nic0 \
--update-instance
הפקודה מבצעת את הפעולות הבאות:
- הפקודה מסירה את ההגדרה עם שמירת מצב של כתובת ה-IP החיצונית בממשק הרשת
nic0מההגדרה לכל מכונהnode-1. - העדכון של ההגדרה לכל מופע מוחל על מופע ה-VM
node-1באופן מיידי כי הדגל--update-instanceנכלל. המופע של מכונה וירטואלית לא מופרע וממשיך לפעול מאותה כתובת IP, שכבר לא מוגדרת ככתובת עם שמירת מצב. קבוצת ה-MIG מסירה את ההפניה להזמנת כתובת IP סטטית מpreservedStateFromConfigשל המכונה המנוהלת, ומתייחסת לכתובת ה-IP החיצונית כאל כתובת ארעית. קבוצת ה-MIG תקצה באופן אוטומטי כתובת IP חיצונית ביצירה מחדש של מופע, בעדכון או באירועים של תיקון אוטומטי. - אחרי ביטול ההקצאה, כתובת ה-IP הסטטית המקורית נשארת שמורה. אם אתם כבר לא צריכים את כתובת ה-IP, אתם יכולים לשחרר אותה.
REST
כדי להסיר הגדרת IP עם שמירת מצב מההגדרה המשויכת לכל מופע, משתמשים בשיטה instanceGroupManagers.patchPerInstanceConfigs או בשיטה regionInstanceGroupManagers.patchPerInstanceConfigs:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/patchPerInstanceConfigs
{
"perInstanceConfigs": [
{
"name": "INSTANCE_NAME",
"preservedState" : {
"internalIPs": {
"NI_NAME" : null
},
"externalIPs": {
"NI_NAME" : null
}
},
"fingerprint: "FINGERPRINT"
},
...
]
}
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט של הבקשה.
- NAME: השם של ה-MIG.
- REGION: במקרים של קבוצות אזוריות של MIG, האזור שבו הקבוצה ממוקמת. ל-MIG אזורי, מחליפים את
regions/REGIONב-zones/ZONEומציינים את האזור שבו נמצא ה-MIG. - INSTANCE_NAME: (חובה). השם של המופע שרוצים להסיר ממנו את הגדרת ה-IP עם שמירת מצב.
- NI_NAME: (חובה). שם ממשק הרשת. ממשק הרשת הראשי נקרא
nic0. אם יש לכם כמה ממשקי רשת, אתם יכולים לציין כמה NI_NAMES. - FINGERPRINT: (אופציונלי). טביעת האצבע של ההגדרה הנתונה, אם היא כבר קיימת. משמש לנעילה אופטימית. הפעולה נכשלת אם טביעת האצבע שונה מהטביעה שסופקה, כי זה מצביע על כך שההגדרה לכל מופע השתנתה מאז הקריאה האחרונה שלה. כדי לראות את טביעת האצבע העדכנית, אפשר לעיין בפלט של השיטה
listPerInstanceConfigsעבור MIG אזורי או אזורי. אם לא מציינים אתfingerprint, הפעולה מתבצעת ללא השוואה של טביעות אצבע.
השיטה patchPerInstanceConfigs מעדכנת את ההגדרות שצוינו לכל מופע, אבל לא מחילה את עדכוני ההגדרות על המופעים המנוהלים המשויכים. השינויים יחולו על מופע כשהקבוצה המנוהלת של המופעים תונחה ליצור מחדש את המופע או לעדכן אותו. אפשר להחיל את העדכון באופן ידני כדי להחיל את השינויים על מופע.
דוגמה
האפליקציה שלך נחשפה למשתמשים באמצעות כתובות IP חיצוניות סטטיות ספציפיות שפורסמו של מופעי מכונות וירטואליות בקבוצת מופעים מנוהלת (MIG) שנקראת example-group. הגדרתם מחדש את הארכיטקטורה של השירות על ידי פריסת מאזן עומסים לפני ה-MIG וניתוב התנועה למכונות הווירטואליות המנוהלות דרכו. אתם לא צריכים יותר לתחזק את כתובות ה-IP החיצוניות הסטטיות, ואתם רוצים שכתובות ה-IP החיצוניות של המכונות הווירטואליות יהיו זמניות.
כדי להפוך את כתובות ה-IP החיצוניות של המכונות הווירטואליות ב-MIG לזמניות, מריצים את השיטה הבאה לכל מכונה, למשל, ל-node-1, ומספקים את הערך null להגדרה של ממשק הרשת:
POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group/patchPerInstanceConfigs
{
"perInstanceConfigs": [
{
"name": "node-1",
"preservedState" : {
"externalIPs": {
"nic0" : null
}
}
}
]
}
השיטה מסירה את ההגדרה של כתובת ה-IP עם שמירת מצב בתוך nic0ממשק הרשת מההגדרה לכל מכונה של node-1. עדיין לא הוחל עדכון ההגדרה על המכונה הווירטואלית node-1. ה-MIG יחיל את עדכון ההגדרות בפעם הבאה שייווצר מחדש או יעודכן מופע.
כדי להחיל את עדכון ההגדרות של המכונה הווירטואלית node-1, מריצים את ה-method regionInstanceGroupManagers.applyUpdatesToInstances של המכונה:
POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group/applyUpdatesToInstances
{
"instances": ["/zones/us-east1-c/instances/node-1"]
}
קבוצת ה-MIG מסירה את ההפניה להזמנת כתובת IP סטטית מהשדה preservedStateFromConfig של המכונה node-1, ומתייחסת לכתובת ה-IP ככתובת ארעית. קבוצת ה-MIG תקצה באופן אוטומטי כתובת IP חיצונית באירועים הבאים של יצירה מחדש של מופע, עדכון או תיקון אוטומטי.
אחרי ביטול ההקצאה, כתובת ה-IP הסטטית המקורית נשארת שמורה. אם אתם כבר לא צריכים את כתובת ה-IP, אתם יכולים לשחרר אותה.
הסרת הגדרות עם שמירת מצב
כדי להסיר הגדרה ממדיניות עם שמירת מצב לכל מכונות ה-VM ב-MIG, אפשר לעיין במסמכים הבאים:
- כדי להסיר רק כתובות IP עם שמירת מצב, אפשר לעיין במאמר בנושא הגדרת כתובות IP עם שמירת מצב ככתובות ללא שמירת מצב.
- כדי להסיר את כל ההגדרות עם שמירת מצב ממדיניות עם שמירת מצב, אפשר לעיין במאמר בנושא הסרת מדיניות עם שמירת מצב.
כדי להסיר הגדרה מהגדרה לכל מופע של מכונה וירטואלית ספציפית ב-MIG, אפשר לעיין במסמכים הבאים:
- כדי להסיר רק כתובות IP עם שמירת מצב, אפשר לעיין במאמר בנושא ביטול השיוך של כתובת IP סטטית למכונה וירטואלית קיימת ב-MIG.
- כדי להסיר את כל ההגדרות עם שמירת מצב מהגדרות לכל מופע, אפשר לעיין במאמר בנושא הסרת הגדרות עם שמירת מצב ממכונת VM ספציפית.
ניקוי כתובות IP סטטיות שלא בשימוש
כשמגדירים כתובת IP עם שמירת מצב למופעים מנוהלים בקבוצה, אפשר לבחור אם לבטל את ההזמנות המשויכות של כתובות IP סטטיות באופן ידני או אוטומטי כשמוחקות מופע לצמיתות:
- כדי לבטל אוטומטית את ההקצאה של כתובות IP סטטיות כשמוחקים מכונות וירטואליות באופן סופי, מגדירים את הפרמטר
autoDeleteלערךON_PERMANENT_INSTANCE_DELETION. - כדי לבטל ידנית את השמירה של כתובות IP סטטיות, מגדירים את הפרמטר
autoDeleteלערךNEVER. כדי למחוק שמירת כתובות IP סטטיות שלא נמצאות בשימוש, למשל כדי להימנע מחיובים מיותרים, אפשר לעיין במסמכים הבאים:
אם הגדרתם את ה-MIG כך שהוא אף פעם לא ימחק את כתובות ה-IP הסטטיות שמשויכות אליו, הן יישארו שמורות גם אחרי שהמופעים המתאימים או ה-MIG יפסיקו להתקיים.
משוב
נשמח לשמוע על תרחישי השימוש שלכם, על האתגרים שנתקלתם בהם ועל המשוב שלכם לגבי קבוצות של מכונות וירטואליות עם שמירת מצב. אפשר לשלוח משוב לצוות שלנו בכתובת mig-discuss@google.com.
המאמרים הבאים
- מידע על החלה, צפייה והסרה של הגדרות עם שמירת מצב.
- קבלת מידע על קבוצת MIG ספציפית ועל המופעים המנוהלים שלה, כולל סטטוס ומאפיינים של מכונות וירטואליות.
- מידע נוסף על עבודה עם מופעים מנוהלים