כשיוצרים מכונות וירטואליות שמשתמשות ב-VM Runtime ב-Google Distributed Cloud, אפשר להגדיר משאבי מחשוב בשתי דרכים:
- הגדרה ידנית של מעבד וזיכרון: הגדרת משאבי מחשוב ישירות במניפסט
VirtualMachine. הגישה הזו שימושית למכונות וירטואליות חד-פעמיות או לעומסי עבודה בהתאמה אישית שדורשים הקצאות ייחודיות של משאבים. - יצירה ושימוש בסוגי מכונות וירטואליות: הגדרה של משאבים מותאמים אישית לשימוש חוזר, שמבצעים סטנדרטיזציה של הקצאות זיכרון ומעבדים.
VirtualMachineTypeהגישה הזו שימושית לניהול קבוצות של מכונות וירטואליות, להבטחת עקביות בחישובים בכל האשכול ולפישוט הקצאת המכונות הווירטואליות למפתחים.
לפני שמתחילים
כדי לציין באופן ידני משאבי מעבד וזיכרון, וליצור סוגי מכונות וירטואליות ולהשתמש בהם, אתם צריכים גישה למשאבים הבאים:
- קלאסטר מחובר של Distributed Cloud, גרסה 1.9.0 ואילך.
- כלי שורת הפקודה של Kubernetes,
kubectl, מותקן ומוגדר לגישה לאשכול. מידע נוסף זמין במאמר בנושא התקנתkubectl. - אופציונלי: כלי הלקוח
virtctlמותקן כפלאגין ל-kubectl. אם צריך, אפשר לעיין במאמר בנושא התקנת כלי הניהול שלvirtctl.
יצירת מכונה וירטואלית וציון המעבד והזיכרון
כשיוצרים מכונה וירטואלית, אפשר לציין באופן ידני את דרישות ה-CPU והזיכרון. אתם יכולים להשתמש בתכונה הזו כדי ליצור מכונות וירטואליות עם משאבי מחשוב מתאימים לצרכים של האפליקציה שלכם.
כדי ליצור מכונה וירטואלית ולציין את המעבד והזיכרון, משתמשים בVirtualMachineמניפסט.
בעורך שתבחרו, יוצרים קובץ מניפסט
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 שצוינה.-
כדי ליצור את ה-VM, מפעילים את המניפסט על האשכול המקושר של Distributed Cloud באמצעות הפקודה
kubectl apply:kubectl apply -f my-custom-vm.yamlכדי לוודא שהמכונה הווירטואלית נוצרה, משתמשים בפקודה
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
אתם יכולים ליצור סוגים משלכם של מכונות וירטואליות שיתאימו לצרכים של עומסי העבודה שלכם.
בעורך שתבחרו, יוצרים קובץ מניפסט
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.
-
כדי ליצור את סוג ה-VM, מפעילים את המניפסט על האשכול המחובר של Distributed Cloud באמצעות הפקודה
kubectl apply:kubectl apply -f my-vm-type.yamlכדי לוודא שסוג ה-VM נוצר, מריצים את הפקודה
kubectl get:kubectl get virtualmachinetype VM_TYPE_NAME
יצירת מכונה וירטואלית באמצעות סוג מכונה וירטואלית
כדי להחיל על המכונה הווירטואלית את הגדרות המעבד והזיכרון שמוגדרות בסוג המכונה הווירטואלית, מציינים את השם של סוג המכונה הווירטואלית בקטע compute של מניפסט VirtualMachine.
בכלי העריכה שבוחרים, יוצרים קובץ
VirtualMachinemanifest, כמו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 שצוינה.-
כדי ליצור את ה-VM, מפעילים את המניפסט על האשכול המקושר של Distributed Cloud באמצעות הפקודה
kubectl apply:kubectl apply -f my-custom-vm.yamlכדי לוודא שהמכונה הווירטואלית משתמשת בסוג ה-VM, מפעילים את הפקודה
kubectl getעם האפשרות-o jsonpath:kubectl get vm VM_NAME -n NAMESPACE -o jsonpath='{.spec.compute.virtualMachineTypeName}'הפלט הצפוי מציג את השם של סוג המכונה הווירטואלית.