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

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

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

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

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

המסוף

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

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

    מעבר לשרתים לדייר יחיד

  2. לוחצים על יצירת קבוצת צמתים.

  3. מציינים שם לקבוצת הצמתים.

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

  5. מציינים את האזור ולוחצים על המשך.

  6. ברשימה Node template (תבנית צומת), לוחצים על Create node template (יצירת תבנית צומת) כדי להתחיל ליצור תבנית צומת של דייר יחיד.

  7. מציינים שם לתבנית הצומת.

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

  9. אופציונלי: אפשר גם לציין את המאפיינים הבאים של תבנית הצומת.

    • מוסיפים SSD מקומי ומאיץ GPU.
    • בוחרים באפשרות Enable CPU overcommit כדי לשלוט בCPU overcommit levels לכל מכונה וירטואלית שמתוזמנת בצומת.

    • מוסיפים תוויות של זיקה לצומת. תוויות שיוך מאפשרות לקבץ באופן לוגי צמתים וקבוצות של צמתים. בהמשך, כשמפעילים מכונות וירטואליות, אפשר לציין תוויות שיוך במכונות הווירטואליות כדי לתזמן אותן לקבוצה ספציפית של צמתים או קבוצות של צמתים. מידע נוסף זמין במאמר בנושא Node affinity and anti-affinity.

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

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

כדי לראות את תבניות הצמתים, לוחצים על Node templates (תבניות צמתים) בדף Sole-tenant nodes (צמתים עם דייר יחיד).

gcloud

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

gcloud compute sole-tenancy node-templates create TEMPLATE_NAME \
  --node-type=NODE_TYPE \
  [--region=REGION \]
  [--node-affinity-labels=AFFINITY_LABELS \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--disk type=local-ssd,count=DISK_COUNT,size=DISK_SIZE \]
  [--cpu-overcommit-type=CPU_OVERCOMMIT_TYPE]

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

  • TEMPLATE_NAME: השם של תבנית הצומת החדשה.

  • NODE_TYPE: סוג הצומת של צמתים לדייר יחיד שנוצרו על סמך התבנית הזו. אפשר להשתמש בפקודה gcloud compute sole-tenancy node-types list כדי לקבל רשימה של סוגי הצמתים שזמינים בכל אזור.

  • REGION: האזור שבו רוצים ליצור את תבנית הצומת. אפשר להשתמש בתבנית הזו כדי ליצור קבוצות של צמתים בכל אזור של האזור הזה.

  • AFFINITY_LABELS: המפתחות והערכים, [KEY=VALUE,...], של תוויות תחום העניין המשותף. תוויות שיוך מאפשרות לקבץ באופן לוגי צמתים וקבוצות של צמתים. לאחר מכן, כשמבצעים הקצאה של מכונות וירטואליות, אפשר לציין תוויות שיוך במכונות הווירטואליות כדי לתזמן אותן בקבוצה ספציפית של צמתים או קבוצות של צמתים. מידע נוסף זמין במאמר Node affinity and anti-affinity.

  • GPU_TYPE: סוג ה-GPU לכל צומת של דייר יחיד שנוצר על סמך תבנית הצומת הזו. כדי לקבל מידע על הזמינות האזורית של סוג השרת לדייר יחיד (sole-tenant) הנדרש, משתמשים בפקודה gcloud compute sole-tenancy node-types list. לדוגמה, כדי לראות את האזורים של a2-highgpu סוגי הצמתים, מוסיפים את הדגל --filter="name~'a2-highgpu'". בטבלה שבתיאור של GPU_COUNT מפורטים סוגי ה-GPU והצמתים שזמינים.

  • GPU_COUNT: מספר יחידות ה-GPU לצירוף לכל שרת לדייר יחיד (sole-tenant). הערך של GPU_COUNT תלוי ב-GPU_TYPE ובסוג השרת לדייר יחיד (sole-tenant). מגדירים את הערך GPU_COUNT לערך שמופיע בטבלה הבאה:

    סוג הצומת GPU_TYPE GPU_COUNT
    a2-highgpu nvidia-tesla-a100 8
    a2-megagpu nvidia-tesla-a100 16
    a2-ultragpu nvidia-a100-80gb 8
    a3-highgpu nvidia-h100-80gb 8
    a3-megagpu nvidia-h100-mega-80gb 8
    g2 nvidia-l4 8
    n1 nvidia-tesla-p100 4
    n1 nvidia-tesla-p4 4
    n1 nvidia-tesla-t4 4
    n1 nvidia-tesla-v100 8
  • DISK_COUNT: מספר דיסקי ה-SSD המקומיים. מגדירים את הערך 16 או 24. הפרמטר הזה לא נדרש לסוגי הצמתים A2 Ultra,‏ A3 High ו-A3 Mega כי הם כוללים מספר קבוע של דיסקים מקומיים מסוג SSD.

  • DISK_SIZE: ערך אופציונלי לגודל המחיצה של ה-SSD המקומי ב-GB. גודל המחיצה הנתמך היחיד הוא 375, ואם לא מגדירים את הערך הזה, ברירת המחדל היא 375.

  • CPU_OVERCOMMIT_TYPE: סוג ההקצאה העודפת של מעבדים במכונה וירטואלית. מגדירים את הערך ל-enabled או ל-none.

