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

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

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

יצירת תבנית של צומת לדייר יחיד

לפני שיוצרים קבוצת צמתים ומקצים מכונות וירטואליות של שרתים לדייר יחיד, צריך ליצור תבנית של צומת של שרת לדייר יחיד. תבנית צומת היא משאב אזורי שמגדיר את המאפיינים (כמו סוג הצומת, תוויות זיקה, כונני SSD מקומיים, מאיצים ו-CPU overcommit) של כל צומת בקבוצת צמתים.

כדי להגדיר וליצור תבנית צומת באמצעות מסוף Google Cloud , ה-CLI של Google Cloud או Compute Engine API בארכיטקטורת REST, קראו את המאמר יצירת תבנית צומת לדייר יחיד.

יצירת קבוצת שרתים לדייר יחיד (sole-tenant)

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

כדי להגדיר וליצור קבוצת צמתים באמצעות Google Cloud המסוף, Google Cloud CLI או Compute Engine API בארכיטקטורת REST, קראו את המאמר יצירת קבוצת צמתים לדייר יחיד.

הקצאת VM לדייר יחיד

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

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

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

המסוף

  1. נכנסים לדף Sole-tenant nodes במסוף Google Cloud .

    כניסה לדף Sole-tenant nodes

  2. לוחצים על Node groups.

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

  4. לוחצים על Create instance כדי להקצות מכונה וירטואלית בקבוצת הצמתים הזו, שמים לב לערכים שמוחלים באופן אוטומטי בשדות Name,‏ Region ו-Zone, ומשנים את הערכים האלה לפי הצורך.

  5. בוחרים Machine configuration על ידי ציון משפחת מכונות,‏ Series ו-סוג מכונה. בוחרים את ה-Series שתואמת ל-sole-tenant node type.

  6. משנים את ההגדרות של דיסק אתחול,‏ חומת אש והגדרות אחרות לפי הצורך.

  7. לוחצים על Sole Tenancy, בודקים את תוויות ה-affinity של הצומת שהוקצו באופן אוטומטי, ומשתמשים ב-Browse כדי לשנות אותן לפי הצורך.

  8. לוחצים על Management, ובקטע On host maintenance בוחרים אחת מהאפשרויות הבאות:

    • ‫VM Migration (מומלץ): המכונה הווירטואלית מועברת לצומת אחר בקבוצת הצמתים במהלך אירועי תחזוקה.

    • ‫Terminate: המכונה הווירטואלית נעצרת במהלך אירועי תחזוקה.

  9. בוחרים אחת מהאפשרויות הבאות להפעלה מחדש אוטומטית:

    • On (מומלץ): הפעלה מחדש של המכונות הווירטואליות באופן אוטומטי אם הן נעצרות בגלל אירועי תחזוקה.

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

  10. לוחצים על Create כדי לסיים את יצירת המכונה הווירטואלית לדייר יחיד.

gcloud

משתמשים בפקודה gcloud compute instances create כדי להקצות מכונה וירטואלית בקבוצת שרתים לדייר יחיד:

gcloud compute instances create VM_NAME \
  [--zone=ZONE \]
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --node-group=GROUP_NAME \
  --machine-type=MACHINE_TYPE \
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--local-ssd interface=SSD_INTERFACE \]
  [--restart-on-failure]

