אחרי שיוצרים תמונת מכונה, אפשר להשתמש בה כדי ליצור עותקים של מופע המחשוב של המקור. מידע נוסף על השימושים בתמונות מכונה זמין במאמר בנושא מתי כדאי להשתמש בתמונת מכונה.
תמונת מכונה מכילה את רוב המידע והנתונים שנדרשים לשכפול מופע.
אי אפשר לשנות תמונת מכונה. עם זאת, אפשר לבטל כמעט את כל המאפיינים של קובץ האימג' של המכונה כשיוצרים מכונה מקובץ האימג' של המכונה.
אפשר גם ליצור עותקים של דיסקים בודדים שנמצאים בקובץ האימג' של המכונה בלי ליצור מכונה חדשה.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי 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 .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות ליצירת מכונות של Compute Engine מתמונות מכונה, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) במכונת ה-Compute או בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הגבלות
ההגבלות הבאות חלות כשיוצרים מכונות מתמונות של מכונות:
אפשר ליצור לכל היותר 6 מכונות מאימג' של מכונת מקור בתוך 60 דקות. אם חורגים מהמגבלה הזו, פעולת יצירת המופע נכשלת ומוחזרת שגיאה שדומה לזו:
Operation rate exceeded for resource 'projects/test/global/machineImages/machine-image-1'. Too frequent operations from the source resource.כדי ליצור יותר מכונות מהמגבלה שהוגדרה (6 מכונות ב-60 דקות), צריך ליצור קובצי אימג' נוספים של מכונות ממכונת המקור, או ליצור קובצי אימג' זמניים של מכונות מהמכונות החדשות. אחר כך תוכלו ליצור את מספר המכונות הנדרש מתמונות המכונה החדשות.
אם משתמשים ב-CLI של gcloud או ב-REST כדי ליצור מכונה מתמונת מכונה עם דיסקים מוצפנים באמצעות CMEK, הדיסקים במכונה החדשה מוצפנים באמצעות הצפנה שמוגדרת כברירת מחדל, אלא אם מציינים את מפתחות ה-CMEK. אם משתמשים במסוף Google Cloud , ההצפנה באמצעות CMEK מועברת באופן אוטומטי.
אי אפשר ליצור מופעים מתמונות מכונה עם דיסקים אזוריים מצורפים באמצעות מסוף Google Cloud . משתמשים ב-Google Cloud CLI או ב-REST ומציינים את הפרמטרים
replicaZonesו-deviceNameלכל דיסק אזורי שמצורף. מידע נוסף זמין במאמר בנושא יצירת מכונה מקובץ אימג' של מכונה עם ביטול ברירת מחדל של מאפיינים.אם בוחרים באפשרות יצירת דיסק מקובץ אימג' של מכונה (גרסת Preview), חלות ההגבלות הבאות:
חובה לציין את שני השדות
source_machine_imageו-source_machine_image_disk_device_name.תמונת המכונה של המקור צריכה להיות במצב READY.
אי אפשר לציין כמה מקורות נתונים.
יצירת מכונה מקובץ אימג' של מכונה (ללא שינוי)
אפשר ליצור מכונות מתמונות מכונה באמצעות Google Cloud המסוף, Google Cloud CLI או REST.
אם רוצים ליצור אינסטנס שמבוסס באופן מלא על תמונת המכונה בלי לבצע שינויים במאפיינים, כדאי להשתמש בשיטה הזו.
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
בתפריט Create VM from ..., לוחצים על Machine images.
בחלון Create VM from machine image שמופיע, מבצעים את הפעולות הבאות:
בוחרים תמונת מכונה.
כדי ליצור את המכונה ולהפעיל אותה, לוחצים על Create.
gcloud
משתמשים בפקודה gcloud compute instances create כדי ליצור מכונה מקובץ אימג' של מכונה.
gcloud compute instances create INSTANCE_NAME \
--zone=ZONE \
--source-machine-image=SOURCE_MACHINE_IMAGE_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המכונה -
ZONE: האזור של המכונה -
SOURCE_MACHINE_IMAGE_NAME: קובץ האימג' של המכונה שממנו רוצים ליצור את המכונה
דוגמה
לדוגמה, אפשר להשתמש בפקודה gcloud הבאה כדי ליצור מכונה בשם my-instance באזור us-east1-b, מתמונת מכונה בשם my-machine-image.
gcloud compute instances create my-instance \
--zone=us-east1-b \
--source-machine-image=my-machine-image
אחרי שהמכונה נוצרת, הפלט אמור להיראות כך:
Created [https://www.googleapis.com/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS my-instance us-east1-b e2-standard-2 192.0.2.1 203.224.0.113 RUNNING
הערה לגבי הצפנת CMEK: כשיוצרים מכונה וירטואלית מתמונת מכונה שמוצפנת באמצעות מפתח הצפנה בניהול הלקוח (CMEK), ה-CLI של gcloud משתמש כברירת מחדל בהצפנה בניהול Google עבור הדיסקים של המכונה הווירטואלית החדשה. ההגדרה הזו שונה מההגדרה ב Google Cloud מסוף, שבה מפתח ה-CMEK עובר בירושה באופן אוטומטי מתמונת המכונה של המקור.
כדי לוודא שהדיסקים של ה-VM החדש יורשים את ה-CMEK מתמונת המכונה של המקור (שכפול ההתנהגות של מסוף Google Cloud ), צריך לספק באופן מפורש את הגדרות הדיסק באמצעות הדגל --create-disk לכל דיסק שרוצים לשמר בו את ההצפנה באמצעות CMEK. הערך של device-name שצוין בדגל חייב להיות זהה בדיוק לשם המכשיר של הדיסק בתמונת המכונה של המקור.
כדי לשמור על הצפנת CMEK, משתמשים במבנה הפקודה הבא. בדוגמה הבאה מוסבר איך לשמור על הצפנת CMEK של דיסק אתחול (boot=yes) ושל דיסק שאינו דיסק אתחול (boot=no).
gcloud compute instances create INSTANCE_NAME \
--zone=ZONE \
--source-machine-image=SOURCE_MACHINE_IMAGE \
--create-disk=auto-delete=yes,boot=yes,device-name=DEVICE_NAME_IN_IMAGE,kms-key=KMS_KEY,kms-project=KMS_PROJECT,kms-location=KMS_LOCATION,kms-keyring=KMS_KEYRING \
--create-disk=auto-delete=yes,boot=no,device-name=DEVICE_NAME_IN_IMAGE,kms-key=KMS_KEY,kms-project=KMS_PROJECT,kms-location=KMS_LOCATION,kms-keyring=KMS_KEYRING
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המופע החדש של המכונה הווירטואלית. -
ZONE: האזור של המכונה הווירטואלית החדשה. -
SOURCE_MACHINE_IMAGE: השם של תמונת המכונה של המקור. -
DEVICE_NAME_IN_IMAGE: שם המכשיר של הדיסק (דיסק אתחול או דיסק שאינו דיסק אתחול) כפי שמוגדר בתמונת המכונה של המקור. -
KMS_KEY: השם של מפתח ה-CMEK. -
KMS_PROJECT: הפרויקט שבו נמצא המפתח. -
KMS_LOCATION: המיקום של המפתח. -
KMS_KEYRING: אוסף המפתחות של המפתח.
REST
ב-API, יוצרים בקשת POST אל ה-method instances.insert.
בגוף הבקשה, כוללים את הפרמטרים הבאים:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "INSTANCE_NAME",
"sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL"
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
ZONE: האזור של המכונה. -
INSTANCE_NAME: שם למכונה.
SOURCE_MACHINE_IMAGE_URL: כתובת ה-URL המלאה או החלקית של תמונת המכונה שרוצים להשתמש בה כדי ליצור את המופע. לדוגמה, אם יש לכם תמונת מכונה בשםmy-machine-imageבפרויקט בשםmyProject. כתובות ה-URL הבאות תקינות:https://www.googleapis.com/compute/v1/projects/myProject/global/machineImages/my-machine-imageprojects/myProject/global/machineImages/my-machine-imageglobal/machineImages/my-machine-image
הערה לגבי הצפנת CMEK:
כשיוצרים מכונה וירטואלית מקובץ אימג' של מכונה שמוצפן באמצעות מפתח הצפנה בניהול הלקוח (CMEK), בקשת ברירת מחדל של instances.insert תגרום לכך שהדיסקים של המכונה הווירטואלית החדשה יוצפנו באמצעות הצפנה בניהול Google.
כדי לוודא שהמכונה הווירטואלית החדשה והדיסקים שלה נוצרים עם אותו CMEK כמו תמונת המכונה של המקור (שכפול ההתנהגות שלGoogle Cloud המסוף), צריך לשנות את מאפיין disks כדי לציין את diskEncryptionKey לכל דיסק (אתחול או לא אתחול) שרוצים לשמור בו את ההצפנה באמצעות CMEK.
בדוגמה הבאה מוצג גוף בקשה ששומר על ההצפנה באמצעות CMEK מתמונת המכונה של המקור. שימו לב: מכיוון ש-disks הוא שדה חוזר, צריך לציין את ההגדרה לכל הדיסקים שנוצרים מהתמונה.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "INSTANCE_NAME",
"sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL",
"disks": [
{
"boot": true,
"autoDelete": true,
"deviceName": "DEVICE_NAME_IN_IMAGE",
"diskEncryptionKey": {
"kmsKeyName": "projects/KMS_PROJECT/locations/KMS_LOCATION/keyRings/KMS_KEYRING/cryptoKeys/KMS_KEY"
}
},
{
"boot": false,
"autoDelete": true,
"deviceName": "DEVICE_NAME_IN_IMAGE",
"diskEncryptionKey": {
"kmsKeyName": "projects/KMS_PROJECT/locations/KMS_LOCATION/keyRings/KMS_KEYRING/cryptoKeys/KMS_KEY"
}
}
]
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
ZONE: האזור של המכונה. -
INSTANCE_NAME: השם של המופע החדש של המכונה הווירטואלית.
SOURCE_MACHINE_IMAGE_URL: כתובת ה-URL המלאה או החלקית של קובץ האימג' של המכונה שרוצים להשתמש בו כדי ליצור את המכונה. לדוגמה, אם יש לכם תמונת מכונה בשםmy-machine-imageבפרויקט בשםmyProject. כתובות ה-URL הבאות תקינות:https://www.googleapis.com/compute/v1/projects/myProject/global/machineImages/my-machine-imageprojects/myProject/global/machineImages/my-machine-imageglobal/machineImages/my-machine-image
DEVICE_NAME_IN_IMAGE: שם המכשיר של הדיסק (דיסק לאתחול או דיסק לא לאתחול) כפי שמוגדר בתמונת המכונה של המקור.
KMS_PROJECT: הפרויקט שבו נמצא המפתח.
KMS_LOCATION: המיקום של המפתח.
KMS_KEYRING: אוסף המפתחות של המפתח.
KMS_KEY: השם של מפתח ה-CMEK.
יצירת מכונה מקובץ אימג' של מכונה עם שינויים בהגדרות
אם רוצים ליצור מכונה וירטואלית שמבוססת בעיקר על תמונת המכונה, אבל עם כמה שינויים, אפשר להשתמש בהתנהגות של החלפה. כדי להשתמש בהתנהגות של שינוי ברירת המחדל, מעבירים מאפיינים כדי לשנות את מאפייני תמונת המכונה הקיימים כשיוצרים את המכונה.
כשמשתמשים בתכונת הביטול, חשוב לשים לב לנקודות הבאות:
- כשיוצרים מכונה מקובץ אימג' של מכונה, אי אפשר לשנות את המאפיינים של הדיסק המצורף, חוץ מהשם של הדיסק.
צריך לציין את הפרמטר
replicaZonesלכל דיסק אזורי שמצורף, יחד עם ה-deviceNameשל הדיסק האזורי מתמונת המכונה.אם מכונת המקור (שמשמשת ליצירת קובץ האימג' של המכונה) והמכונה החדשה שייכות לאותו פרויקט ולאותו אזור, חלים הכללים הבאים:
- רוב המאפיינים של המופע המקורי ושל המופע החדש זהים. המאפיינים ששונים הם למשל כתובות ה-IP האפימריות שמוקצות באופן אוטומטי.
- אם המכונה המקורית עדיין קיימת כשיוצרים מכונה חדשה, אי אפשר להשתמש באותו שם ובאותו אזור של המכונה המקורית.
אם המכונה המקורית ששימשה ליצירת תמונת המכונה והמכונה החדשה שייכות לאותו פרויקט אבל לאזורים שונים, התנאים הבאים חלים:
- צריך לבטל את כל המשאבים האזוריים והאזוריים למופע החדש. לדוגמה, אם יוצרים מכונה מקובץ אימג' של מכונה שהמכונה המקורית שלו הייתה באזור אחר, צריך לבטל את ההגדרות של משאבים אזוריים כמו רשת המשנה וכללי חומת האש האזוריים. עם זאת, אין צורך לשנות משאבים גלובליים כמו מאזני עומסים וחשבונות שירות, אלא אם אתם רוצים לשנות אותם.
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
בתפריט Create VM from ..., לוחצים על Machine images.
בחלון Create VM from machine image (יצירת מכונה וירטואלית מתמונת מכונה) שמופיע, בוחרים תבנית ולוחצים על Customize (התאמה אישית).
אופציונלי: מציינים אפשרויות הגדרה אחרות. למידע נוסף, ראו אפשרויות הגדרה במהלך יצירת מכונה.
כדי ליצור את המכונה ולהפעיל אותה, לוחצים על Create.
gcloud
כדי ליצור מכונה מקובץ אימג' של מכונה ולהוסיף את המאפיינים שרוצים לשנות, משתמשים בפקודה gcloud compute instances create.
לדוגמה, אפשר להשתמש בפקודה gcloud הבאה כדי ליצור מכונה וירטואלית בשם my-instance באזור us-east1-b, מאימג' של מכונה בשם my-machine-image. בדוגמה הזו, נעשה שימוש בשינויים מברירת המחדל כדי לשנות את סוג המכונה, להפסיק את מדיניות תחזוקת המארח ולהגדיר דיסק אחסון מתמיד (persistent disk) אזורי עם השם regional-disk-0.
gcloud compute instances create my-instance \
--zone=us-east1-b \
--source-machine-image=my-machine-image \
--machine-type=e2-standard-2 \
--maintenance-policy=TERMINATE \
--create-disk=device-name=boot-device-0,boot=true,auto-delete=true \
--create-disk=device-name=regional-disk-0,\
replica-zones=^:^us-east1-b:us-east1-c,boot=false
REST
כדי לשנות את מאפייני תמונת המכונה במהלך יצירת המכונה, יוצרים בקשת POST אל ה-method instances.insert.
בגוף הבקשה, כוללים את הפרמטר sourceMachineImage וכל שינוי שצריך. אפשר להוסיף כל מאפיין שבדרך כלל מגדירים במהלך יצירת מופע.
לדוגמה, כדי לשנות את סוג המכונה, הקריאה ל-API תכלול את הפרמטר machineType.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "INSTANCE_NAME",
"machineType": "zones/ZONE/machineTypes/NEW_MACHINE_TYPE",
"sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL"
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
ZONE: האזור של המכונה. -
INSTANCE_NAME: שם למכונה. -
NEW_MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה עבור המכונה.
SOURCE_MACHINE_IMAGE_URL: כתובת ה-URL המלאה או החלקית של תמונת המכונה שרוצים להשתמש בה כדי ליצור את המופע. לדוגמה, אם יש לכם תמונת מכונה בשםmy-machine-imageבפרויקט בשםmyProject. כתובות ה-URL הבאות תקינות:https://www.googleapis.com/compute/v1/projects/myProject/global/machineImages/my-machine-imageprojects/myProject/global/machineImages/my-machine-imageglobal/machineImages/my-machine-image
התנהגות של ביטול
התנהגות ההחלפה ב-Compute Engine API פועלת לפי הכללים של JSON merge patch, שמתוארים ב-RFC 7396. לסיכום, אלה הכללים הרלוונטיים:
- אם מחליפים שדה בסיסי, השדה הבסיסי התואם בתמונת המכונה מוחלף בערך של השדה הבסיסי בבקשה. שדות בסיסיים כוללים פרמטרים כמו
machineTypeו-name. - אם מחליפים שדה חוזר, כל הערכים החוזרים של הנכס הזה מוחלפים בערכים התואמים שצוינו בבקשה.
שדות חוזרים הם בדרך כלל מאפיינים מסוג
list. לדוגמה,disksו-networkInterfacesהם שדות חוזרים. - אם משנים את הערך של
nested object, האובייקט בתמונת המכונה מתמזג עם מפרט האובייקט התואם בבקשה. שימו לב: אם אובייקט בתוך שדה נמצא בתוך שדה חוזר, המערכת מתייחסת לשדה לפי הכללים של שדות חוזרים. תוויות הן חריגות לכלל הזה, והן נחשבות לשדה חוזר (repeated) למרות שהן מסוגobject.
לדוגמה, אם רוצים ליצור מכונה וירטואלית מתמונת מכונה, וליצור דיסקים אזוריים עם המכונה הווירטואלית, משתמשים בשינוי של הדיסקים כדי לציין את האפשרות replicaZones. השדה disks הוא שדה חוזר, לכן צריך לציין את הגדרת הדיסק לכל הדיסקים המצורפים ולדיסק האתחול, ולא רק לדיסקים האזוריים.
POST https://compute.googleapis.com/compute/v1/projects/my-proj/zones/us-west1-a/instances
{
"name": "vm-from-image",
"sourceMachineImage": "global/machineImages/my-machine-image",
"disks": [
{
"kind": "compute#attachedDisks",
"boot": true,
"autoDelete": true,
"deviceName": "boot-device",
"initializeParams": {
"sourceImage": "projects/my-proj/global/images/my-image",
"diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard",
}
},
{
"kind": "compute#attachedDisk",
"boot": false,
"autoDelete": true,
"deviceName": "regional-device-0",
"initializeParams": {
"diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard",
"replicaZones": [
"projects/my-proj/zones/us-west1-a",
"projects/my-proj/zones/us-west1-c"
]
}
}
]
}
יצירת מכונה באמצעות קובץ אימג' של מכונה מפרויקט אחר
כשיוצרים מכונה באמצעות קובץ אימג' של מכונה מפרויקט אחר, יכול להיות שלא תהיה לכם גישה לחשבון השירות שמצורף לפרויקט המקור. אם רוצים ליצור מכונה וירטואלית מתמונת מכונה שנמצאת בפרויקט אחר, צריך לוודא שיש לכם גישה לתמונת המכונה ולשנות את מאפיין חשבון השירות במכונה הווירטואלית החדשה.
אם משתפים תמונת מכונה בין פרויקטים שמשתמשים ברשת VPC משותפת, צריך לציין במפורש את הפרטים של ה-VPC המשותף כשיוצרים מכונה מתמונת המכונה. לדוגמה, כשיוצרים מכונה בפרויקט שהוא לא פרויקט מארח, צריך לספק את פרטי ה-VPC המשותף של הפרויקט המארח באמצעות הדגלים --network, --subnet או --network-interface.
בקטעים הבאים מוסבר איך ליצור מכונה מתוך תמונת מכונה שנמצאת בפרויקט אחר באמצעות Google Cloud CLI.
מעניקים גישה לתמונת המכונה שמאוחסנת בפרויקט אחר.
אפשר להעניק הרשאות בפרויקט המקור או בתמונת המכונה. משתמשים בפקודה
gcloud compute machine-images add-iam-policy-bindingכדי להעניק את ההרשאות לתמונת המכונה.gcloud compute machine-images add-iam-policy-binding MACHINE_IMAGE_NAME \ --project=MACHINE_IMAGE_PROJECT \ --member='ACCOUNT_EMAIL' \ --role='roles/compute.admin'מחליפים את מה שכתוב בשדות הבאים:
-
MACHINE_IMAGE_PROJECT: מזהה הפרויקט של הפרויקט שמכיל את תמונת המכונה של המקור. -
MACHINE_IMAGE_NAME: השם של תמונת המכונה שרוצים להוסיף לה את קישור ההרשאות.
ACCOUNT_EMAIL: כתובת האימייל שלserviceAccountאוuserשיוצרים את המופע. חשוב לוודא שהפורמט של כתובת האימייל כולל את הקידומת הנדרשת. הקידומת צריכה להיות אחת מהאפשרויות הבאות:user:מציינים את זה אם כתובת האימייל משויכת לחשבון משתמש. לדוגמה,user:user@example.com.-
serviceAccount:מציינים את זה אם כתובת האימייל משויכת לחשבון שירות. לדוגמה,serviceAccount:123456789000-compute@developer.gserviceaccount.com.
דוגמה
לדוגמה, כדי להוסיף קישור
compute.adminלתמונת המכונה שנקראתmy-machine-imageלכתובת האימייל של חשבון השירות123456789000-compute@developer.gserviceaccount.com, משתמשים בפקודהgcloud CLIהבאה:gcloud compute machine-images add-iam-policy-binding my-machine-image \ --project=machine-image-project \ --member='serviceAccount:123456789000-compute@developer.gserviceaccount.com' \ --role='roles/compute.admin'-
נותנים למשתמש שמריץ את הפקודה
gcloud compute instances createאת התפקיד 'משתמש בחשבון שירות' (roles/iam.serviceAccountUser) בחשבון השירות שמשויך לתמונת המכונה.כדי ליצור מכונה מקובץ אימג' של מכונה, משתמשים בפקודה
gcloud compute instances create.gcloud compute instances create INSTANCE_NAME \ --project=INSTANCE_PROJECT_ID \ --zone=ZONE \ --source-machine-image=projects/MACHINE_IMAGE_PROJECT/global/machineImages/MACHINE_IMAGE_NAME \ --service-account=SERVICE_ACCOUNT_EMAIL \ --subnet=SUBNETמחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה -
INSTANCE_NAME: שם למכונה -
ZONE: האזור של המכונה -
MACHINE_IMAGE_PROJECT: מזהה הפרויקט שבו נמצאת תמונת המכונה -
MACHINE_IMAGE_NAME: קובץ האימג' של המכונה שממנו יוצרים את המכונה -
SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות שרוצים לצרף למופע
SUBNET: אם תת-הרשת והמכונה נמצאות באותו פרויקט, מחליפים את SUBNET בשם של תת-רשת שנמצאת באותו אזור כמו המכונהכדי לציין רשת משנה ברשת VPC משותפת, מחליפים את הערך בשדה
SUBNETבמחרוזת בפורמט הבא:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_ID: מזהה הפרויקט של הפרויקט המארח ב-VPC משותף -
REGION: האזור של רשת המשנה -
SUBNET_NAME: השם של רשת המשנה
דוגמה
לדוגמה, הפקודה הבאה יוצרת מכונה וירטואלית בשם
my-instanceבפרויקטvm-project, באזורus-east1-b, מתמונת מכונה בשםmy-machine-image.הדגל
--service-accountמציין את חשבון השירות שרוצים לצרף למכונה הווירטואלית החדשה שנוצרה. אם לא מציינים את הדגל הזה, אי אפשר לשתף את חשבון השירות של המקור בשני הפרויקטים והפעולה נכשלת.gcloud compute instances create my-instance \ --project=vm-project \ --zone=us-east1-b \ --source-machine-image=projects/machine-image-project/global/machineImages/my-machine-image \ --service-account=000123456789-compute@developer.gserviceaccount.com
אחרי שה-VM נוצר, הפלט אמור להיראות כך:
Created [https://www.googleapis.com/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS my-instance us-east1-b e2-standard-2 192.0.2.1 203.224.0.113 RUNNING
-
-
יצירת דיסק מקובץ אימג' של מכונה (גרסת Preview)
אם גיביתם מכונה של Compute Engine באמצעות קובץ אימג' של מכונה, אתם יכולים ליצור דיסק חדש על ידי שחזור דיסק ספציפי מקובץ האימג' הזה.
מסוף Google Cloud
נכנסים לדף Create a disk במסוף Google Cloud .
לוחצים על Create disk.
בקטע סוג מקור הדיסק, בוחרים באפשרות תמונת מכונה.
בוחרים את תמונת המכונה הרצויה.
מהרשימה הנפתחת של הדיסקים בתמונת המכונה, בוחרים את דיסק המקור הספציפי.
אם תמונת המכונה מוצפנת באמצעות CSEK, יופיע שדה להזנת קלט להזנת המפתח.
מגדירים מאפיינים אחרים של הדיסק, כמו שם, אזור, סוג וגודל.
Google Cloud CLI
כדי ליצור דיסק מדיסק ספציפי בתמונת מכונה, מריצים את הפקודה הבאה:
gcloud beta compute disks create DISK_NAME \ --zone=ZONE \ --source-machine-image=SOURCE_MACHINE_IMAGE_NAME \ --source-machine-image-disk-device-name=SOURCE_DISK_DEVICE_NAME \ --type=pd-balanced
כדי ליצור דיסק מקובץ אימג' של מכונה שמוצפן באמצעות CSEK, מריצים את הפקודה הבאה:
gcloud beta compute disks create CSEK_DISK_NAME \ --zone=ZONE \ --source-machine-image=CSEK_MACHINE_IMAGE_NAME \ --source-machine-image-disk-device-name=SOURCE_DISK_DEVICE_NAME \ --source-machine-image-encryption-key-file=/PATH/TO/KEY.json
מחליפים את מה שכתוב בשדות הבאים:
DISK_NAME: השם של הדיסק החדש.
ZONE: האזור שבו רוצים ליצור את הדיסק.
SOURCE_MACHINE_IMAGE_NAME: השם של תמונת המכונה המקורית.
SOURCE_DISK_DEVICE_NAME: שם המכשיר של הדיסק הספציפי בתמונת המכונה של המקור, שבו רוצים להשתמש כמקור לדיסק החדש.
CSEK_DISK_NAME: השם של הדיסק החדש שנוצר מתמונת מכונה מוצפנת באמצעות CSEK.
CSEK_MACHINE_IMAGE_NAME: השם של תמונת המכונה של המקור שמוצפנת באמצעות CSEK.
/PATH/TO/KEY.json: הנתיב לקובץ ה-JSON שמכיל את מפתח ההצפנה באספקת הלקוח (CSEK) שמשמש לפענוח תמונת המכונה. למידע על פורמט קובץ, קראו את המאמר פורמט קובץ.
REST
כדי ליצור דיסק מקובץ אימג' של מכונה, שולחים בקשת POST אל ה-method disks.insert:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_NAME/zones/ZONE/disks
בגוף הבקשה, מציינים את הגדרת הדיסק ואת כתובת ה-URL של קובץ האימג' של מכונת המקור:
{
"name": "DISK_NAME",
"sourceMachineImage": "projects/PROJECT_NAME/global/machineImages/SOURCE_MACHINE_IMAGE_NAME",
"sourceMachineImageDiskDeviceName": "SOURCE_DISK_DEVICE_NAME",
"type": "projects/PROJECT_NAME/zones/ZONE/diskTypes/pd-balanced"
}
כדי ליצור דיסק מקובץ אימג' של מכונה שמוצפן באמצעות CSEK, צריך לכלול את מפתח ההצפנה בגוף הבקשה:
{
"name": "CSEK_DISK_NAME",
"sourceMachineImage": "projects/PROJECT_NAME/global/machineImages/CSEK_MACHINE_IMAGE_NAME",
"sourceMachineImageDiskDeviceName": "SOURCE_DISK_DEVICE_NAME",
"sourceMachineImageEncryptionKey": {
"rawKey": "BASE64_ENCODED_KEY"
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_NAME: שם הפרויקט.
ZONE: האזור שבו רוצים ליצור את הדיסק.
DISK_NAME: השם של הדיסק החדש.
SOURCE_MACHINE_IMAGE_NAME: השם של תמונת המכונה של המקור.
SOURCE_DISK_DEVICE_NAME: שם המכשיר של הדיסק הספציפי בתמונת המכונה של המקור שרוצים להשתמש בו כמקור לדיסק החדש.
CSEK_DISK_NAME: השם של הדיסק החדש שנוצר מתמונת מכונה מוצפנת באמצעות CSEK.
CSEK_MACHINE_IMAGE_NAME: השם של תמונת המכונה של המקור שמוצפנת באמצעות CSEK.
BASE64_ENCODED_KEY: מפתח ההצפנה באספקת הלקוח (CSEK) בקידודbase64, שמשמש לפענוח תמונת המכונה.
מאפיינים שעוברים בירושה
המאפיינים הבאים עוברים בירושה מתמונת המכונה של המקור:
גודל
רישיונות
תכונות של מערכת ההפעלה של האורח
ארכיטקטורת המעבד (CPU)
סוג