REST

משתמשים ב-method ‏nodeTemplates.insert כדי ליצור תבנית של צומת:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates

{
  "name": "TEMPLATE_NAME",
  "nodeType": "NODE_TYPE",
  "nodeAffinityLabels": {
    "KEY": "VALUE",
    ...
  },
  "accelerators": [
    {
      "acceleratorType": "GPU_TYPE",
      "acceleratorCount": GPU_COUNT
    }
  ],
  "disks": [
    {
      "diskType": "local-ssd",
      "diskSizeGb": DISK_SIZE,
      "diskCount": DISK_COUNT
    }
  ],
  "cpuOvercommitType": CPU_OVERCOMMIT_TYPE
}

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

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

  • REGION: האזור שבו רוצים ליצור את תבנית הצומת. אפשר להשתמש בתבנית הזו כדי ליצור קבוצות של צמתים בכל אזור של האזור הזה.

  • TEMPLATE_NAME: השם של תבנית הצומת החדשה.

  • NODE_TYPE: סוג הצומת של צמתים לדייר יחיד שנוצרו על סמך התבנית הזו. אפשר להשתמש בשיטה nodeTypes.list כדי לקבל רשימה של סוגי הצמתים שזמינים בכל אזור.

  • KEY: הערך nodeAffinityLabels שמציין את חלק המפתח של תווית שיוך צומת שמוצגת כצמד מפתח/ערך. תוויות שיוך מאפשרות לקבץ באופן לוגי צמתים וקבוצות של צמתים, ומאוחר יותר, כשמבצעים הקצאה של מכונות וירטואליות, אפשר לציין תוויות שיוך במכונות הווירטואליות כדי לתזמן את המכונות הווירטואליות בקבוצה ספציפית של צמתים או קבוצות של צמתים. מידע נוסף זמין במאמר Node affinity and anti-affinity.

  • VALUE: הערך של nodeAffinityLabels שמציין את חלק הערך של צמד מפתח/ערך של תווית שיוך צומת.

  • GPU_TYPE: סוג ה-GPU לכל צומת של דייר יחיד שנוצר על סמך תבנית הצומת הזו. כדי לקבל מידע על הזמינות האזורית של סוג השרת לדייר יחיד הנדרש, משתמשים בשיטת nodeTypes.list. לדוגמה, כדי לראות אזורים עבור a2-highgpu סוגי צמתים, משתמשים במסנן name~"a2-highgpu.*". בטבלה שבGPU_COUNTתיאור מפורטים סוגי ה-GPU והצמתים שזמינים.

  • GPU_COUNT: מספר יחידות ה-GPU לכל צומת של דייר יחיד שנוצר על סמך תבנית הצומת הזו. הערך של GPU_COUNT תלוי בערך של GPU_TYPE ובסוג השרת לדייר יחיד (sole-tenant). מגדירים את הערך GPU_COUNT לערך שמופיע בטבלה הבאה:

    סוג הצומת GPU_TYPE GPU_COUNT
    a2-highgpu nvidia-tesla-a100 8
    a2-megagpu nvidia-tesla-a100 16
    a2-ultragpu nvidia-a100-80gb 8
    a3-highgpu nvidia-h100-80gb 8
    a3-megagpu nvidia-h100-mega-80gb 8
    g2 nvidia-l4 8
    n1 nvidia-tesla-p100 4
    n1 nvidia-tesla-p4 4
    n1 nvidia-tesla-t4 4
    n1 nvidia-tesla-v100 8
  • DISK_SIZE: ערך אופציונלי לגודל המחיצה של ה-SSD המקומי ב-GB. גודל המחיצה הנתמך היחיד הוא 375, ואם לא מגדירים את הערך הזה, ברירת המחדל היא 375.

  • DISK_COUNT: מספר דיסקי ה-SSD המקומיים. ההגדרה היא 16 או 24. הפרמטר הזה לא נדרש לסוגי הצמתים A3 High ו-A3 Mega, כי הם כוללים מספר קבוע של דיסקים מקומיים מסוג SSD.

  • CPU_OVERCOMMIT_TYPE: סוג ה-CPU overcommit. הערך שמוגדר הוא enabled, none או CPU_OVERCOMMIT_TYPE_UNSPECIFIED.

