אפשר להשתמש בבקשה אחת מ-Google Cloud CLI או מ-Compute Engine API כדי לעדכן כמה מאפיינים של מכונה וירטואלית, ובאופן אופציונלי להפעיל מחדש את המכונה אם צריך. השיטה update מטפלת בלוגיקה של אימות מאפייני המכונה המעודכנים ומוודאת שהמשאבים הדרושים זמינים כדי להשלים את העדכון בהצלחה. אם הבקשה כוללת מאפיינים לא חוקיים או אם המשאבים המבוקשים לא זמינים, הבקשה מחזירה שגיאה ולא מתבצעים שינויים במכונה. כך המכונה מוגנת מפני עדכונים חלקיים, וגם מפני עצירה וחוסר יכולת לגשת למשאבים כדי להתחיל מחדש.
כדי לעדכן את ממשקי הרשת (networkInterfaces) של מכונה, אפשר לעיין במאמר עדכון ממשקי הרשת של מכונה.
כדי להוסיף או להסיר ממשקי רשת דינמיים ממופע, צריך להשתמש בהליכים הבאים במקום לעדכן את מאפייני המופע:
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
הגבלות
- בקשות לעדכון מופעים דרך ה-CLI של gcloud או Compute Engine API לא תומכות בסמנטיקה של
PATCH. משאב המופע בבקשת העדכון חייב לכלול את כל המאפיינים של המופע. נכסים שחסרים בהגדרת המופע בבקשת העדכון נחשבים כנמחקים מהמופע. - אפשר לעדכן רק רשימה ספציפית של נכסים.
- אם למכונה מצורפים דיסקים מסוג SSD מקומי, אי אפשר לעדכן מאפיינים שדורשים הפעלה מחדש של המכונה בזמן שהיא פועלת. אתם יכולים למחוק את המכונה וליצור אותה מחדש, או לעצור את המכונה, לעדכן את המאפיינים ולהפעיל אותה מחדש.
- אפשר לעדכן את המאפיין
networkInterfacesשל מכונה, אבל אי אפשר להוסיף כרטיסי רשת וירטואליים (vNIC) למכונה או להסיר ממנה כרטיסי רשת וירטואליים. - אם במכונה נעשה שימוש במשאבים שזמינים רק בגרסת הבטא של Compute Engine API, צריך להשתמש בגרסה הנכונה של השיטה
instances.updateכדי לעדכן את המאפיינים האלה. לדוגמה, אם יוצרים מכונה באמצעות גרסת הבטא של Compute Engine API ומגדירים את המכונה עם משאב שרק גרסת הבטא של ה-API מזהה, צריך להשתמש גם בגרסת הבטא של השיטהinstances.updateכדי לעדכן את המשאבים האלה. גרסה 1 של השיטהinstances.updateלא מזהה את משאבי הבטא שבהם המכונה משתמשת, ולכן היא מוחקת את משאבי הבטא האלה מהגדרת המכונה במהלך תהליך העדכון. ההתנהגות הזו רלוונטית גם למשאבים ב-API בגרסת אלפא.
הרשאות
כדי לעדכן מכונות, צריכה להיות לכם ההרשאה compute.instances.update.
ההרשאה הזו כלולה בכמה תפקידים קיימים בניהול זהויות והרשאות גישה (IAM).
צריכה להיות לכם גם הרשאה להשתמש במשאבים שאתם רוצים לשנות במכונה. לדוגמה, כדי להוסיף דיסק למכונה, אתם צריכים את ההרשאות הבאות:
- הרשאת
compute.instances.updateבמכונה שרוצים לעדכן. - הרשאת
compute.disks.useלדיסק קיים, או הרשאתcompute.disks.createבפרויקט שבו רוצים ליצור דיסק חדש.
שיטות מומלצות
כדי לוודא שממשק העדכון של המופע פועל בצורה הכי יעילה בשבילכם, כדאי לפעול לפי השיטות המומלצות הבאות:
- אם אפשר, כדאי להשתמש באופן עקבי באותה גרסה של Compute Engine API כדי ליצור, להגדיר ולעדכן מכונות. כך תוכלו לעדכן ולשנות משאבים של מופעים אם הם זמינים רק בגרסה אחת של ה-API.
- אפשר להשתמש ב-
instances.updateכדי לעדכן מופעים בקבוצת מופעי מכונה מנוהלים (MIG), אבל ברוב המקרים עדיף לשנות את התבנית של הגדרות המכונה של הקבוצה ולהשיק את העדכון הזה ל-MIG. - אם מעדכנים משאב שנמצא בשימוש על ידי המכונה, צריך להשתמש בפקודה כדי לעדכן את המשאב הזה במקום לעדכן את מאפייני המכונה. לדוגמה:
- אפשר לשנות דיסקים באמצעות השיטה
disks.update - כדי לשנות את הרשת שבה המכונה משתמשת, אפשר להשתמש בשיטה
instances.updateNetworkInterface, שלא דורשת עצירה של המכונה.
- אפשר לשנות דיסקים באמצעות השיטה
מאפיינים שאפשר לעדכן
אפשר לשנות רק קבוצה ספציפית של מאפייני מופע באמצעות שיטת העדכון. כדי לעדכן חלק מהמאפיינים, צריך להפעיל מחדש את המופע. כדי למנוע הפעלה מחדש לא מכוונת של המכונות, בבקשה צריך להגדיר איזו פעולה מותר לבצע במכונות. בבקשה אפשר לציין אחת מהפעולות הבאות:
-
NO_EFFECT: בקשת העדכון בודקת אם הבקשה תקינה ואם המשאבים זמינים, אבל לא מבצעת את העדכון. אפשר להשתמש בפעולה הזו כדי לבדוק פקודות בלי להפעיל עדכונים בפועל. -
REFRESH: בקשת העדכון מופעלת רק אם מאפייני המופע ששונו לא מחייבים הפעלה מחדש של המופע. אם הבקשה תקינה אבל נדרשת הפעלה מחדש, הבקשה תחזיר שגיאתINFEASIBLE. -
RESTART: אם העדכון דורש הפעלה מחדש של המכונה, המערכת תפעיל אותה מחדש.
כדי לעדכן את המאפיינים הבאים, צריך להפעיל מחדש את המחשב (RESTART):
-
disks: דיסקי אתחול, כולל כל הדיסקים (disks.deviceName) displayDeviceenableNestedVirtualizationguestAcceleratorsmachineTypeminCpuPlatformnetworkInterfacesnetworkPerformanceConfigperformanceMonitoringUnit-
reservationAffinity: אפשר לעדכן את האופן שבו המכונה צורכת את המקומות השמורים (reservationAffinity.consumeReservationType) רק באופן הבא:- מצריכת הזמנות תואמות (
ANY_RESERVATION) לאי צריכת הזמנות (NO_RESERVATION) - מאי צריכת הזמנות (
NO_RESERVATION) לצריכת הזמנות תואמות (ANY_RESERVATION)
- מצריכת הזמנות תואמות (
resourcePoliciesschedulingserviceAccountsshieldedInstanceConfigthreadsPerCorevisibleCoreCount
כדי לעדכן את המאפיינים הבאים, צריך רק לרענן את הדף (REFRESH):
canIpForwarddeletionProtectiondescription-
disks: מאפיינים של דיסק שאינו דיסק אתחול, לא כוללdeviceName labelsmetadatanodeAffinitiestags
עדכון מאפייני המכונה
כדי לעדכן את המכונות:
- מייצאים את מאפייני ההגדרות של המכונה הקיימת.
- משנים את המאפיינים של הגדרת המכונה.
- מריצים בקשת בדיקה על ידי ציון
NO_EFFECTכפעולה הכי משבשת. התגובה מציינת שדות לא תקינים בהגדרות המופע ומציינת את הפעולה שנדרשת כדי להחיל את השינויים. - אם ההגדרה מקובלת, שולחים בקשה לעדכון המופע ומציינים את הפעולה הכי משבשת שמקובלת לעדכון המופע.
המערכת מתחילה את תהליך העדכון רק אם הבקשה שלכם עומדת בדרישות הבאות:
- המאפיין
fingerprintשל המכונה בבקשה צריך להיות זהה ל-fingerprintשל המכונה שאתם מעדכנים. כך נמנע מצב שבו בקשות עדכון בו-זמניות באותו מופע יחליפו אחת את השנייה. - המאפיינים בבקשת העדכון צריכים להיות תקינים.
- המשאבים שביקשת צריכים להיות זמינים.
- אם המאפיינים בבקשה מחייבים הפעלה מחדש של המכונה, צריך לציין בבקשה את
RESTARTכפעולה מותרת.
אם הדרישות מתקיימות, המערכת מתחילה את תהליך העדכון של המופע. אחרת, המערכת לא מבצעת שינויים במופע הקיים או בהגדרות שלו.
אפשר להתחיל עדכונים באמצעות ה-CLI של gcloud או Compute Engine API.
gcloud
משתמשים בפקודה
instances exportכדי לייצא את מאפייני המופע הקיים:gcloud compute instances export INSTANCE_NAME \ --project PROJECT_ID \ --zone ZONE \ --destination=FILE_PATHמחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: שם המכונה שרוצים לייצא. -
PROJECT_ID: מזהה הפרויקט של הבקשה הזו. -
ZONE: האזור של המכונה הזו. -
FILE_PATH: נתיב הפלט שבו רוצים לשמור את קובץ התצורה של המכונה בתחנת העבודה המקומית.
-
משתמשים בכלי לעריכת טקסט כדי לשנות מאפיין אחד או יותר בקובץ התצורה של המופע המיוצא. כדי לדעת אילו נכסים אפשר לעדכן, אפשר לעיין ברשימת הנכסים שאפשר לעדכן במסמך הזה. לדוגמה, כדי לשנות את סוג המכונה של המכונה, משנים את המאפיין
machineType:... machineType: https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE ...
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של הבקשה הזו. -
ZONE: האזור של המכונה הזו. -
MACHINE_TYPE: סוג המכונה של המופע, לדוגמה,n1-standard-2.
-
משתמשים בפקודה
instances update-from-fileכדי להריץ עדכון ניסיון של מכונת היעד. מציינים את הדגל--most-disruptive-allowed-action=NO_EFFECT. בתשובה מפורטים נכסים שההגדרה שלהם שגויה, ומצוין אם נדרשת פעולה מסוגRESTARTאוREFRESHכדי להחיל את העדכון.gcloud compute instances update-from-file INSTANCE_NAME \ --project PROJECT_ID \ --zone ZONE \ --source=FILE_PATH \ --most-disruptive-allowed-action NO_EFFECTמחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המופע שרוצים לייצא. -
PROJECT_ID: מזהה הפרויקט של הבקשה הזו. -
ZONE: האזור של המכונה הזו. -
FILE_PATH: הנתיב לקובץ התצורה של המופע ששונה בתחנת העבודה המקומית.
-
משתמשים בפקודה
instances update-from-fileכדי לעדכן את מכונת היעד. אם מעדכנים נכס שנדרשת הפעלה מחדש של המופע, צריך לכלול את הדגל--most-disruptive-allowed-action=RESTART. אם לא צריך להפעיל מחדש את המחשב כדי שהמאפיינים ייכנסו לתוקף, מציינים את הדגל--most-disruptive-allowed-action=REFRESH. כדי לדעת אילו מאפיינים דורשים הפעלה מחדש, עיינו ברשימת המאפיינים שניתנים לעדכון במאמר הזה.gcloud compute instances update-from-file INSTANCE_NAME \ --project PROJECT_ID \ --zone ZONE \ --source=FILE_PATH \ --most-disruptive-allowed-action ALLOWED_ACTIONמחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המופע שרוצים לייצא. -
PROJECT_ID: מזהה הפרויקט של הבקשה הזו. -
ZONE: האזור של המכונה הזו. -
FILE_PATH: הנתיב לקובץ התצורה של המופע ששונה בתחנת העבודה המקומית. -
ALLOWED_ACTION: מגדיר את מידת השיבוש שהעדכון עלול לגרום. מציינים את הערךRESTARTכדי לאפשר הפעלה מחדש מלאה של המכונה. מצייניםREFRESHכדי לעדכן את המופע רק אם המאפיינים ששונו לא מחייבים הפעלה מחדש של המופע.
-
אם בקשת העדכון תקפה והמשאבים הנדרשים זמינים,
תהליך עדכון המופע מתחיל. אפשר לעקוב אחרי הסטטוס של הפעולה הזו על ידי צפייה ביומני הביקורת.
אם העדכון דורש הפעלה מחדש והפקודה מאפשרת RESTART, המופע מופעל מחדש כדי להחיל את השינויים.
REST
כדי לייצא את המאפיינים של המכונה הקיימת, משתמשים ב-method
instances.getב-Compute Engine API:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של הבקשה הזו. -
ZONE: האזור של המכונה הזו. -
INSTANCE_NAME: השם של המופע שרוצים לייצא.
הבקשה הזו מחזירה הגדרה של מקור מידע של מופע.
-
בתשובה, משנים את מאפייני המשאב של המכונה. כדי לדעת אילו נכסים אפשר לעדכן, אפשר לעיין ברשימת הנכסים שאפשר לעדכן במסמך הזה. לדוגמה, כדי לשנות את סוג המכונה של המופע, משנים את המאפיין
machineType. אפשר לשנות כמה נכסים.{ ... "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE", ... }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של הבקשה הזו. -
ZONE: האזור של המכונה הזו. -
MACHINE_TYPE: סוג המכונה של המופע, לדוגמה,n1-standard-2.
-
משתמשים בשיטה
instances.updateב-Compute Engine API ומציינים את פרמטר השאילתהmostDisruptiveAllowedAction=NO_EFFECTכדי להריץ עדכון בדיקה של מכונת היעד. התגובה מזהה מאפיינים שהוגדרו באופן שגוי ומציינת אם נדרשת פעולתRESTARTאוREFRESHכדי להחיל את העדכון.PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=NO_EFFECT { ... "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/n1-standard-2", ... }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של הבקשה הזו. -
ZONE: האזור של המכונה הזו. -
INSTANCE_NAME: השם של המופע שרוצים לייצא.
-
משתמשים ב-method
instances.updateב-Compute Engine API כדי לעדכן את מכונת היעד. אם אתם מעדכנים מאפיין שמחייב הפעלה מחדש של המכונה, צריך לכלול את פרמטר השאילתהmostDisruptiveAllowedAction=RESTARTכדי לציין שאפשר להפעיל מחדש את המכונה במהלך העדכון. אם לא צריך להפעיל מחדש את המאפיינים, מציינים את פרמטר השאילתהmostDisruptiveAllowedAction=REFRESH. כדי לדעת אילו מאפיינים דורשים הפעלה מחדש, אפשר לעיין ברשימת המאפיינים שניתנים לעדכון במסמך הזה. צריך לכלול את כל הגוף של משאב המכונה ששיניתם. בדוגמה הבאה, גוף הבקשה משנה את סוג המכונה ל-n1-standard-2:PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=ALLOWED_ACTION { ... "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/n1-standard-2", ... }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של הבקשה הזו. -
ZONE: האזור של המכונה הזו. -
INSTANCE_NAME: השם של המופע שרוצים לייצא. -
ALLOWED_ACTION: מגדיר את מידת השיבוש שהעדכון עלול לגרום. מציינים את הערךRESTARTכדי לאפשר הפעלה מחדש מלאה של המכונה. מציינים את הערךREFRESHכדי לעדכן את המכונה רק אם המאפיינים ששונו לא מחייבים הפעלה מחדש של המכונה.
-
אם בקשת העדכון תקפה והמשאבים הנדרשים זמינים,
תהליך עדכון המופע מתחיל. כדי לעקוב אחרי הסטטוס של הפעולה הזו, אפשר לצפות ביומני הביקורת.
אם העדכון דורש הפעלה מחדש והפקודה מאפשרת RESTART, המכונה מופעלת מחדש כדי להחיל את השינויים.
המאמרים הבאים
- בודקים את המצב של המופע.
- איך שומרים משאבים באזור ספציפי.
- איך מעדכנים את ממשקי הרשת של מכונה