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

כשיוצרים מכונות וירטואליות שמשתמשות ב-VM Runtime ב-Google Distributed Cloud, אפשר להגדיר משאבי מחשוב בשתי דרכים:

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

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

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

  • קלאסטר מחובר של Distributed Cloud, גרסה 1.9.0 ואילך.
  • כלי שורת הפקודה של Kubernetes‏, kubectl, מותקן ומוגדר לגישה לאשכול. מידע נוסף זמין במאמר בנושא התקנת kubectl.
  • אופציונלי: כלי הלקוח virtctl מותקן כפלאגין ל-kubectl. אם צריך, אפשר לעיין במאמר בנושא התקנת כלי הניהול של virtctl.

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

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

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

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

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

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

    • VM_NAME: השם של המכונה הווירטואלית.
    • NAMESPACE: מרחב השמות של יעד המכונה הווירטואלית.
    • L2_NETWORK_NAME: השם של רשת L2 שאליה רוצים לחבר את המכונה הווירטואלית.
    • VCPU_NUMBER: מספר המעבדים הווירטואליים להקצאה למכונה הווירטואלית. אפשר להקצות למכונה וירטואלית בין 1 ל-96 מעבדים וירטואליים.
    • MEMORY_SIZE: כמות הזיכרון להקצאה למכונה הווירטואלית. אפשר להקצות למכונה וירטואלית זיכרון בנפח של 1Mi עד 1Ti. מידע נוסף זמין במאמר יחידות משאבי זיכרון במאמרי העזרה של Kubernetes.
    • VM_BOOT_NAME: השם של דיסק האתחול של ה-VM. דיסק האתחול חייב להיות קיים. מידע נוסף זמין במאמר יצירת דיסק של מכונה וירטואלית מקובץ אימג' של מכונה וירטואלית.

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

  2. כדי ליצור את ה-VM, מפעילים את המניפסט על האשכול המקושר של Distributed Cloud באמצעות הפקודה kubectl apply:

    kubectl apply -f my-custom-vm.yaml
    
  3. כדי לוודא שהמכונה הווירטואלית נוצרה, משתמשים בפקודה kubectl get:

    kubectl get vm VM_NAME -n NAMESPACE
    

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

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

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

אם VM Runtime ב-GDC מופעל ב-Distributed Cloud במודל מחובר, יכול להיות שיהיה זמין סוג VM מוגדר מראש. אי אפשר לעדכן את סוג מכונת ה-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

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

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

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

    בסוג מכונת ה-VM הזה, מגדירים את ההגדרות הבאות:

    • VM_TYPE_NAME: השם של סוג ה-VM.
    • VCPU_NUMBER: מספר המעבדים הווירטואליים להקצאה למכונה הווירטואלית. אפשר להקצות למכונה וירטואלית בין 1 ל-96 מעבדים וירטואליים.
    • MEMORY_SIZE: כמות הזיכרון להקצאה למכונה הווירטואלית. אפשר להקצות למכונה וירטואלית זיכרון בנפח של 1Mi עד 1Ti. מידע נוסף זמין במאמר יחידות משאבי זיכרון במאמרי העזרה של Kubernetes.
  2. כדי ליצור את סוג ה-VM, מפעילים את המניפסט על האשכול המחובר של Distributed Cloud באמצעות הפקודה kubectl apply:

    kubectl apply -f my-vm-type.yaml
    
  3. כדי לוודא שסוג ה-VM נוצר, מריצים את הפקודה kubectl get:

    kubectl get virtualmachinetype VM_TYPE_NAME
    

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

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

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

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
      namespace: NAMESPACE
    spec:
      compute:
        virtualMachineTypeName: VM_TYPE_NAME
      interfaces:
        - name: eth0
          networkName: L2_NETWORK_NAME
          default: true
      disks:
        - virtualMachineDiskName: VM_BOOT_NAME-boot-dv
          boot: true

    מגדירים את ההגדרות הבאות:

    • VM_NAME: השם של המכונה הווירטואלית.
    • NAMESPACE: מרחב השמות של יעד המכונה הווירטואלית.
    • L2_NETWORK_NAME: השם של רשת L2 שאליה רוצים לחבר את המכונה הווירטואלית.
    • VM_TYPE_NAME: השם של סוג המכונה הווירטואלית המותאם אישית שיצרתם בקטע הקודם, למשל my-vm-type.
    • VM_BOOT_NAME: השם של דיסק האתחול של ה-VM. דיסק האתחול חייב להיות קיים. מידע נוסף זמין במאמר יצירת דיסק של מכונה וירטואלית מקובץ אימג' של מכונה וירטואלית.

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

  2. כדי ליצור את ה-VM, מפעילים את המניפסט על האשכול המקושר של Distributed Cloud באמצעות הפקודה kubectl apply:

    kubectl apply -f my-custom-vm.yaml
    
  3. כדי לוודא שהמכונה הווירטואלית משתמשת בסוג ה-VM, מפעילים את הפקודה kubectl get עם האפשרות -o jsonpath:

    kubectl get vm VM_NAME -n NAMESPACE -o jsonpath='{.spec.compute.virtualMachineTypeName}'
    

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

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