יצירה של קבוצת שרתים לדייר יחיד

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

המסוף

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

    מעבר לשרתים לדייר יחיד

  2. לוחצים על יצירת קבוצת צמתים כדי להתחיל ליצור קבוצת צמתים.

  3. מציינים שם לקבוצת הצמתים.

  4. מציינים את האזור של קבוצת הצמתים כדי להציג את תבניות הצמתים שזמינות באזור הזה.

  5. מציינים את התחום באזור שבו רוצים ליצור את קבוצת הצמתים.

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

  7. בוחרים אחת מהאפשרויות הבאות למצב התאמה אוטומטית לעומס של המידרוג האוטומטי של קבוצת הצמתים:

    • Off: ניהול ידני של הגודל של קבוצת הצמתים.

    • מופעל: המערכת מוסיפה או מסירה צמתים מקבוצת הצמתים באופן אוטומטי.

    • הגדלת הקיבולת בלבד: הוספת צמתים לקבוצת הצמתים כשנדרשת קיבולת נוספת.

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

  9. בקטע Configure Maintenance Settings, מגדירים את Maintenance policy של קבוצת הצמתים עם הדייר היחיד לאחד מהערכים הבאים. מדיניות התחזוקה מאפשרת להגדיר את ההתנהגות של מכונות וירטואליות בקבוצת הצמתים במהלך אירועי תחזוקה של המארח. מידע נוסף מופיע במאמר בנושא כללי מדיניות בנושא תחזוקה.

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

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

    • הצטרפות לבקרת תחזוקה מתקדמת עבור דיירות יחידה: בקרת תחזוקה מתקדמת עבור דיירות יחידה מאפשרת לכם לשלוט באירועי תחזוקה מתוכננים עבור קבוצות שרתי לדייר יחיד ולמזער שיבושים שקשורים לתחזוקה. כדי להצטרף לאפשרות של בקרת תחזוקה מתקדמת, מעבירים את המתג Opt-in for advanced maintenance control for sole-tenancy למצב on. אם בוחרים באפשרות הזו לתחזוקת הצומת, השדה חלון זמן לתחזוקה מושבת והתחזוקה מתבצעת בהתאם להגדרות של ניהול תחזוקה מתקדם.

    שימו לב: שליטה מתקדמת בתחזוקה נתמכת רק במדיניות התחזוקה Default.

  11. מגדירים את הגדרות השיתוף על ידי ציון אחת מהאפשרויות הבאות בהגדרת הגדרות השיתוף:

    • כדי לשתף את קבוצת הצמתים עם כל הפרויקטים בארגון, בוחרים באפשרות Share this node group with all projects within the organization (שיתוף קבוצת הצמתים הזו עם כל הפרויקטים בארגון).
    • כדי לשתף את קבוצת הצמתים עם פרויקטים ספציפיים בארגון, בוחרים באפשרות Share this node group with selected projects within the organization (שיתוף קבוצת הצמתים הזו עם פרויקטים נבחרים בארגון).

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

  12. לוחצים על יצירה כדי לסיים את יצירת קבוצת הצמתים.