הדגל --restart-on-failure מציין אם מכונות וירטואליות של דייר יחיד מופעלות מחדש אחרי שהן נעצרות. ההתראה הזו מופעלת כברירת מחדל. כדי להשבית, אפשר ללחוץ על: --no-restart-on-failure.

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

  • ‫VM_NAME: השם של המכונה הווירטואלית החדשה עם דייר יחיד.

  • ‫ZONE: האזור שבו רוצים להקצות את המכונה הווירטואלית לדייר יחיד.

  • ‫IMAGE_FAMILY: משפחת קובצי האימג' של קובץ האימג' שבו משתמשים כדי ליצור את ה-VM.

  • ‫IMAGE_PROJECT: פרויקט התמונה של משפחת התמונות.

  • ‫GROUP_NAME: השם של קבוצת הצמתים שבה רוצים להקצות את המכונה הווירטואלית.

  • ‫MACHINE_TYPE: סוג המכונה של המכונה הווירטואלית עם דייר יחיד. משתמשים בפקודה gcloud compute machine-types list כדי לקבל רשימה של סוגי המכונות שזמינים לפרויקט.

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

    • ‫MIGRATE: VM Migration לצומת אחר בקבוצת הצמתים במהלך אירועי תחזוקה.

    • ‫TERMINATE: המכונה הווירטואלית נעצרה במהלך אירועי תחזוקה.

  • ‫GPU_TYPE: סוג ה-GPU. צריך להגדיר את אחד מסוגי המאיצים שצוינו כשתבנית הצומת נוצרה.

  • ‫GPU_COUNT: מספר יחידות ה-GPU מתוך המספר הכולל שצוין בתבנית הצומת, שצריך לצרף למכונה הווירטואלית הזו. ערך ברירת המחדל הוא 1.

  • ‫SSD_INTERFACE: סוג הממשק של ה-SSD המקומי. אפשר להגדיר את זה רק למכונות שנוצרו מתבנית של צומת עם תמיכה ב-SSD מקומי. אם מציינים את זה כשיוצרים את המכונה, והתבנית של הצומת לא תומכת ב-SSD מקומי, יצירת המכונה תיכשל. אם מנהלי ההתקנים של קובץ האימג' של דיסק האתחול עברו אופטימיזציה ל-NVMe, מגדירים את הערך nvme. אחרת, מגדירים את הערך scsi. צריך לציין את הדגל הזה ואת הערך המתאים פעם אחת לכל מחיצה של SSD מקומי.

REST

משתמשים ב-method‏ instances.insert כדי להקצות מכונה וירטואלית בקבוצת שרתים לדייר יחיד:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/VM_ZONE/instances
{ "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "scheduling": { "onHostMaintenance": MAINTENANCE_POLICY, "automaticRestart": RESTART_ON_FAILURE, "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] }

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

  • ‫PROJECT_ID: מזהה הפרויקט.

  • ‫VM_ZONE: האזור שבו מקצים את המכונה הווירטואלית (VM) לדייר יחיד.

  • ‫MACHINE_TYPE_ZONE: האזור של סוג המכונה.

  • ‫MACHINE_TYPE: סוג המכונה של המכונה הווירטואלית עם דייר יחיד. משתמשים ב-method‏ machineTypes.list כדי לקבל רשימה של סוגי המכונות שזמינים לפרויקט.

  • ‫VM_NAME: השם של המכונה הווירטואלית החדשה עם דייר יחיד.

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

    • ‫MIGRATE: VM Migration לצומת אחר בקבוצת הצמתים במהלך אירועי תחזוקה.

    • ‫TERMINATE: המכונה הווירטואלית נעצרה במהלך אירועי תחזוקה.

  • ‫RESTART_ON_FAILURE: מציין אם המכונות הווירטואליות של הדייר היחיד מופעלות מחדש אחרי שהן נעצרות. ברירת המחדל היא true.

  • ‫GROUP_NAME: השם של קבוצת הצמתים שבה רוצים להקצות את המכונה הווירטואלית.

  • ‫NETWORK: כתובת ה-URL של משאב הרשת של ה-VM הזה.

  • ‫REGION: האזור שבו נמצאת רשת המשנה של המכונה הווירטואלית הזו.

  • ‫SUBNETWORK: כתובת ה-URL של משאב רשת המשנה של ה-VM הזה.

  • ‫GPU_TYPE: סוג ה-GPU. צריך להגדיר את אחד מסוגי המאיצים שצוינו כשתבנית הצומת נוצרה.

  • ‫GPU_COUNT: מספר יחידות ה-GPU מתוך המספר הכולל שצוין בתבנית הצומת, שצריך לצרף למכונה הווירטואלית הזו. ערך ברירת המחדל הוא 1.

  • ‫IMAGE_PROJECT: פרויקט התמונות של משפחת התמונות.

  • ‫IMAGE_FAMILY: משפחת התמונות של התמונה שבה משתמשים כדי ליצור את המכונה הווירטואלית.

  • ‫LOCAL_SSD_ZONE: האזור של ה-SSD המקומי.

  • ‫SSD_INTERFACE: סוג הממשק של ה-SSD המקומי. אם מנהלי ההתקנים של קובץ האימג' של דיסק האתחול מותאמים ל-NVMe, מגדירים את הערך NVME. אחרת, מגדירים את הערך SCSI.

