עדכון ה-tenancy של ה-VM

בדף הזה מוסבר איך לעדכן את ה-tenancy של מכונה וירטואלית על ידי שינוי התוויות של קשרי הגומלין של הצומת של המכונה הווירטואלית.

כברירת מחדל, Compute Engine פורס מכונות וירטואליות במארחים עם דיירים רבים. במארחים עם כמה דיירים, המכונות הווירטואליות בדרך כלל חולקות את משאבי המארח עם מכונות וירטואליות מפרויקטים ומלקוחות אחרים. כשמעבירים מכונה וירטואלית לצומת לדייר יחיד (sole-tenant), לפרויקט יש גישה בלעדית ושליטה מלאה בחומרה של הצומת לדייר יחיד. אתם הדיירים היחידים בצומת הזה, ולכן עומסי העבודה שלכם מבודדים מעומסי העבודה של פרויקטים אחרים ומהמכונות הווירטואליות שלהם.

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

  • ממארח עם כמה דיירים לקבוצת שרתים לדייר יחיד או לשרת לדייר יחיד
  • משרת או מקבוצת שרתים לדייר יחיד למארח מרובה דיירים
  • משרת לדייר יחיד (sole-tenant) אחד לשרת אחר לדייר יחיד או לקבוצת שרתים
  • מקבוצת צמתים לדייר יחיד לקבוצת צמתים אחרת לדייר יחיד או לצומת

העברה זמנית של עומסי עבודה לדיירות יחידה

בגלל דרישות משתנות של עומסי העבודה, כמו צורך תקופתי בבידוד נוסף כדי לבדוק את הביצועים, או שינויים בתקנות התאימות, יכול להיות שתצטרכו להעביר באופן זמני עומסי עבודה ספציפיים לשרתים לדייר יחיד (sole-tenant). לאחר מכן, כשכבר לא תצטרכו דיירות יחידה, תוכלו לפרוס מחדש את המכונות הווירטואליות למארח עם דיירות משותפת. כשמשנים את הדיירות של מכונה וירטואלית, ‏ Compute Engine שומרת את ההגדרות של המכונה הווירטואלית.

איזון מחדש של עומסי עבודה בשרתים לדייר יחיד

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

מגבלות

  • כשמעבירים מכונה וירטואלית שכבר פועלת בשרת לדייר יחיד (sole-tenant), יכול להיות שהמכונה הווירטואלית תופעל מחדש בשרת אחר. אם הדיירות היחידה של ה-VM צוינה לפי שם קבוצת הצמתים או באמצעות node-group-name תווית ברירת המחדל של השיוך, אפשר להפעיל מחדש את ה-VM בכל צומת בקבוצת הצמתים. אם הדיירות הבלעדית של המכונה הווירטואלית מוגדרת באמצעות תוויות מותאמות אישית של קירבה או אנטי-קירבה, יכול להיות שהמכונה הווירטואלית תופעל מחדש בכל צומת של כל קבוצת צמתים באזור.

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

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

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

    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 .

העברת VM לדייר יחיד

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

gcloud

  1. מפסיקים את ה-VM.

    gcloud compute instances stop VM_NAME
    

    מחליפים את VM_NAME בשם של המכונה הווירטואלית שרוצים לעצור.

  2. מעדכנים את הדיירות (tenancy) על ידי ציון קבוצת הצמתים שאליה רוצים להעביר את ה-VM.

    gcloud compute instances set-scheduling VM_NAME \
        --node-group=NODE_GROUP_NAME
    

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

    • VM_NAME שם המכונה הווירטואלית שרוצים להעביר לקבוצת צמתים ספציפית

    • ‫NODE_GROUP_NAME שם קבוצת הצמתים שאליה רוצים להעביר את המכונה הווירטואלית

    לחלופין, אפשר להעביר מכונה וירטואלית לשרת לדייר יחיד (sole-tenant) באמצעות שם השרת או באמצעות תווית שיוך. מידע נוסף זמין במאמר בנושא gcloud compute instances set-scheduling הפקודה.

  3. מפעילים את ה-VM.

    gcloud compute instances start VM_NAME
    

    מחליפים את VM_NAME בשם של המכונה הווירטואלית שרוצים להפעיל בקבוצת הצמתים שצוינה קודם בתוכן של קובץ תווית השיוך.

