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

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

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

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

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

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

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

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

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

כדי להגדיר או לעדכן את ברירת המחדל של StorageClass שבה משתמשת סביבת זמן הריצה של VM ב-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, כמו 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 ב-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 Runtime on GDC. למידע נוסף, קראו את המאמר מצבי גישה.
    • ‫VOLUME_MODE: מצב עוצמת הקול שבו רוצים להשתמש.
      • הערכים הקבילים כוללים את Filesystem ו-Block. אם לא מציינים ערך, המערכת משתמשת ב-Filesystem על סמך ברירות המחדל של Kubernetes. מידע נוסף זמין במאמר מצבי ווליום.
  3. שומרים וסוגרים את המשאב המותאם אישית StorageProfile בכלי העריכה.

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

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