הפניה למנהל התקן CSI

במניפסטים הבאים מתוארים שדות נתמכים של מנהלי התקנים של CSI במשאבים StorageClass ו-Persistent Volume.

סוג אחסון (storage class)

המניפסט הבא כולל את כל השדות הנתמכים ב-StorageClass.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: parallelstore-csi-sc
provisioner: parallelstore.csi.storage.gke.io
parameters:
  network: VPC_NETWORK_NAME # optional
  labels: KEY: VALUE # optional
  description: DESCRIPTION # optional
  reserved-ip-range: IP_RANGE_NAME # optional
  file-stripe-level: FILE_STRIPE_LEVEL # optional
  directory-stripe-level: DIRECTORY_STRIPE_LEVEL # optional
  mountLocality: MOUNT_LOCALITY # optional
  dfuseCPURequest: DFUSE_CPU_REQUEST # optional
  dfuseMemoryRequest: DFUSE_MEMORY_REQUEST # optional
  dfuseCPULimit: DFUSE_CPU_LIMIT # optional
  dfuseMemoryLimit: DFUSE_MEMORY_LIMIT # optional
volumeBindingMode: VOLUME_BINDING_MODE # default is "immediate"; or "waitForFirstConsumer"
allowedTopologies: # optional
- matchLabelExpressions:
  - key: topology.gke.io/zone
    values:
    - ZONE
mountOptions:
  -  DFUSE_MOUNT_OPTIONS # disable-caching, enable-wb-cache, thread-count, eq-count

כל השדות הבאים הם אופציונליים:

  • network: רשת ה-VPC שבה רוצים ליצור את מופע Parallelstore. אם לא מציינים את המאפיין הזה, נעשה שימוש ברשת של אשכול GKE.

    כדי ליצור מופע Parallelstore ברשת VPC משותפת, צריך לספק את השם המלא של הרשת. לדוגמה: projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME

  • labels: צמדים של מפתח/ערך שצוינו על ידי המשתמש לצירוף למופע הזה.

  • description: תיאור של המופע. האורך המרבי הוא 2,048 תווים.

  • reserved-ip-range: השם של טווח כתובות IP שהוקצה. אם לא מציינים טווח, כל הטווחים נלקחים בחשבון.

  • התג file-stripe-level מגדיר את ההגדרות של חלוקת הקבצים לרצועות. הערכים המותרים הם:

    • file-stripe-level-balanced
    • file-stripe-level-max
    • file-stripe-level-min

    פרטים נוספים מופיעים במאמר בנושא שיקולי ביצועים.

  • directory-stripe-level מגדיר את רמת הפסים בספריות. הערכים המותרים הם:

    • directory-stripe-level-balanced
    • directory-stripe-level-max
    • directory-stripe-level-min

    פרטים נוספים מופיעים במאמר בנושא שיקולי ביצועים.

  • mountLocality: הפעלת מצב ההרכבה המקומי של הצומת להקצאה דינמית. הערכים הנתמכים הם node או pod. ערך ברירת המחדל הוא pod. אם מציינים את node, אפשר להשתמש גם באפשרויות הבאות:

    • dfuseCPURequest: בקשת ה-CPU לתהליך dfuse. ערך ברירת המחדל הוא 250m.
    • dfuseMemoryRequest: בקשת הזיכרון לתהליך dfuse. ערך ברירת המחדל הוא 512Mi.
    • dfuseCPULimit: מגבלת ה-CPU לתהליך dfuse. ברירת המחדל היא לא מוגדר.
    • dfuseMemoryLimit: מגבלת הזיכרון לתהליך dfuse. ערך ברירת המחדל הוא 10Gi.
  • allowedTopologies: מציין את האזור שבו ייצור את מופע Parallelstore. אם לא מציינים את השדה הזה, המכונה נוצרת באותו אזור שבו נפרס מנהל ההתקן של CSI, עם מצב של immediate קשירת נפח.

  • volumeBindingMode: מציין את מצב בחירת הטופולוגיה. במצב immediate נעשה שימוש בערך שצוין ב-allowedTopologies. במצב waitForFirstConsumer, הטופולוגיה מוקצית לאזור שבו מתוזמן ה-Pod של GKE. כתוצאה מכך, יכול להיות שפודים ייחסמו בזמן ההמתנה להקצאת נפח אחסון.

  • mountOptions: מציין את אפשרויות הטעינה של dfuse ואת פרמטרים של ליבת המערכת, כולל read_ahead_kb ו-max_ratio. נפחי אחסון מתמיד שמגובים על ידי מופע Parallelstore מקבלים בירושה את הערכים האלה בשדה .spec.mountOptions של נפח האחסון המתמיד.

    האפשרויות הן:

    • disable-caching: השבתה של כל השמירה במטמון. כברירת מחדל, שמירת כל הנתונים במטמון (חוץ ממטמון של כתיבה חוזרת) מופעלת כשמפעילים מופע Parallelstore ב-GKE.
    • enable-wb-cache: שימוש במטמון write-back במקום במטמון write-through.
    • thread-count: מספר השרשורים לשימוש. הערך הזה הוא הסכום של מספר השרשורים של FUSE ומספר תורי האירועים.
    • eq-count: מספר תורי האירועים לשימוש.
    • read_ahead_kb: גודל חלון הקריאה מראש בקילובייט.
    • max_ratio: מאפשר להגביל מכשיר מסוים כך שלא ישתמש ביותר מהאחוז הנתון של מטמון הכתיבה.

    מידע על האפשרויות האלה זמין במאמר בנושא שיקולים לגבי ביצועים.