REST

  1. מפסיקים את ה-VM. מידע נוסף על הפקודה הזו זמין במאמר בנושא instances.stop.

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

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

    • ‫PROJECT_ID: מזהה הפרויקט שמכיל את המכונה הווירטואלית שרוצים לעצור

    • אזור ZONE שמכיל את הפרויקט

    • ‫VM_NAME שם המכונה הווירטואלית שרוצים לעצור

  2. כדי לעדכן את הדיירות, מציינים את קבוצת הצמתים שאליה רוצים להעביר את מכונת ה-VM.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    
    {
      "nodeAffinities": [
        {
          "key": "compute.googleapis.com/node-group-name",
          "operator": "IN",
          "values": [
            "NODE_GROUP_NAME"
          ]
        }
      ]
    }
    

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

    • ‫PROJECT_ID מזהה הפרויקט שמכיל את המכונה הווירטואלית שרוצים להעביר

    • אזור ZONE שמכיל את הפרויקט

    • VM_NAME שם המכונה הווירטואלית שרוצים להעביר לקבוצת צמתים ספציפית

    • ‫NODE_GROUP_NAME שם קבוצת הצמתים שאליה רוצים להעביר את המכונה הווירטואלית

    אפשרות נוספת היא להעביר מכונה וירטואלית לשרת לדייר יחיד (sole-tenant) באמצעות השם של השרת או באמצעות תווית שיוך. מידע נוסף זמין במאמר בנושא השיטה instances.setScheduling.

  3. מפעילים את ה-VM. מידע נוסף על הפקודה הזו זמין במאמר instances.start.

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

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

    • ‫PROJECT_ID מזהה הפרויקט שמכיל את המכונה הווירטואלית שרוצים להפעיל

    • האזור ב-ZONE שבו נמצא הפרויקט

    • ‫VM_NAME שם המכונה הווירטואלית להפעלה

העברת מכונה וירטואלית מחוץ לשימוש בלעדי בדיירות

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

gcloud

  1. מפסיקים את ה-VM.

    gcloud compute instances stop VM_NAME
    

    מחליפים את VM_NAME בשם המכונה הווירטואלית שרוצים להפסיק.

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

    gcloud compute instances set-scheduling VM_NAME --clear-node-affinities
    

    מחליפים את VM_NAME בשם של המכונה הווירטואלית שרוצים להסיר ממנה את ההעדפות של הצמתים.

  3. מפעילים את המכונה הווירטואלית במארח עם כמה דיירים.

    gcloud compute instances start VM_NAME
    

    מחליפים את VM_NAME בשם של המכונה הווירטואלית שממנה הסרתם קודם את שיוכי הצמתים.

REST

  1. מפסיקים את ה-VM. למידע נוסף על הפקודה הזו, ראו instances.stop.

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

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

    • ‫PROJECT_ID: מזהה הפרויקט שמכיל את המכונה הווירטואלית שרוצים לעצור

    • האזור ב-ZONE שבו נמצא הפרויקט

    • ‫VM_NAME שם המכונה הווירטואלית שרוצים לעצור

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

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    
    {
      "nodeAffinities": []
    }
    

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

    • ‫PROJECT_ID מזהה הפרויקט שמכיל את המכונה הווירטואלית שרוצים להעביר

    • האזור ב-ZONE שבו נמצא הפרויקט

    • VM_NAME שם המכונה הווירטואלית שממנה רוצים לנקות את ההעדפות של הצמתים

  3. מפעילים את המכונה הווירטואלית במארח עם כמה דיירים. למידע נוסף על הפקודה הזו, ראו instances.start.

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

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

    • ‫PROJECT_ID מזהה הפרויקט שמכיל את המכונה הווירטואלית שרוצים להפעיל

    • האזור ב-ZONE שבו נמצא הפרויקט

    • ‫VM_NAME שם המכונה הווירטואלית להפעלה

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