יצירת מכונה וירטואלית עם משאבי מעבד וזיכרון ספציפיים באמצעות VM Runtime ב-GDC

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

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

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

יצירת VM

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

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

CLI

  • משתמשים ב-kubectl כדי ליצור מכונה וירטואלית:

    kubectl virt create vm VM_NAME \
      --image ubuntu20.04 \
      --cpu CPU_NUMBER \
      --memory MEMORY_SIZE
    

    מחליפים את הערכים הבאים:

    • ‫VM_NAME: השם של המכונה הווירטואלית. מידע נוסף על מגבלות השמות מופיע במאמר שמות ומזהים של אובייקטים.
    • ‫CPU_NUMBER: מספר המעבדים הווירטואליים (vCPUs) שיוקצו למכונה הווירטואלית.
      • אפשר להקצות בין 1 ל-96 מעבדי vCPU למכונה וירטואלית.
    • ‫MEMORY_SIZE: כמות הזיכרון שצריך להקצות למכונה הווירטואלית.

מניפסט

  1. יוצרים מניפסט של VirtualMachine, למשל my-custom-vm.yaml, בעורך לבחירתכם:

    nano my-custom-vm.yaml
    
  2. מעתיקים ומדביקים את המניפסט הבא ב-YAML:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        cpu:
          vcpus: VCPU_NUMBER
        memory:
          capacity: MEMORY_SIZE
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - virtualMachineDiskName: VM_NAME-boot-dv
          boot: true
    

    בקובץ ה-YAML הזה, מגדירים את הפרטים הבאים:

    • ‫VM_NAME: השם של המכונה הווירטואלית. מידע נוסף על מגבלות השמות מופיע במאמר שמות ומזהים של אובייקטים.
    • ‫VCPU_NUMBER: מספר המעבדים הווירטואליים שיוקצו למכונה הווירטואלית.
      • אפשר להקצות בין 1 ל-96 מעבדי vCPU למכונה וירטואלית.
    • ‫MEMORY_SIZE: כמות הזיכרון שצריך להקצות למכונה הווירטואלית.

    המכונה הווירטואלית מתחברת eth0 לרשת pod-network שמוגדרת כברירת מחדל.

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

  3. שומרים וסוגרים את המניפסט של המכונה הווירטואלית בכלי העריכה.

  4. יוצרים את המכונה הווירטואלית באמצעות kubectl:

    kubectl apply -f my-custom-vm.yaml
    

יצירה ושימוש בסוגי מכונות וירטואליות

כשמפעילים את VM Runtime on GDC, הגדרה חדשה של משאב בהתאמה אישית (CRD) מסוג VirtualMachineType זמינה. ההגדרה הזו משמשת לציון משאבי המעבד (CPU) והזיכרון של מכונה וירטואלית. אתם יכולים ליצור סוגים של מכונות וירטואליות לעומסי העבודה השונים שאתם צריכים, ולהחיל קבוצה עקבית של משאבי מחשוב על מכונות וירטואליות על סמך הסוגים האלה.

אם סביבת זמן הריצה של VM ב-GDC מופעלת ב-Google Distributed Cloud, ה-vm-controller-manager מתקין סוג VM מוגדר מראש. ההגדרה הבאה מציגה את סוג ברירת המחדל של המכונה הווירטואלית example-machinetype:

  apiVersion: vm.cluster.gke.io/v1
  kind: VirtualMachineType
  metadata:
    name: "example-machinetype"
    labels:
      vm.cluster.gke.io/predefined-machinetype: "true"
  spec:
    cpu:
      vcpus: 2
    memory:
      capacity: 4G

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

יצירת סוג של מכונה וירטואלית

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

  1. יוצרים מניפסט של VirtualMachineType, כמו my-vm-type.yaml, בעורך לבחירתכם:

    nano my-vm-type.yaml
    
  2. מעתיקים ומדביקים את המניפסט הבא ב-YAML:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: my-vm-type
    spec:
      cpu:
        vcpus: VCPU_NUMBER
      memory:
        capacity: MEMORY_SIZE
    

    בסוג הזה של מכונה וירטואלית, אתם מגדירים את הפרטים הבאים:

    • ‫VM_NAME: השם של המכונה הווירטואלית. מידע נוסף על מגבלות השמות מופיע במאמר שמות ומזהים של אובייקטים.
    • ‫VCPU_NUMBER: מספר המעבדים הווירטואליים שיוקצו למכונה הווירטואלית.
      • אפשר להקצות בין 1 ל-96 מעבדי vCPU למכונה וירטואלית.
    • ‫MEMORY_SIZE: כמות הזיכרון שצריך להקצות למכונה הווירטואלית.
  3. שומרים וסוגרים את המניפסט של סוג ה-VM בכלי העריכה.

  4. יוצרים את סוג המכונה הווירטואלית באמצעות kubectl:

    kubectl apply -f my-vm-type.yaml
    

יצירת מכונה וירטואלית לפי סוג

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

  1. יוצרים מניפסט של VirtualMachine, כמו my-custom-vm.yaml, בכלי העריכה שבוחרים.

    nano my-custom-vm.yaml
    
  2. מעתיקים ומדביקים את המניפסט הבא ב-YAML:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineTypeName: my-vm-type
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - virtualMachineDiskName: VM_NAME-boot-dv
          boot: true
    

    בקובץ ה-YAML הזה, מציינים את השם של סוג ה-VM בהתאמה אישית שיצרתם בקטע הקודם, למשל my-vm-type, כערך של virtualMachineTypeName.

    המכונה הווירטואלית מתחברת eth0 לרשת pod-network שמוגדרת כברירת מחדל.

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

  3. שומרים וסוגרים את המניפסט של המכונה הווירטואלית בכלי העריכה.

  4. יוצרים את המכונה הווירטואלית באמצעות kubectl:

    kubectl apply -f my-custom-vm.yaml
    

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