יצירת מכונה מקובץ אימג' משותף

במאמר הזה נסביר איך ליצור מכונה של Compute Engine מקובץ image בהתאמה אישית שמשותף מפרויקט אחר.

מופע מכיל bootloader, מערכת קבצים של אתחול וקובץ אימג' של מערכת ההפעלה. אתם יכולים ליצור תמונות בהתאמה אישית מדיסקים, תמונות, תמונות מצב או תמונות שמאוחסנות ב-Cloud Storage, ולהשתמש בתמונות האלה כדי ליצור מכונות וירטואליות. כברירת מחדל, תמונה מותאמת אישית שייכת רק לפרויקט שבו היא נוצרה. אם משתמש אחר שיתף איתכם תמונה, תוכלו להשתמש בתמונה כדי ליצור מופע.

לפני שמתחילים

  • כשיוצרים מכונות מתוך תמונות באמצעות Google Cloud CLI או Compute Engine API, יש מגבלה של 20 מכונות בשנייה. אם אתם צריכים ליצור מספר גדול יותר של מופעים בשנייה, אתם יכולים לבקש התאמה של המכסה למשאב Images.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud

    gcloud

    1. התקינו את ה-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 .

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות ליצירת מכונה מתמונה משותפת, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute ‏ (v1) (roles/compute.instanceAdmin.v1) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות ליצירת מכונה מתמונה משותפת. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי ליצור מכונה מתמונה משותפת, צריך את ההרשאות הבאות:

  • compute.instances.create בפרויקט
  • כדי להשתמש באימג' משותף ליצירת המופע: compute.images.useReadOnly באימג'

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

יצירת מכונה מקובץ אימג' משותף

כדי ליצור מופע מתמונה משותפת:

המסוף

  1. במסוףGoogle Cloud , נכנסים לדף Create an instance.

    כניסה לדף Create an instance

    אם מוצגת בקשה לעשות זאת, בוחרים פרויקט ולוחצים על המשך.

    הדף Create an instance מופיע ובו החלונית Machine configuration.

  2. בחלונית Machine configuration:

    1. בשדה Name, מציינים שם למכונה. מידע נוסף זמין במאמר מוסכמות למתן שמות למשאבים.
    2. אופציונלי: בשדה Zone, בוחרים אזור למכונה הזו.

      ברירת המחדל היא Any (כל). אם לא תשנו את ברירת המחדל הזו, Google תבחר בשבילכם אזור באופן אוטומטי על סמך סוג המכונה והזמינות שלה.

    3. בוחרים את משפחת המכונות למופע. בGoogle Cloud מסוף מוצגת סדרת המכונות שזמינה למשפחת המכונות שבחרתם. אלה האפשרויות הזמינות של משפחות מכונות:

      • מטרה כללית
      • אופטימיזציה של מחשוב
      • מותאם לצריכת זיכרון גבוהה
      • אופטימיזציה של האחסון
      • אופטימיזציה לרשת
      • GPUs
      • TPUs

    4. בעמודה סדרה, בוחרים את סדרת המכונות של המופע.

      אם בחרתם באפשרות GPUs (מעבדי GPU) כסוג המכונה בשלב הקודם, בוחרים את סוג ה-GPU הרצוי. סדרת המכונות נבחרת אוטומטית לפי סוג ה-GPU שנבחר.

    5. בקטע Machine type, בוחרים את סוג המכונה עבור המופע.

  3. בתפריט הניווט, לוחצים על מערכת הפעלה ואחסון. בחלונית Operating system and storage שמופיעה, מגדירים את דיסק האתחול באופן הבא:

    1. לוחצים על Change. מופיעה החלונית דיסק אתחול עם הכרטיסייה Public images.
    2. לוחצים על תמונות בהתאמה אישית. מופיעה הכרטיסייה תמונות מותאמות אישית.
    3. כדי לבחור את פרויקט התמונה, לוחצים על שינוי ואז בוחרים את הפרויקט שמכיל את התמונה.
    4. ברשימה Image, בוחרים את התמונה שרוצים לייבא.
    5. ברשימה Boot disk type בוחרים את סוג דיסק האתחול.
    6. בשדה Size (GB) מציינים את גודל דיסק האתחול.
    7. אופציונלי: לדיסקים של מערכת ההפעלה מסוג Hyperdisk Balanced, מציינים ערכים בשדות Provisioned IOPS ו-Provisioned throughput.
    8. אופציונלי: כדי לראות אפשרויות הגדרה מתקדמות, מרחיבים את הקטע הצגת הגדרות מתקדמות.
    9. כדי לאשר את האפשרויות של דיסק האתחול ולחזור לחלונית מערכת ההפעלה והאחסון, לוחצים על בחירה.
  4. בתפריט הניווט, לוחצים על Networking (רשת). בחלונית Networking שמופיעה, מבצעים את הפעולות הבאות:

    1. עוברים לקטע Firewall.
    2. כדי לאפשר תעבורת HTTP או HTTPS למופע, בוחרים באפשרות Allow HTTP traffic או Allow HTTPS traffic.

      Compute Engine מוסיף תג רשת למכונה ויוצר את כלל חומת האש המתאים לכניסת תנועה, שמאפשר את כל התנועה הנכנסת ב-tcp:80 (HTTP) או ב-tcp:443 (HTTPS). תג הרשת משייך את כלל חומת האש למופע. מידע נוסף זמין בסקירה הכללית של הכללים של חומת האש במאמרי העזרה בנושא Cloud Next Generation Firewall.

  5. אופציונלי: מציינים אפשרויות הגדרה אחרות. מידע נוסף מופיע במאמר אפשרויות הגדרה במהלך יצירת מכונה.

  6. כדי ליצור את המכונה ולהפעיל אותה, לוחצים על Create.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. יוצרים מופע באמצעות הפקודה gcloud compute instances create command, ומשתמשים בדגלים --image ו---image-project כדי לציין את שם התמונה ואת הפרויקט שבו התמונה נמצאת:

    gcloud compute instances create INSTANCE_NAME \
    --image=IMAGE \
    --image-project=IMAGE_PROJECT
    

    מחליפים את מה שכתוב בשדות הבאים:

    • INSTANCE_NAME: השם של המכונה החדשה
    • IMAGE: השם של התמונה
    • IMAGE_PROJECT: הפרויקט שאליו שייך התמונה

    אם הפקודה מצליחה, gcloud מגיב עם המאפיינים של המופע החדש, כמו בדוגמה הבאה:

    Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance].
    NAME                 ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    example-instance     us-central1-b  e2-standard-2               10.240.0.4   104.198.53.60  RUNNING
    

