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

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

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

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

יצירת VM

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

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

CLI

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

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

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

    • VM_NAME: השם של ה-VM. מידע נוסף על מגבלות שמות זמין במאמר שמות ומזהים של אובייקטים.
    • CPU_NUMBER: מספר המעבדים הווירטואליים (vCPU) שיוקצו למכונה הווירטואלית.
      • אפשר להקצות למכונה וירטואלית בין 1 ל-96 מעבדים וירטואליים.
    • 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: השם של ה-VM. מידע נוסף על מגבלות שמות זמין במאמר שמות ומזהים של אובייקטים.
    • VCPU_NUMBER: מספר ליבות ה-vCPU להקצאה למכונה הווירטואלית.
      • אפשר להקצות למכונה וירטואלית בין 1 ל-96 מעבדים וירטואליים.
    • MEMORY_SIZE: כמות הזיכרון להקצאה למכונה הווירטואלית.

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

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

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

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

    kubectl apply -f my-custom-vm.yaml
    

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

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

אם VM Runtime on GDC מופעל ב-Google Distributed Cloud, הפקודה vm-controller-manager מתקינה סוג מוגדר מראש של מכונה וירטואלית. ההגדרה הבאה מציגה את סוג המכונה הווירטואלית שמוגדר כברירת מחדל: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 המוגדר מראש. סוג מכונת ה-VM המוגדר מראש מותקן מחדש אם הוא לא קיים באשכול בכל פעם שמפעילים או מפעילים מחדש את vm-controller-manager, למשל אם מחקתם את סוג מכונת ה-VM.

יצירת סוג VM

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

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

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

    kubectl apply -f my-vm-type.yaml
    

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

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

  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 הזה, מציינים את השם של סוג המכונה הווירטואלית בהתאמה אישית שיצרתם בקטע הקודם, כמו my-vm-type, כערך של virtualMachineTypeName.

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

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

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

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

    kubectl apply -f my-custom-vm.yaml
    

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