העברת מכונה וירטואלית בין רשתות

בדף הזה מוסבר איך להעביר מכונה וירטואלית מרשת אחת לרשת אחרת. במקרה של מכונה וירטואלית שמחוברת ליותר מרשת אחת באמצעות כמה ממשקי רשת, התהליך הזה מעדכן אחד מהממשקים ומשאיר את השאר במקומם.

יש תמיכה בהעברות הבאות:

  • מרשת מדור קודם לרשת VPC באותו פרויקט
  • מרשת VPC אחת לרשת VPC אחרת באותו פרויקט
  • מרשת משנה אחת של רשת VPC לרשת משנה אחרת של אותה רשת
  • מרשת של פרויקט שירות לרשת משותפת של פרויקט מארח של VPC משותף

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

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

  • קוראים את התיעוד בנושא ענן וירטואלי פרטי (VPC).
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

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

    המסוף

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

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

דרישות

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

  • המכונה הווירטואלית משתמשת רק בכתובות IPv4.
  • צריך להפסיק את פעולת ה-VM. כדי לוודא שמערכת ההפעלה האורחת במכונה הווירטואלית יכולה להיסגר בצורה תקינה לפני שהפעולה של העצירה מסתיימת, אפשר להפעיל את האפשרות 'כיבוי מבוקר' במכונה הווירטואלית.
  • המכונה הווירטואלית לא יכולה להיות חלק מקבוצת מכונות או מקבוצת נקודות קצה ברשת (NEG). התנאים הבאים חלים:
    • אם המכונה הווירטואלית היא חלק מקבוצת מופעים לא מנוהלת או מ-NEG, צריך להסיר את המכונה הווירטואלית מהקבוצה לפני ההעברה.
    • אם המכונה הווירטואלית היא חלק מקבוצת מופעי מכונה מנוהלים (MIG), אי אפשר להעביר אותה. במקום זאת, יוצרים קבוצת MIG חדשה באמצעות תבנית של הגדרות מכונה עם מאפיינים שונים של מכונות וירטואליות.
    • אפשר להעביר מופעים במאגרי יעד בלי להסיר אותם קודם. מאגר היעדים מתרחב כדי לכלול את שתי הרשתות.

מגבלות

  • אי אפשר להעביר ממשק של מכונה וירטואלית לרשת מדור קודם.
  • כתובת ה-MAC שהוקצתה לממשק הרשת תשתנה במהלך המיגרציה. זה יכול להשפיע על שירותים שמקושרים באופן הדוק לכתובות MAC, כמו הסכם רישיון של צד שלישי.
  • אם מעבירים את המכונה הווירטואלית לרשת או לרשת משנה עם טווח IP שונה, כתובת ה-IP הפנימית של המכונה חייבת להשתנות. אם אתם מעבירים לתת-רשת עם אותו טווח כתובות IP, אתם יכולים לשמור את כתובת ה-IP הישנה, כל עוד היא לא נמצאת כבר בשימוש ביעד. כדי לעשות זאת, צריך לציין אותה במהלך ההעברה.
  • אם לתת-הרשת של היעד אין את אותו טווח כתובות IP כמו למקור, כתובת ה-IP של הממשק משתנה בהתאם לטווח של תת-הרשת החדשה.
  • אתם יכולים לשמור את כתובת ה-IP החיצונית הקיימת של המכונה הווירטואלית במיקום החדש. כדי לעשות את זה, צריכה להיות לכם הרשאה compute.subnetworks.useExternalIp ברשת היעד, ואסור שכתובות IP חיצוניות ברשת היעד יהיו מושבתות על ידי האילוץ constraints/compute.vmExternalIpAccess.

העברת VM

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

‫Google ממליצה ליצור את כל כללי חומת האש, המסלולים, מאזני העומסים ומשאבי תשתית רשת אחרים שנדרשים ברשת החדשה לפני העברת המכונות הווירטואליות. הפעולה הזו יכולה לקצר את הזמן שבו המכונות הווירטואליות לא מקוונות.

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

המסוף

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

    כניסה לדף VM instances

  2. לוחצים על שם מכונת ה-VM כדי לפתוח את דף הפרטים.

  3. אם המכונה הווירטואלית פועלת, לוחצים על Stop כדי לעצור אותה. אם אין אפשרות עצירה, לוחצים על עוד פעולות > עצירה.

  4. אחרי שהמכונה הווירטואלית מפסיקה לפעול, לוחצים על עריכה .

  5. בקטע Network interfaces, לוחצים על הממשק שרוצים להעביר.

  6. בשדה Network של הממשק, בוחרים את הרשת החדשה לממשק.

  7. בשדה Subnetwork של הממשק, בוחרים את רשת המשנה החדשה לממשק.

  8. בשדה כתובת IP פנימית, מציינים אוטומטית אם רוצים שהמערכת תקצה כתובת IP מטווח תת-הרשת, או בהתאמה אישית אם רוצים לציין כתובת IP לא בשימוש בעצמכם.

  9. לוחצים על Done כדי לסגור את חלונית העריכה של ממשק הרשת.

  10. לוחצים על Save.

  11. אחרי שהמכונה הווירטואלית מסיימת את השמירה, לוחצים על הפעלה .

  12. אם מופיעה תיבת דו-שיח לאישור, לוחצים על התחלה.

