בדף הזה מוסבר איך להשתמש בתבנית של הגדרות מכונה כדי ליצור מכונה וירטואלית. תבנית של הגדרות מכונה היא משאב API שמגדיר את המאפיינים של מכונות וירטואליות. אתם מגדירים מאפיינים כמו סוג המכונה, קובץ אימג' של מערכת ההפעלה, הגדרות של דיסק אחסון מתמיד (persistent disk), מטא-נתונים, סקריפטים לטעינה בזמן ההפעלה וכו', בתבנית של הגדרות מכונה, ואז אתם יכולים להשתמש בתבנית של הגדרות מכונה כדי ליצור מכונות וירטואליות נפרדות או קבוצות של מכונות מנוהלות.
כשיוצרים מכונת VM מתבנית של הגדרות מכונה, התנהגות ברירת המחדל היא ליצור מכונת VM זהה למאפיינים שצוינו בתבנית, למעט שם מכונת ה-VM והאזור שבו המכונה תפעל. לחלופין, אפשר גם להחליף באופן אופציונלי שדות מסוימים במהלך יצירת מכונה, אם רוצים לשנות מאפיינים מסוימים של תבנית של הגדרות מכונה לשימושים ספציפיים.
במסמך הזה אנחנו מניחים שיש לכם תבנית של הגדרות מכונה שמוכנה לשימוש. אם אין לכם תבנית של הגדרות מכונה, תוכלו לפעול לפי ההוראות כדי ליצור תבנית חדשה של הגדרות מכונה.
לפני שמתחילים
- קוראים את מאמרי העזרה בנושא תבנית מכונה.
- יוצרים תבנית של הגדרות מכונה.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי 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 באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
המשך
כדי להשתמש בדוגמאות של Go שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
כדי להשתמש בדוגמאות של Java שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
כדי להשתמש בדוגמאות של Node.js שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
יצירת מופע של מכונה וירטואלית מתבנית של הגדרות מכונה
אפשר להשתמש בתבנית של הגדרות מכונה אזורית או גלובלית כדי ליצור מכונה וירטואלית. כדי ליצור מופע בדיוק כמו שמתואר בתבנית של הגדרות המכונה, פועלים לפי ההוראות הבאות.
המסוף
נכנסים לדף Create an instance במסוף Cloud de Confiance .
בתפריט Create VM from ..., בוחרים באפשרות Instance templates.
בחלון Create VM from template שמופיע, מבצעים את הפעולות הבאות:
בוחרים תבנית.
כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על Create.
gcloud
כדי ליצור מכונה וירטואלית מתבנית של הגדרות מכונה אזורית או גלובלית, משתמשים באותה פקודת gcloud compute instances create שבה משתמשים כדי ליצור מכונה רגילה, אבל מוסיפים את הדגל --source-instance-template:
gcloud compute instances create VM_NAME \
--source-instance-template INSTANCE_TEMPLATE_URL
מחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: השם של המכונה. -
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:- לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - בתבנית של הגדרות מכונה גלובלית:
INSTANCE_TEMPLATE_ID
- לתבנית של הגדרות מכונה אזורית:
לדוגמה:
gcloud compute instances create example-instance \
--source-instance-template 1234567890
המשך
Java
Node.js
Python
REST
כדי ליצור מכונה וירטואלית מתבנית של הגדרות מכונה אזורית או גלובלית, צריך ליצור בקשה רגילה ליצירת מכונה, אבל לכלול את פרמטר השאילתה sourceInstanceTemplate ואחריו נתיב מלא לתבנית של הגדרות מכונה.
POST https://compute.googleapis.com/compute/v1/projects/ PROJECT_ID/zones/ZONE/ instances?sourceInstanceTemplate=INSTANCE_TEMPLATE_URL
בגוף הבקשה, מציינים name של המכונה הווירטואלית:
{ "name": "example-instance" }
לדוגמה, הקטע הבא כולל נתיב מלא לתבנית: https://compute.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/1234567890.
POST https://compute.googleapis.com/ compute/v1/projects/myproject/zones/us-central1-a/instances?sourceInstanceTemplate= https://compute.googleapis.com/compute/v1/projects/myproject/global/ instanceTemplates/1234567890
{ "name": "example-instance" }
יצירת מכונה וירטואלית מתבנית של הגדרות מכונה עם שינויים
כשמשתמשים בתבנית של הגדרות מכונה כדי להפעיל מכונה וירטואלית, פעולת ברירת המחדל היא ליצור מכונה וירטואלית בדיוק כמו שמתואר בתבנית של הגדרות המכונה, למעט שם המכונה והתחום (zone).
אם אתם רוצים ליצור מכונה בעיקר על סמך תבנית של הגדרות מכונה, אבל עם כמה שינויים, אתם יכולים להשתמש בהתנהגות של החלפה. כדי להשתמש בהתנהגות של שינוי ברירת המחדל, מעבירים מאפיינים לשינוי ברירת המחדל של תבנית המכונה הקיימת כשיוצרים את המכונה.
המסוף
נכנסים לדף Create an instance במסוף Cloud de Confiance .
בתפריט Create VM from ..., בוחרים באפשרות Instance templates.
בחלון Create VM from template (יצירת מכונה וירטואלית מתבנית) שמופיע, בוחרים תבנית ולוחצים על Customize (התאמה אישית).
אופציונלי: מציינים אפשרויות הגדרה אחרות. מידע נוסף מופיע במאמר אפשרויות הגדרה במהלך יצירת מכונה.
כדי ליצור את המכונה ולהפעיל אותה, לוחצים על Create.
gcloud
באמצעות ה-CLI של gcloud, שולחים בקשה ליצירת מכונה עם הדגל --source-instance-template ומחליפים כל מאפיין שרוצים בדגל gcloud המתאים. כדי לראות רשימה של הדגלים הרלוונטיים, אפשר לעיין בחומר העזר בנושא gcloud.
לדוגמה, כדי לשנות את סוג המכונה, המטא-נתונים, מערכת ההפעלה, דיסק האתחול של Persistent Disk ודיסק משני של תבנית של הגדרות מכונה, צריך להשתמש בדגלים הבאים:
gcloud compute instances create example-instance \
--source-instance-template 1234567890 --machine-type e2-standard-2 \
--image-family debian-9 --image-project debian-cloud \
--metadata bread=butter --disk=boot=no,name=my-override-disk
המשך
Java
Node.js
Python
REST
ב-API, משתמשים בפרמטר השאילתה sourceInstanceTemplate ומספקים את כל השדות שרוצים לשנות בגוף הבקשה כשיוצרים בקשה רגילה ליצירת מופע.
התנהגות הביטול ב-API תואמת לכללי מיזוג התיקונים ב-JSON, שמתוארים ב-RFC 7396.
פרטים נוספים:
- אם קובעים ידנית שדה בסיסי, השדה הבסיסי התואם בתבנית של הגדרות מכונה יוחלף בערך של השדה הבסיסי בבקשה. השדות הבסיסיים כוללים את
machineType,sourceImage,nameוכן הלאה. - אם מחליפים שדה חוזר, כל הערכים החוזרים של המאפיין הזה יוחלפו בערכים התואמים שסופקו בבקשה.
שדות חוזרים הם בדרך כלל מאפיינים מסוג
list. לדוגמה,disksו-networkInterfacesהם שדות חוזרים. - אם משנים את
nested object, האובייקט בתבנית של מופע ימוזג עם מפרט האובייקט התואם בבקשה. שימו לב שאם אובייקט מוטמע נמצא בשדה חוזר, המערכת מתייחסת לשדה הזה בהתאם לכללים של שדות חוזרים. התוויות הן יוצאות דופן, והן נחשבות לשדה חוזר גם אם הסוג שלהן הואobject.
לדוגמה, נניח שיש לכם תבנית של הגדרות מכונה עם שני דיסקים שאינם דיסקי אתחול, אבל אתם רוצים לשנות את אחד הדיסקים. עליכם לספק את כל המפרטdisks בבקשה, כולל כל הדיסקים שאתם רוצים לשמור.
כתובת ה-URL של הבקשה הזו:
POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances? sourceInstanceTemplate=https://compute.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/1234567890
גוף הבקשה:
{
"disks": [
{
# Since you are overriding the repeated disk property, you must
# specify a boot disk in the request, even if it is already
# specified in the instance template
"autoDelete": true,
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-8"
},
"mode": "READ_WRITE",
"type": "PERSISTENT"
},
{
# New disk you want to use
"autoDelete": false,
"boot": false,
"mode": "READ_WRITE",
"source": "zones/us-central1-f/disks/my-override-disk",
"type": "PERSISTENT"
},
{
# Assume this disk is already specified in instance template, but
# you must specify it again since you are overriding the disks
# property
"autoDelete": false,
"boot": false,
"mode": "READ_WRITE",
"source": "zones/us-central1-f/disks/my-other-disk-to-keep",
"type": "PERSISTENT"
}
],
"machineType": "zones/us-central1-f/machineTypes/e2-standard-2",
"name": "example-instance"
}
המאמרים הבאים
- קוראים את התיעוד בנושא מופעים זמניים שניתנים להפסקה של מכונות וירטואליות.
- מידע נוסף על סקריפטים של כיבוי
- אפשר לעיין בתמחור של מופעים זמניים שניתנים להפסקה.
- מתחברים למכונה.