Terraform

התהליך ליצירת מכונה עם קובץ אימג' משותף ב-Terraform זהה לתהליך ליצירת מכונה עם קובץ אימג' שזמין לכולם.

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM Instances

  2. לוחצים על Create instance.
  3. מציינים את הפרמטרים הרצויים.
  4. בראש הדף או בתחתית הדף, לוחצים על Equivalent code ואז על הכרטיסייה Terraform כדי לראות את קוד Terraform.

REST

תהליך יצירת מכונה באמצעות קובץ אימג' משותף ב-API זהה לתהליך של יצירת מכונה באמצעות קובץ אימג' שזמין לכולם.

כדי ליצור את המכונה מקובץ אימג' משותף, משתמשים בשיטה instances.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
   "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
   "name":"VM_NAME",
   
   "disks":[
      {
         "initializeParams":{
            "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE"
         },
         "boot":true
      }
   ],
   
   
   "networkInterfaces":[
      {
         "network":"global/networks/NETWORK_NAME"
      }
   ],
   
  
   "shieldedInstanceConfig":{
      "enableSecureBoot":"ENABLE_SECURE_BOOT"
   }
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: המזהה של הפרויקט שבו רוצים ליצור את המכונה הווירטואלית
  • ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית
  • MACHINE_TYPE_ZONE: האזור שמכיל את סוג המכונה שרוצים להשתמש בו למכונה הווירטואלית החדשה
  • MACHINE_TYPE: סוג המכונה, מוגדר מראש או מותאם אישית, של המכונה הווירטואלית החדשה
  • VM_NAME: name של המכונה הווירטואלית החדשה
  • IMAGE_PROJECT: שם הפרויקט שמכיל את התמונה המשותפת
  • IMAGE: מציינים אחת מהאפשרויות הבאות:
    • IMAGE: שם התמונה המשותפת. לדוגמה: "sourceImage": "projects/finance-project-1234/global/images/finance-debian-image-v2".
    • IMAGE_FAMILY: אם התמונה המשותפת נוצרה כחלק ממשפחת תמונות בהתאמה אישית, צריך לציין את משפחת התמונות הזו.

      כך נוצרת מכונה וירטואלית מתמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש במשפחת התמונות המותאמות אישית. לדוגמה, אם מציינים "sourceImage": "projects/finance-project-1234/global/images/family/finance-debian-family",‏ Compute Engine יוצר מכונה וירטואלית מהגרסה האחרונה של תמונת מערכת ההפעלה במשפחת התמונות המותאמת אישית finance-debian-family.

  • NETWORK_NAME: רשת ה-VPC שבה רוצים להשתמש עבור מכונת ה-VM. אפשר לציין default כדי להשתמש ברשת ברירת המחדל.
  • ENABLE_SECURE_BOOT: אופציונלי: אם בחרתם תמונה שתומכת בתכונות של Shielded VM,‏ Compute Engine מפעיל כברירת מחדל את מודול הפלטפורמה הווירטואלית המהימנה (vTPM) ואת המעקב אחר השלמות. ב-Compute Engine, האפשרות Secure Boot לא מופעלת כברירת מחדל.

    אם מציינים true בשביל enableSecureBoot, ‏ Compute Engine יוצר מכונה וירטואלית עם כל שלושת התכונות של מכונה וירטואלית מוגנת. אחרי שמכונה וירטואלית מופעלת ב-Compute Engine, כדי לשנות את האפשרויות של מכונה וירטואלית מוגנת, צריך להפסיק את הפעילות של המכונה הווירטואלית.

המאמרים הבאים