gcloud

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

gcloud compute sole-tenancy node-groups create GROUP_NAME \
  --node-template=TEMPLATE_NAME \
  --target-size=TARGET_SIZE \
  [--zone=ZONE \]
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--maintenance-window-start-time=START_TIME \]
  [--autoscaler-mode=AUTOSCALER_MODE: \
  --min-nodes=MIN_NODES \
  --max-nodes=MAX_NODES]

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

  • GROUP_NAME: השם של קבוצת הצמתים החדשה.

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

  • TARGET_SIZE: מספר הצמתים שייווצרו בקבוצה.

  • ZONE: האזור שבו רוצים ליצור את קבוצת הצמתים. האזור הזה צריך להיות זהה לאזור של תבנית הצומת שעליה מבוססת קבוצת הצמתים.

  • MAINTENANCE_POLICY: מדיניות התחזוקה של קבוצת הצמתים. מידע נוסף מופיע במאמר בנושא מדיניות תחזוקה. הערך צריך להיות אחד מהערכים הבאים:

    • default
    • restart-in-place
    • migrate-within-node-group

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

  • START_TIME: שעת ההתחלה לפי שעון GMT של חלון זמן לתחזוקה של המכונות הווירטואליות בקבוצת הצמתים הזו. הערך צריך להיות אחד מהערכים הבאים: 00:00, ‏04:00, ‏08:00, ‏12:00, ‏16:00 או 20:00. אם לא מגדירים חלון זמן לתחזוקה, לקבוצת הצמתים אין חלון זמן מוגדר לתחזוקה.

  • AUTOSCALER_MODE: מדיניות ההתאמה האוטומטית של גודל הקבוצה של הצמתים. הערך חייב להיות אחד מהערכים הבאים:

    • off: ניהול ידני של גודל קבוצת הצמתים.

    • on: להוסיף או להסיר צמתים מקבוצת הצמתים באופן אוטומטי.

    • only-scale-out: הוספת צמתים לקבוצת הצמתים כשנדרש קיבולת נוספת.

  • MIN_NODES: הגודל המינימלי של קבוצת הצמתים. ערך ברירת המחדל הוא 0 והוא חייב להיות מספר שלם שקטן מ-MAX_NODES או שווה לו.

  • MAX_NODES: הגודל המקסימלי של קבוצת הצמתים. הערך הזה חייב להיות קטן מ-100 או שווה לו, וגדול מ-MIN_NODES או שווה לו. חובה אם הערך של AUTOSCALER_MODE לא מוגדר כ-off.

REST

