יצירה ושימוש במחלקות אחסון ב-VM Runtime ב-GDC

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

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

כדי להשלים את המסמך הזה, צריך גישה לאשכול Google Distributed Cloud בגרסה 1.12.0 (anthosBareMetalVersion: 1.12.0) ומעלה. אפשר להשתמש בכל סוג של אשכול שיכול להריץ עומסי עבודה. אם צריך, אפשר לנסות את Google Distributed Cloud ב-Compute Engine או לעיין בסקירה הכללית על יצירת אשכולות.

סקירה כללית על סוגי אחסון (storage classes)

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

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

הגדרה או עדכון של StorageClass שמוגדר כברירת מחדל

במקור, ל-Google Distributed Cloud עם VM Runtime ב-GDC לא מוגדר StorageClass כברירת מחדל. כדי ליצור VirtualMachineDisk בלי לציין StorageClass, צריך קודם ליצור StorageClass ואז להגדיר אותו כברירת מחדל.

אם רוצים להגדיר או לעדכן את ברירת המחדל של StorageClass ש-VM Runtime ב-GDC משתמש בה כשיוצרים VirtualMachineDisk, צריך לעדכן את המשאב המותאם אישית VMRuntime.

  1. עורכים את VMRuntime המשאב המותאם אישית:

    kubectl edit vmruntime
    
  2. מוסיפים או מעדכנים את הקטע spec.storage שמציין את ברירת המחדל של StorageClass שבה רוצים להשתמש:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: true
      storage:
        defaultStorageClass: STORAGE_CLASS_NAME
    ...
    

    עורכים את STORAGE_CLASS_NAME וכותבים את שם ברירת המחדל של StorageClass שרוצים להשתמש בו. אם אתם צריכים ליצור StorageClass, תוכלו לעיין במאמר יצירת StorageClass.

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

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

    משאבי VirtualMachineDisk קיימים לא מתעדכנים לשימוש ב-StorageClass שצוין לאחרונה.

שימוש ב-StorageClass ספציפי

אם אתם לא רוצים להשתמש בערך ברירת המחדל StorageClass כשאתם יוצרים VirtualMachineDisk, אתם יכולים להשתמש בשדה storageClassName כדי לציין StorageClass אחר.

כדי להשתמש בStorageClass ספציפי שכבר הוגדר כשיוצרים VirtualMachineDisk, צריך לבצע את השלבים הבאים:

  1. יוצרים קובץ VirtualMachineDisk manifest, כמו my-disk.yaml, בכלי העריכה הרצוי:

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

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
      storageClassName: STORAGE_CLASS_NAME
    

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

    • DISK_NAME: השם של הדיסק.
    • STORAGE_CLASS_NAME: StorageClass שבו רוצים להשתמש בדיסק. ה-StorageClass הזה כבר צריך להיות קיים. אם אתם צריכים ליצור קודם StorageClass, תוכלו לעיין במאמר יצירת StorageClass.
  3. שומרים את מניפסט הדיסק וסוגרים את העורך.

  4. יוצרים את הדיסק באמצעות kubectl:

    kubectl apply -f my-disk.yaml
    

הגדרת פרופילים של אחסון

פרופילים של אחסון מספקים אפשרויות הגדרה נוספות שמשויכות לכל StorageClass. אפשרויות ההגדרה האלה כוללות את מצב הגישה ומצב הווליום שבהם יש להשתמש ב-VirtualMachineDisks שמשתמשים ב-StorageClass.

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

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

  $ kubectl get storageprofiles

  NAME            AGE
  anthos-system   11d
  node-disk       11d
  standard        11d
  nfs             11d

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

  1. עורכים את המשאב המותאם אישית StorageProfile:

    kubectl edit storageprofile STORAGE_PROFILE_NAME
    

    מחליפים את STORAGE_PROFILE_NAME בStorageProfile שרוצים לערוך.

  2. מוסיפים רשומה אחת לרשימה spec.claimPropertySets של StorageProfile:

    apiVersion: cdi.kubevirt.io/v1beta1
    kind: StorageProfile
    metadata:
      name: nfs
    spec:
      claimPropertySets:
      - accessModes:
        - ACCESS_MODE
        volumeMode: VOLUME_MODE
    

    הרכיבים accessMode ו-volumeMode משתמשים ברכיבי Kubernetes הבסיסיים. הערכים שאתם מגדירים תלויים במנהל האחסון שבו אתם משתמשים. מחליפים את הערכים הבאים בהתאם לאחסון שבו אתם משתמשים:

    • ACCESS_MODE: מצב הגישה שבו רוצים להשתמש. אם יש תמיכה בStorageClass המשויך, מצב הגישה המועדף הוא ReadWriteMany.
      • הערכים הקבילים כוללים ReadWriteOnce,‏ ReadOnlyMany,‏ ReadWriteMany ו-ReadWriteOncePod. אם לא מציינים ערך, המערכת משתמשת ב-ReadWriteOnce על סמך ברירות המחדל של זמן הריצה של מכונת ה-VM ב-GDC. מידע נוסף זמין במאמר בנושא מצבי גישה.
    • VOLUME_MODE: מצב עוצמת הקול שרוצים להשתמש בו.
      • הערכים הקבילים כוללים Filesystem ו-Block. אם לא מציינים ערך, נעשה שימוש בערך של Filesystem על סמך ברירות המחדל של Kubernetes. מידע נוסף זמין במאמר בנושא מצבי עוצמת הקול.
  3. שומרים וסוגרים את המשאב המותאם אישית StorageProfile בכלי העריכה.

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

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