gcloud

  1. הפסקת ה-VM

    gcloud compute instances stop INSTANCE_NAME \
        --zone=ZONE_NAME

    איפה

    • INSTANCE_NAME הוא השם של מכונת ה-VM.
    • ZONE_NAME הוא שם האזור שמכיל את המופע.
  2. העברת ה-VM

    gcloud compute instances network-interfaces update INSTANCE_NAME \
        --zone=ZONE_NAME \
        --network-interface=NIC \
        --network=NETWORK_NAME \
        --subnetwork=SUBNET_NAME

    איפה

    • INSTANCE_NAME הוא השם של מכונת ה-VM.
    • ZONE_NAME הוא שם האזור שמכיל את המופע.
    • NIC הוא שם הממשק שאתם מעדכנים. במכונת VM עם ממשק יחיד, כתובת ה-IP של הממשק היא NIC.nic0
    • NETWORK_NAME הוא שם רשת היעד. אם מעבירים את המכונה הווירטואלית מרשת של פרויקט שירות לרשת של פרויקט המארח, עליך להשתמש בשם מוגדר במלואו עבור רשת היעד: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
    • SUBNET_NAME הוא שם רשת המשנה של היעד. רשת המשנה הזו צריכה להיות באותו אזור כמו המכונה הווירטואלית. אם מעבירים את מכונת ה-VM מרשת של פרויקט שירות לרשת של פרויקט המארח, צריך להשתמש בשם מוגדר במלואו של רשת המשנה: projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
  3. הפעלת ה-VM

    יכול להיות שההעברה תימשך כמה דקות, לכן כדאי לחכות לפני שמנסים להפעיל את מכונת ה-VM במיקום החדש.

    gcloud compute instances start INSTANCE_NAME \
        --zone=ZONE_NAME

    איפה

    • INSTANCE_NAME הוא השם של מכונת ה-VM.
    • ZONE_NAME הוא שם האזור שמכיל את המופע.

REST

  1. הפסקת ה-VM

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/stop
    

    איפה

    • PROJECT_ID הוא מזהה הפרויקט.
    • INSTANCE_NAME הוא השם של מכונת ה-VM.
    • ZONE_NAME הוא שם האזור שמכיל את המופע.
  2. צפייה בפרטים של המופע.

    GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME
    

    איפה

    • PROJECT_ID הוא מזהה הפרויקט.
    • ZONE_NAME הוא שם האזור שמכיל את המופע.
    • INSTANCE_NAME הוא השם של מכונת ה-VM.
  3. מחפשים את טביעת האצבע של הממשק.

    כדי לעדכן את ממשק הרשת, צריך את טביעת האצבע.

    בודקים את הפלט של הפקודה ומחפשים את התוכן של השדה networkInterfaces. מוצאים את הפריט עם שם הממשק שרוצים לעדכן (במכונה וירטואלית עם ממשק יחיד, השם הוא nic0). מעתיקים את המחרוזת בשדה fingerprint בפריט הזה לשימוש בשלב הבא.

  4. העברת ה-VM

    PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/updateNetworkInterface?networkInterface=NIC
    {
      "network": NETWORK_NAME,
      "subnetwork": SUBNET_NAME,
      "networkIP": IP_ADDRESS,
      "name": NIC,
      "fingerprint": FINGERPRINT
    }
    • PROJECT_ID הוא מזהה הפרויקט.
    • ZONE_NAME הוא שם האזור שמכיל את המופע.
    • INSTANCE_NAME הוא השם של מכונת ה-VM.
    • NIC הוא שם הממשק שאתם מעדכנים. במכונה וירטואלית עם ממשק יחיד, הערך של NIC הוא nic0.
    • NETWORK_NAME הוא שם רשת היעד. אם מעבירים את המכונה הווירטואלית מרשת של פרויקט שירות לרשת של פרויקט המארח, עליך להשתמש בשם מוגדר במלואו עבור רשת היעד: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
    • SUBNET_NAME הוא שם רשת המשנה של היעד. רשת המשנה הזו צריכה להיות באותו אזור כמו המכונה הווירטואלית. אם מעבירים את מכונת ה-VM מרשת של פרויקט שירות לרשת של פרויקט המארח, צריך להשתמש בשם מוגדר במלואו של רשת המשנה: projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
    • IP_ADDRESS היא כתובת ה-IP הפנימית שרוצים להקצות למופע במיקום החדש. אם לא מציינים את השדה הזה, הממשק מקבל מספר באופן אוטומטי.
    • FINGERPRINT היא טביעת האצבע שקיבלתם בשלב הקודם.
  5. הפעלת ה-VM

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/start
    

    איפה

    • PROJECT_ID הוא מזהה הפרויקט.
    • INSTANCE_NAME הוא השם של מכונת ה-VM.
    • ZONE_NAME הוא שם האזור שמכיל את המופע.

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