הקצאת קבוצה של מכונות וירטואליות לדייר יחיד

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

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

gcloud

  1. משתמשים בפקודה gcloud compute instance-templates create כדי ליצור תבנית של קבוצת מופעי מכונה מנוהלים, לקבוצה של מכונות וירטואליות שרוצים ליצור בקבוצת שרתים לדייר יחיד:

    gcloud compute instance-templates create INSTANCE_TEMPLATE \
      --machine-type=MACHINE_TYPE \
      --image-project=IMAGE_PROJECT \
      --image-family=IMAGE_FAMILY \
      --node-group=GROUP_NAME \
      [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
      [--local-ssd interface=SSD_INTERFACE]
    

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

    • ‫INSTANCE_TEMPLATE: השם של התבנית החדשה של הגדרות המכונה.

    • ‫MACHINE_TYPE: סוג המכונה של ה-VM לדייר יחיד. משתמשים בפקודה gcloud compute machine-types list כדי לקבל רשימה של סוגי המכונות שזמינים לפרויקט.

    • ‫IMAGE_PROJECT: פרויקט התמונה של משפחת התמונות.

    • ‫IMAGE_FAMILY: משפחת התמונות של התמונה שמשמשת ליצירת המכונה הווירטואלית.

    • ‫GROUP_NAME: השם של קבוצת הצמתים שבה רוצים להקצות את המכונה הווירטואלית. לחלופין, אם רוצים להשתמש בתבנית הזו של הגדרות המכונה כדי ליצור קבוצת MIG אזורית שקיימת ביותר מאזור אחד, משתמשים בדגל --node-affinity-file כדי לציין רשימה של ערכים לקבוצות הצמתים של קבוצת ה-MIG האזורית.

    • ‫GPU_TYPE: סוג ה-GPU. צריך להגדיר את אחד מסוגי המאיצים שצוינו כשתבנית הצומת נוצרה.

    • ‫GPU_COUNT: מספר יחידות ה-GPU מתוך המספר הכולל שצוין בתבנית הצומת, שצריך לצרף למכונה הווירטואלית הזו. ערך ברירת המחדל הוא 1.

    • ‫SSD_INTERFACE: סוג הממשק של ה-SSD המקומי. מגדירים את הערך nvme אם מנהלי ההתקנים של קובץ האימג' של דיסק האתחול עברו אופטימיזציה ל-NVMe, אחרת מגדירים את הערך scsi. צריך לציין את הדגל הזה ואת הערך המתאים פעם אחת לכל מחיצה של SSD מקומי.

  2. משתמשים בפקודה gcloud compute instance-groups managed create כדי ליצור קבוצת מופעי מכונה מנוהלים בתוך קבוצת השרתים לדייר יחיד:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
      --size=SIZE \
      --template=INSTANCE_TEMPLATE \
      --zone=ZONE
    

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

    • ‫INSTANCE_GROUP_NAME: השם של קבוצת המכונות הזו.

    • ‫SIZE: מספר המכונות הווירטואליות שצריך לכלול בקבוצת המכונות הזו. בקבוצת הצמתים צריכים להיות מספיק משאבים כדי להכיל את המכונות בקבוצת מופעי מכונה מנוהלים. משתמשים במידרוג אוטומטי של קבוצות מופעי מכונה מנוהלים כדי לנהל באופן אוטומטי את הגודל של קבוצות מופעי המכונה המנוהלים.

    • ‫INSTANCE_TEMPLATE: השם של התבנית של הגדרות המכונה שמשמשת ליצירת ה-MIG. לתבנית צריכה להיות לפחות תווית אחת של שיוך לצומת שמצביעה על קבוצות הצמתים המתאימות.

    • ‫ZONE: האזור שבו יוצרים את קבוצת המכונות המנוהלות. בקבוצת MIG אזורית, מחליפים את הדגל --zone בדגל --region ומציינים אזור. מוסיפים גם את הדגל --zones כדי לציין את כל האזורים שבהם נמצאות קבוצות הצמתים.

REST

  1. משתמשים בשיטה instanceTemplates.insert כדי ליצור תבנית של קבוצת מופעי מכונה מנוהלים בתוך קבוצת הצמתים של השרת לדייר יחיד:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/TEMPLATE_ZONE/instance-templates
    { "name": "INSTANCE_TEMPLATE", "properties": { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "scheduling": { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] } }

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

    • ‫PROJECT_ID: מזהה הפרויקט.

    • ‫TEMPLATE_ZONE: האזור שבו יוצרים את התבנית של הגדרות המכונה.

    • ‫INSTANCE_TEMPLATE: השם של התבנית החדשה של הגדרות המכונה.

    • ‫MACHINE_TYPE_ZONE: האזור של סוג המכונה.

    • ‫MACHINE_TYPE: סוג המכונה של המכונה הווירטואלית עם דייר יחיד. משתמשים ב-method‏ machineTypes.list כדי לקבל רשימה של סוגי המכונות שזמינים לפרויקט.

    • ‫GROUP_NAME: השם של קבוצת הצמתים שבה רוצים להקצות את המכונה הווירטואלית. אם רוצים להשתמש בתבנית של הגדרות מכונה הזו כדי ליצור קבוצת MIG אזורית שקיימת ביותר מתחום (zone) אחד, צריך לציין רשימה של קבוצות צמתים שקיימות באותם תחומים (zones) כמו קבוצת ה-MIG האזורית.

    • ‫NETWORK: כתובת ה-URL של משאב הרשת של התבנית הזו של הגדרות המכונה.

    • ‫REGION: האזור שבו נמצאת רשת המשנה של התבנית הזו של הגדרות המכונה.

    • ‫SUBNETWORK: כתובת ה-URL של משאב רשת המשנה של התבנית הזו של הגדרות המכונה.

    • ‫GPU_TYPE: סוג ה-GPU. צריך להגדיר את אחד מסוגי המאיצים שצוינו כשתבנית הצומת נוצרה.

    • ‫GPU_COUNT: מספר המעבדים הגרפיים מתוך המספר הכולל שצוין בתבנית הצומת, שצריך לצרף למכונה הווירטואלית הזו. ערך ברירת המחדל הוא 1.

    • ‫IMAGE_PROJECT: פרויקט התמונה של משפחת התמונות.

    • ‫IMAGE_FAMILY: משפחת קובצי האימג' של קובץ האימג' שבו משתמשים כדי ליצור את ה-VM.

    • ‫LOCAL_SSD_ZONE: האזור של ה-SSD המקומי.

    • ‫SSD_INTERFACE: סוג הממשק של ה-SSD המקומי. אם מנהלי ההתקנים של קובץ האימג' של דיסק האתחול מותאמים ל-NVMe, מגדירים את הערך NVME. אחרת, מגדירים את הערך SCSI.

  2. משתמשים בשיטה instanceGroupManagers.insert כדי ליצור קבוצת MIG בתוך קבוצת השרתים לדייר יחיד, על סמך התבנית של הגדרות המכונה שיצרתם קודם. לחלופין, אם רוצים ליצור קבוצת MIG אזורית, משתמשים ב-method regionInstanceGroupManagers.insert ומציינים את האזור והתחומים של כל קבוצות הצמתים, כפי שצוין בתבנית של הגדרות המכונה.

    לדוגמה, כדי ליצור קבוצת MIG אזורית, משתמשים בבקשה הבאה:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "baseInstanceName": "NAME_PREFIX",
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
    

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

    • ‫PROJECT_ID: מזהה הפרויקט.

    • ‫ZONE: האזור שבו יוצרים את קבוצת המכונות המנוהלות.

    • ‫NAME_PREFIX: שם הקידומת של כל אחד מהמופעים בקבוצת מופעי מכונה מנוהלים.

    • ‫INSTANCE_GROUP_NAME: השם של קבוצת המכונות.

    • ‫SIZE: מספר המכונות הווירטואליות שצריך לכלול בקבוצת המכונות הזו. בקבוצת הצמתים צריכים להיות מספיק משאבים כדי להכיל את המכונות בקבוצת מופעי מכונה מנוהלים. משתמשים במידרוג אוטומטי של קבוצות מופעי מכונה מנוהלים כדי לנהל באופן אוטומטי את הגודל של קבוצות מופעי המכונה המנוהלים.

    • ‫INSTANCE_TEMPLATE: כתובת ה-URL של התבנית של הגדרות המכונה שמשמשת ליצירת הקבוצה. לתבנית צריכה להיות תווית של זיקה לצומת שמצביעה על קבוצת הצמתים המתאימה.

הגדרת תוויות של זיקת צומת

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

gcloud

  1. משתמשים בפקודה gcloud compute sole-tenancy node-templates create כדי ליצור תבנית צומת עם קבוצה של תוויות שיוך לעומס עבודה בסביבת ייצור:

    gcloud compute sole-tenancy node-templates create prod-template \
      --node-type=n1-node-96-624 \
      --node-affinity-labels workload=frontend,environment=prod
    
  2. משתמשים בפקודה gcloud compute sole-tenancy node-templates describe כדי להציג את תוויות השיוך של הצומת שהוקצו לתבנית הצומת.

  3. משתמשים בפקודה gcloud compute sole-tenancy node-groups create כדי ליצור קבוצת צמתים שמשתמשת בתבנית הייצור:

    gcloud compute sole-tenancy node-groups create prod-group \
      --node-template=prod-template \
      --target-size=1
    
  4. למכונות הווירטואליות בסביבת הייצור, יוצרים קובץ node-affinity-prod.json כדי לציין את השיוך של המכונות הווירטואליות בסביבת הייצור. לדוגמה, אפשר ליצור קובץ שמציין שהמכונות הווירטואליות יפעלו רק בצמתים עם זיקות גם ל-workload=frontend וגם ל-environment=prod. יוצרים את קובץ ה-affinity של הצומת באמצעות Cloud Shell או יוצרים אותו במיקום לבחירתכם.

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. משתמשים בקובץ node-affinity-prod.json עם הפקודה gcloud compute instances create כדי לתזמן מכונה וירטואלית בקבוצת הצמתים עם תוויות התאמה תואמות.

    gcloud compute instances create prod-vm \
      --node-affinity-file node-affinity-prod.json \
      --machine-type=n1-standard-2
    
  6. מריצים את הפקודה gcloud compute instances describe ובודקים את השדה scheduling כדי לראות את שיוכי הצמתים שהוקצו ל-VM.

הגדרת תוויות של אי-זיקה לצומת

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

gcloud

  1. כדי להגדיר את ה-affinity של המכונות הווירטואליות לפיתוח, יוצרים node-affinity-dev.json באמצעות Cloud Shell או במיקום לבחירתכם. לדוגמה, אפשר ליצור קובץ שמגדיר למכונות הווירטואליות לפעול בכל קבוצת צמתים עם הזיקה workload=frontend, כל עוד היא לא environment=prod:

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "NOT_IN",
        "values" : ["prod"]
      }
    ]
    
  2. משתמשים בקובץ node-affinity-dev.json עם הפקודה gcloud compute instances create כדי ליצור את המכונה הווירטואלית לפיתוח:

    gcloud compute instances create dev-vm \
      --node-affinity-file=node-affinity-dev.json \
      --machine-type=n1-standard-2
    
  3. מריצים את הפקודה gcloud compute instances describe ובודקים את השדה scheduling כדי לראות את הגדרות ה-anti-affinity של הצומת שהוקצו למכונה הווירטואלית.

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