אתם יכולים להשתמש בבקשה אחת מ-Google Cloud CLI או מ-Compute Engine API כדי לעדכן כמה מאפיינים של מכונה, ואם צריך, להפעיל מחדש את המכונה. השיטה update מטפלת בלוגיקה של אימות מאפייני המכונה המעודכנים ומוודאת שהמשאבים הדרושים זמינים כדי להשלים את העדכון בהצלחה. אם הבקשה כוללת מאפיינים לא חוקיים או אם המשאבים המבוקשים לא זמינים, הבקשה מחזירה שגיאה ולא מתבצעים שינויים במכונה. כך המכונה מוגנת מפני עדכונים חלקיים, וגם מפני עצירה וחוסר יכולת לגשת למשאבים כדי להתחיל מחדש.
כדי לעדכן את ממשקי הרשת (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כדי לעדכן את המשאבים האלה. גרסה 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. - אם מעדכנים משאב שמשמש את המכונה, משתמשים בפקודה כדי לעדכן את המשאב הזה במקום לעדכן את מאפייני המכונה, לדוגמה:
- אפשר לשנות דיסקים באמצעות ה-method
disks.update - כדי לשנות את הרשת שבה המכונה משתמשת, אתם יכולים להשתמש ב-method
instances.updateNetworkInterface, שלא מחייב את עצירת המכונה.
- אפשר לשנות דיסקים באמצעות ה-method
מאפיינים שאפשר לעדכן
אפשר לשנות רק קבוצה ספציפית של מאפייני מכונה באמצעות השיטה update. כדי לעדכן חלק מהמאפיינים, צריך להפעיל מחדש את המכונה. כדי למנוע הפעלות מחדש מקריות במכונות, צריך להגדיר בבקשה איזו פעולה מותר לבצע במכונות. בבקשה אפשר לציין אחת מהפעולות הבאות:
-
NO_EFFECT: בקשת העדכון בודקת אם הבקשה תקינה ואם המשאבים זמינים, אבל לא מבצעת את העדכון. אפשר להשתמש בפעולה הזו כדי לבדוק פקודות בלי להפעיל עדכונים בפועל. -
REFRESH: בקשת העדכון פועלת רק אם מאפייני המכונה ששונו לא מחייבים הפעלה מחדש של המכונה. אם הבקשה תקינה אבל נדרשת הפעלה מחדש, הבקשה תחזיר שגיאתINFEASIBLE. -
RESTART: אם העדכון דורש הפעלה מחדש של המכונה, המערכת תפעיל מחדש את המכונה.
כדי לעדכן את המאפיינים הבאים, צריך להפעיל מחדש (RESTART):
-
disks: דיסקי אתחול, כולל כל הדיסקים (disks.deviceName) displayDeviceenableNestedVirtualizationguestAcceleratorsmachineTypeminCpuPlatformnetworkInterfacesnetworkPerformanceConfigperformanceMonitoringUnit-
reservationAffinity: אפשר לעדכן את האופן שבו המכונה צורכת את המקומות השמורים (reservationAffinity.consumeReservationType) רק באופן הבא:- משימוש בכל הזמנה תואמת (
ANY_RESERVATION) לאי-שימוש בהזמנות (NO_RESERVATION) - מאי-שימוש במקומות שמורים (
NO_RESERVATION) לשימוש בכל המקומות השמורים התואמים (ANY_RESERVATION)
- משימוש בכל הזמנה תואמת (
-
resourcePolicies: אם המדיניות מציינת רק דומיין זמינות אחד -
scheduling: כל מאפייני התזמון, חוץ מהמאפיינים הבאים:- השדה
scheduling.nodeAffinities - השדה
scheduling.availabilityDomainכשמצרפים או מסירים בו-זמנית מדיניות למיקום מרווח באותה בקשת עדכון
- השדה
serviceAccountsshieldedInstanceConfigthreadsPerCorevisibleCoreCount
כדי לעדכן את המאפיינים הבאים, צריך רק לרענן (REFRESH):
canIpForwarddeletionProtectiondescriptiondisks: מאפיינים של דיסק שאינו דיסק אתחול, למעטdeviceNamelabelsmetadatanodeAffinities-
resourcePolicies: אם המדיניות מציינת שני דומיינים או יותר של זמינות -
scheduling.availabilityDomain: עדכונים בשדה הזה כשמצרפים בו-זמנית מדיניות למיקום מרווח למכונה, או ניקוי השדה כשמסירים מדיניות למיקום מרווח ממכונה, באותה בקשת עדכון tags
עדכון מאפייני המכונה
כדי לעדכן את המכונות:
- מייצאים את מאפייני ההגדרות של המכונה הקיימת.
- משנים את המאפיינים של הגדרת המכונה.
- מריצים בקשת בדיקה ומציינים את
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
כדי לייצא את המאפיינים של המכונה הקיימת, משתמשים ב-method
instances.getב-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.
-
משתמשים ב-method
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, המכונה תופעל מחדש כדי להחיל את השינויים.
המאמרים הבאים
- בודקים את מצב המכונה.
- איך שומרים משאבים באזור ספציפי
- איך מעדכנים את ממשקי הרשת של מכונה