נפח אחסון מתמיד (Persistent Volume)

המניפסט הבא כולל את כל השדות הנתמכים ב-PersistentVolume.

apiVersion: v1
kind: PersistentVolume
metadata:
  name: parallelstore-pv
  annotations:
    pv.kubernetes.io/provisioned-by: parallelstore.csi.storage.gke.io
spec:
  storageClassName: parallelstore-csi-sc
  capacity:
    storage: INSTANCE_SIZE # 12Ti
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain # or "Delete"
  volumeMode: Filesystem
  mountOptions:
    - DFUSE_MOUNT_OPTIONS # disable-caching, enable-wb-cache, thread-count, eq-count, read_ahead_kb, max_ratio
  csi:
    driver: parallelstore.csi.storage.gke.io
    volumeHandle: PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container
    volumeAttributes:
      accessPoints: ACCESS_POINTS # comma-separated list of IP addresses
      network: VPC_NETWORK # optional
      mountLocality: MOUNT_LOCALITY # optional
      dfuseCPURequest: DFUSE_CPU_REQUEST # optional
      dfuseMemoryRequest: DFUSE_MEMORY_REQUEST # optional
      dfuseCPULimit: DFUSE_CPU_LIMIT # optional
      dfuseMemoryLimit: DFUSE_MEMORY_LIMIT # optional
  • capacity: הקיבולת של מופע Parallelstore. חייב להיות אחד מהערכים הבאים: 12Ti, 16Ti או 20Ti.
  • mountOptions: קבלה בירושה מהשדה mountOptions ב-StorageClass.
  • csi.volumeHandle: מזהה בלעדי של מופע Parallelstore. הפורמט הנדרש הוא: PROJECT_ID/LOCATION/INSTANCE_NAME/default-pool/default-container
  • csi.volumeAttributes.accessPoints: רשימה של כתובות IP של צמתי שרת Parallelstore, מופרדות בפסיקים.
  • csi.volumeAttributes.network: רשת ה-VPC של מכונת Parallelstore, שצריכה להיות זהה לרשת של אשכול GKE. השדה הזה משמש כדי לוודא שמופע Parallelstore שסופק נמצא ברשת תקפה לפני שמנהל התקן CSI מטמיע אותו.
  • csi.volumeAttributes.mountLocality: הפעלת מצב ההרכבה המקומי של הצומת להקצאה דינמית. הערכים הנתמכים הם node או pod. ערך ברירת המחדל הוא pod. אם מציינים את node, אפשר להשתמש גם באפשרויות הבאות:

    • csi.volumeAttributes.dfuseCPURequest: בקשת ה-CPU לתהליך dfuse. ערך ברירת המחדל הוא 250m.
    • csi.volumeAttributes.dfuseMemoryRequest: בקשת הזיכרון לתהליך dfuse. ערך ברירת המחדל הוא 512Mi.
    • csi.volumeAttributes.dfuseCPULimit: מגבלת ה-CPU לתהליך dfuse. ברירת המחדל היא לא מוגדר.
    • csi.volumeAttributes.dfuseMemoryLimit: מגבלת הזיכרון לתהליך dfuse. ערך ברירת המחדל הוא 10Gi.