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

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

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

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

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

המסוף

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

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

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

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

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

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

  5. מציינים את האזור (Zone) ולוחצים על Continue.

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

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

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

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

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

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

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

  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: סוג הצומת של שרתים לדייר יחיד (sole-tenant) שנוצרו על סמך התבנית הזו. אפשר להשתמש בפקודה gcloud compute sole-tenancy node-types list כדי לקבל רשימה של סוגי הצמתים שזמינים בכל אזור.

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

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

  • ‫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 ובסוג השרת לדייר יחיד. מגדירים את 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
    g4 nvidia-rtx-pro-6000 8
    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, כי הם כוללים מספר קבוע של דיסקים מסוג Local 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: סוג הצומת של שרתים לדייר יחיד (sole-tenant) שנוצרו על סמך התבנית הזו. כדי לקבל רשימה של סוגי הצמתים שזמינים בכל אזור, משתמשים ב-method‏ nodeTypes.list.

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

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

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

  • ‫GPU_COUNT: מספר יחידות ה-GPU לכל צומת של דייר יחיד שנוצר על סמך תבנית הצומת הזו. הערך של GPU_COUNT תלוי ב-GPU_TYPE ובסוג השרת לדייר יחיד. מגדירים את 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
    g4 nvidia-rtx-pro-6000 8
    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 כי הם כוללים מספר קבוע של דיסקים מסוג Local SSD.

  • ‫CPU_OVERCOMMIT_TYPE: סוג ה-CPU overcommit. מגדירים את הערך enabled, ‏none או CPU_OVERCOMMIT_TYPE_UNSPECIFIED.

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

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

המסוף

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

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

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

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

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

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

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

  7. בוחרים אחת מהאפשרויות הבאות ל-Autoscaling mode של node group autoscaler:

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

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

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

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

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

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

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

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

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

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

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

    אם אתם לא רוצים לשתף את קבוצת הצמתים, בוחרים באפשרות Do not share this node group with other projects. מידע נוסף על שיתוף קבוצות שרתי לדייר יחיד (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). מידע נוסף זמין במאמר בנושא הפעלת בקרת תחזוקה מתקדמת בשרת לדייר יחיד (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: שעת ההתחלה לפי שעון גריניץ' של חלון הזמן לתחזוקה של המכונות הווירטואליות בקבוצת הצמתים הזו. הערך צריך להיות אחד מהערכים הבאים: 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.

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

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

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

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

המסוף

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

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

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

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

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

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

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

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

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

    • VM Migration (מומלץ): VM migrated to another node in the node group during maintenance events.

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

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

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

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

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

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

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

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

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

  • ‫MACHINE_TYPE: סוג המכונה של מכונת ה-VM בדיירות יחידה. משתמשים בפקודה 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

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

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

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

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

    • ‫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_FAMILY: משפחת התמונות של התמונה שבה משתמשים כדי ליצור את המכונה הווירטואלית.

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

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

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

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

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

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

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

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

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

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