משתמשים ב-method ‏nodeGroups.insert כדי ליצור קבוצת צמתים על סמך תבנית צמתים שנוצרה קודם:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups?initialNodeCount=TARGET_SIZE
{ "nodeTemplate": "regions/REGION/nodeTemplates/TEMPLATE_NAME", "name": "GROUP_NAME", "maintenancePolicy": MAINTENANCE_POLICY, "maintenanceWindow": { "startTime": "START_TIME" } "autoscalingPolicy": { "mode": AUTOSCALER_MODE, "minNodes": MIN_NODES, "maxNodes": MAX_NODES }, }

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

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

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

  • TARGET_SIZE: מספר הצמתים שייווצרו בקבוצה.

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

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

  • GROUP_NAME: השם של קבוצת הצמתים החדשה.

  • MAINTENANCE_POLICY: מדיניות התחזוקה של קבוצת הצמתים. הערך חייב להיות אחד מהערכים הבאים:

    • DEFAULT
    • RESTART_IN_PLACE
    • MIGRATE_WITHIN_NODE_GROUP

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

  • START_TIME: שעת ההתחלה לפי שעון GMT של חלון זמן לתחזוקה של המכונות הווירטואליות בקבוצת הצמתים הזו. הערך צריך להיות אחד מהערכים הבאים: 00:00, ‏04:00, ‏08:00, ‏12:00, ‏16:00 או 20:00. אם לא מגדירים חלון זמן לתחזוקה, לקבוצת הצמתים אין חלון זמן מוגדר לתחזוקה.

  • AUTOSCALER_MODE: מדיניות ההתאמה האוטומטית של גודל הקבוצה של הצמתים. הערך צריך להיות אחד מהערכים הבאים:

    • OFF: ניהול ידני של גודל קבוצת הצמתים.

    • ON: להוסיף או להסיר צמתים מקבוצת הצמתים באופן אוטומטי.

    • ONLY_SCALE_OUT: הוספת צמתים לקבוצת הצמתים כשנדרש קיבולת נוספת.

  • MIN_NODES: הגודל המינימלי של קבוצת הצמתים. ערך ברירת המחדל הוא 0 והוא חייב להיות מספר שלם שקטן מ-MAX_NODES או שווה לו.

  • MAX_NODES: הגודל המקסימלי של קבוצת הצמתים. הערך הזה חייב להיות קטן מ-100 או שווה לו, וגדול מ-MIN_NODES או שווה לו. חובה אם הערך של AUTOSCALER_MODE לא מוגדר כ-OFF.

הקצאת מכונה וירטואלית עם דייר יחיד

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

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

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

המסוף

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

    מעבר לשרתים לדייר יחיד

  2. לוחצים על Node groups (קבוצות צמתים).

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

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

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

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

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

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

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

    • Terminate: המכונה הווירטואלית (VM) הופסקה במהלך אירועי תחזוקה.

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

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

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

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

gcloud

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

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: האזור שבו יוקצה ה-VM עם הדייר היחיד.

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

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

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

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

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

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

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

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

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

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

REST

משתמשים בשיטה 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: סוג המכונה של מכונת ה-VM בדיירות יחידה. משתמשים ב-method‏ machineTypes.list כדי לקבל רשימה של סוגי מכונות שזמינים לפרויקט.

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

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

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

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

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

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

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

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

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

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

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

  • IMAGE_PROJECT: image project של משפחת התמונות.

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

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

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

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

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

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

gcloud

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

    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: סוג המכונה של המכונה הווירטואלית עם דייר יחיד. משתמשים בפקודה 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: סוג המכונה של מכונת ה-VM בדיירות יחידה. משתמשים ב-method‏ machineTypes.list כדי לקבל רשימה של סוגי מכונות שזמינים לפרויקט.

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

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

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

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

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

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

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

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

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

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

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

    לדוגמה, כדי ליצור קבוצת 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 של תבנית הגדרות המכונה שבה רוצים להשתמש כדי ליצור את הקבוצה הזו. בתבנית צריך להיות תווית של זיקה לצומת שמפנה לקבוצת הצמתים המתאימה.

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

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

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. יוצרים את קובץ ההתאמה של הצומת באמצעות 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 כדי לראות את ההעדפות של הצומת שהוקצו למכונה הווירטואלית.

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

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

gcloud

  1. כדי לציין את האפיניות של מכונות וירטואליות לפיתוח, צריך ליצור 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 כדי לראות את ההגדרות של מניעת קרבה בין צמתים שהוקצו למכונה הווירטואלית.

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