העתקת מכונות וירטואליות בין פרויקטים

במאמר הזה מוסבר איך להעתיק את המכונה הווירטואלית לפרויקט אחר.

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

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

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

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

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

כדי להעתיק מכונה וירטואלית בין פרויקטים, נדרשות ההרשאות הבאות:

  • compute.instances.create בפרויקט
  • כדי להשתמש באימג' בהתאמה אישית ליצירת המכונה הווירטואלית (VM)‏: ‫compute.images.useReadOnly בקובץ אימג'
  • כדי להשתמש ב-snapshot ליצירת המכונה הווירטואלית: ‫compute.snapshots.useReadOnly בקובץ snapshot
  • כדי להשתמש בתבנית של הגדרות מכונה ליצירת המכונה הווירטואלית: compute.instanceTemplates.useReadOnly בתבנית של הגדרות המכונה
  • כדי לציין רשת משנה למכונה הווירטואלית: ‫compute.subnetworks.use בפרויקט או ברשת המשנה שנבחרה
  • כדי לציין כתובת IP סטטית למכונה הווירטואלית: ‫compute.addresses.use בפרויקט
  • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת VPC: ‫compute.subnetworks.useExternalIp בפרויקט או ברשת המשנה שנבחרה
  • כדי להקצות רשת מדור קודם למכונה הווירטואלית: ‫compute.networks.use בפרויקט
  • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת מדור קודם: ‫compute.networks.useExternalIp בפרויקט
  • כדי להגדיר מטא-נתונים של המכונה הווירטואלית: ‫compute.instances.setMetadata בפרויקט
  • כדי להגדיר תגים למכונה הווירטואלית: ‫compute.instances.setTags במכונה הווירטואלית
  • כדי להגדיר תוויות למכונה הווירטואלית: ‫compute.instances.setLabels במכונה הווירטואלית
  • כדי להגדיר חשבון שירות לשימוש של המכונה הווירטואלית: ‫compute.instances.setServiceAccount במכונה הווירטואלית
  • כדי ליצור דיסק חדש למכונה הווירטואלית: ‫compute.disks.create בפרויקט
  • כדי לצרף דיסק קיים במצב קריאה-בלבד או במצב קריאה וכתיבה: ‫compute.disks.use בדיסק
  • כדי לצרף דיסק קיים במצב קריאה-בלבד: ‫compute.disks.useReadOnly בדיסק

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

העתקת מכונה וירטואלית לפרויקט אחר

  1. בפרויקט המקור, יוצרים snapshot של דיסק האתחול של מכונת ה-VM באמצעות אחת מהפקודות הבאות:

    דיסק אתחול אזורי

    אם ל-VM יש דיסק אתחול אזורי, יוצרים snapshot באמצעות הפקודה הבאה:

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk SOURCE_DISK \
        --snapshot-type SNAPSHOT_TYPE \
        --source-disk-zone SOURCE_DISK_ZONE
    

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

    • SNAPSHOT_NAME: שם לקובץ ה-snapshot.
    • SOURCE_DISK: השם של נפח האחסון המתמיד (persistent disk) האזורי שממנו רוצים ליצור snapshot.
    • SNAPSHOT_TYPE: סוג ה-snapshot, ‏ STANDARD או ARCHIVE. אם לא מציינים סוג תמונת מצב, נוצרת תמונת מצב STANDARD. כדי לשמור נתונים בצורה חסכונית יותר, בוחרים באפשרות 'ארכיון'.
    • SOURCE_DISK_ZONE: התחום של נפח הדיסק לאחסון מתמיד (persistent disk) שרוצים ליצור ממנו snapshot.

    דיסק אתחול אזורי

    אם למכונה הווירטואלית יש דיסק אתחול אזורי, יוצרים קובץ snapshot באמצעות הפקודה הבאה:

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk SOURCE_DISK \
        --source-disk-region=SOURCE_DISK_REGION \
        --snapshot-type=SNAPSHOT_TYPE
    

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

    • SNAPSHOT_NAME: שם לקובץ ה-snapshot.
    • SOURCE_DISK: השם של אמצעי האחסון האזורי מסוג Persistent Disk שממנו רוצים ליצור snapshot.
    • SOURCE_DISK_REGION: האזור של נפח האחסון המתמיד (persistent disk) האזורי שממנו רוצים ליצור קובץ snapshot.
    • SNAPSHOT_TYPE: סוג ה-snapshot, ‏ STANDARD או ARCHIVE. אם לא מציינים סוג תמונת מצב, נוצרת תמונת מצב STANDARD.

  2. יוצרים אימג' בהתאמה אישית מהתמונה באמצעות הפקודה הבאה:

    gcloud compute images create IMAGE_NAME \
        --source-snapshot=SOURCE_SNAPSHOT \
        [--storage-location=LOCATION]
    

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

    • IMAGE_NAME: שם לתמונה החדשה
    • SOURCE_SNAPSHOT: קובץ ה-snapshot שממנו רוצים ליצור את התמונה
    • LOCATION: אופציונלי: דגל שמאפשר לכם לציין את האזור או את מספר האזורים שבהם התמונה מאוחסנת. לדוגמה, אפשר לציין us כדי לאחסן את התמונה במספר אזורים us, או לציין us-central1 כדי לאחסן אותה באזור us-central1. אם לא בוחרים אזור,‏ Compute Engine מאחסן את התמונה באזור הרב-אזורי הקרוב ביותר למיקום המקור של התמונה.
  3. אופציונלי: משתפים את האימג' בהתאמה אישית עם משתמשים שיוצרים מכונות וירטואליות בפרויקט היעד. מידע נוסף על שיתוף תמונות בהתאמה אישית זמין במאמר בנושא שיתוף תמונות בהתאמה אישית בארגון.

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

    gcloud compute instances create VM_NAME \
        --image-project IMAGE_PROJECT \
        IMAGE_FLAG \
        --subnet SUBNET \
        --zone ZONE
    

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

    • VM_NAME: השם של ה-VM
    • IMAGE_PROJECT: המזהה של Google Cloud הפרויקט שמכיל את התמונה
    • IMAGE_FLAG: מציינים אחת מהאפשרויות הבאות:
      • משתמשים בדגל --image IMAGE_NAME כדי לציין תמונה בהתאמה אישית.

        לדוגמה, --image my-debian-image-v2.

      • אם יצרתם את התמונות המותאמות אישית כחלק ממשפחת תמונות מותאמות אישית, צריך להשתמש בדגל --image-family IMAGE_FAMILY_NAME כדי לציין את משפחת התמונות המותאמות אישית.

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

    • SUBNET: אם רשת המשנה והמכונה נמצאות באותו פרויקט, מחליפים את SUBNET בשם של רשת משנה שנמצאת באותו אזור כמו המכונה.

      כדי לציין רשת משנה ברשת VPC משותפת, מחליפים את הערך בשדה SUBNET במחרוזת מהצורה:

              projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
             

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

      • HOST_PROJECT_ID: מזהה הפרויקט של הפרויקט המארח ב-VPC משותף
      • REGION: האזור של תת-הרשת
      • SUBNET_NAME: השם של תת-הרשת

      האזור של תת-הרשת ברשת VPC משותפת צריך להיות זהה לאזור שבו נמצאת המכונה.

    • ZONE: האזור של המכונה הווירטואלית

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

  • התאמה אישית של רשת ה-VPC של פרויקט היעד.