אפשר להשתמש בבקשה אחת מ-Google Cloud CLI או מ-Compute Engine API כדי לעדכן כמה מאפיינים של מכונה, ובאופן אופציונלי להפעיל מחדש את המכונה אם צריך. שיטת העדכון מטפלת בלוגיקה של אימות מאפייני המופע המעודכנים, ומוודאת שהמשאבים הדרושים זמינים כדי להשלים את העדכון בהצלחה. אם הבקשה כוללת מאפיינים לא תקינים או אם המשאבים המבוקשים לא זמינים, הבקשה מחזירה שגיאה ולא מבצעת שינויים במופע. כך מונעים עדכונים חלקיים של המופע, ומונעים את עצירת המופע ואת חוסר היכולת לגשת למשאבים כדי להפעיל אותו מחדש.
כדי לעדכן את ממשקי הרשת (networkInterfaces) של מכונה, אפשר לעיין במאמר בנושא עדכון ממשקי הרשת של מכונה.
כדי להוסיף או להסיר ממשקי רשת דינמיים ממופע, צריך להשתמש בהליכים הבאים במקום לעדכן את מאפייני המופע:
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי 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 .
הגבלות
- בקשות לעדכון מופעים דרך ה-CLI של gcloud או Compute Engine API לא תומכות בסמנטיקה של
PATCH. משאב המופע בבקשת העדכון צריך לכלול את כל המאפיינים של המופע. נכסים שחסרים בהגדרת המופע בבקשת העדכון נחשבים כנמחקים מהמופע. - אפשר לעדכן רק רשימה ספציפית של מלונות.
- אם למכונה מצורפים דיסקים לאחסון מתמיד (SSD) מקומיים, אי אפשר לעדכן מאפיינים שמחייבים הפעלה מחדש של המכונה בזמן שהיא פועלת. אפשר למחוק את המכונה ואז ליצור אותה מחדש, או להפסיק את המכונה, לעדכן את המאפיינים שלה ואז להפעיל אותה מחדש.
- אפשר לעדכן את המאפיין
networkInterfacesשל מכונה, אבל אי אפשר להוסיף או להסיר כרטיסי רשת וירטואליים (vNIC) ממכונה. - אם מופע משתמש במשאבים שזמינים רק ב-Compute Engine API בגרסת בטא, צריך להשתמש בגרסה הנכונה של השיטה
instances.updateכדי לעדכן את המאפיינים האלה. לדוגמה, אם יוצרים מופע באמצעות Compute Engine API בגרסת בטא ומגדירים את המופע עם משאב שרק ה-API בגרסת בטא מזהה, צריך להשתמש גם בגרסת הבטא של השיטהinstances.updateכדי לעדכן את המשאבים האלה. גרסה v1 של השיטה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: אפשר לעדכן את האופן שבו ה-instance צורך הזמנות (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.s3nsapis.fr/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
משתמשים ב-
instances.getmethod ב-Compute Engine API כדי לייצא את מאפייני המכונה הקיימת:GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של הבקשה הזו. -
ZONE: האזור של המכונה הזו. -
INSTANCE_NAME: השם של המכונה שרוצים לייצא.
הבקשה הזו מחזירה הגדרת משאב של מופע.
-
בתשובה, משנים את מאפייני משאב המכונה. כדי לדעת אילו נכסים אפשר לעדכן, אפשר לעיין ברשימת הנכסים שאפשר לעדכן במסמך הזה. לדוגמה, כדי לשנות את סוג המכונה של המופע, משנים את המאפיין
machineType. אפשר לשנות כמה נכסים.{ ... "machineType": "https://www.s3nsapis.fr/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.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=NO_EFFECT { ... "machineType": "https://www.s3nsapis.fr/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.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=ALLOWED_ACTION { ... "machineType": "https://www.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/n1-standard-2", ... }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של הבקשה הזו. -
ZONE: האזור של המכונה הזו. -
INSTANCE_NAME: השם של המכונה שרוצים לייצא. ALLOWED_ACTION: מגדיר את מידת השיבוש שהעדכון עלול לגרום. מציינים את הערךRESTARTכדי לאפשר הפעלה מחדש מלאה של המכונה. מצייניםREFRESHכדי לעדכן את המופע רק אם המאפיינים ששונו לא מחייבים הפעלה מחדש של המופע.
-
אם בקשת העדכון תקפה והמשאבים הנדרשים זמינים, מתחיל תהליך עדכון המופע. אפשר לעקוב אחרי הסטטוס של הפעולה הזו באמצעות צפייה ביומני הביקורת.
אם העדכון דורש הפעלה מחדש והפקודה מאפשרת RESTART, המופע מופעל מחדש כדי להחיל את השינויים.
המאמרים הבאים
- בודקים את המצב של המופע.
- איך שומרים משאבים באזור ספציפי
- איך מעדכנים את ממשקי הרשת של מכונה