הגדרת נפחי אחסון מסוג NFS

‫Kf תומך בטעינת נפחי NFS באמצעות kf marketplace.

דרישות מוקדמות

השלמת ההגדרה של פלטפורמת NFS.

יצירת מופע של שירות NFS

מריצים את הפקודה kf marketplace כדי לראות את השירותים הזמינים. שירות ה-NFS המובנה מופיע ברשימה אם NFS מופעל בפלטפורמה.

Broker           Name  Namespace  Description
nfsvolumebroker  nfs              mount nfs shares

טעינת מערכת קבצים חיצונית

יצירת מופע שירות

כדי לבצע Mount לשירות NFS קיים:

kf create-service nfs existing SERVICE-INSTANCE-NAME -c '{"share":"SERVER/SHARE", "capacity":"CAPACITY"}'

מחליפים את המשתנים בערכים שלכם.

  • SERVICE-INSTANCE-NAME הוא השם שרוצים לתת למופע של שירות נפח ה-NFS.
  • SERVER/SHARE היא כתובת ה-NFS של השרת והשיתוף.
  • CAPACITY משתמש בפורמט Kubernetes quantity.

מוודאים ששירות עוצמת הקול של NFS מופיע ברשימת השירותים. הפלט צפוי להיות דומה לדוגמה הבאה:

$ kf services
...
Listing services in Space: demo-space
Name                Type      ClassName         PlanName  Age    Ready  Reason
filestore-nfs       volume    nfs               existing  6s     True   <nil>
...

הכפפת מופע השירות לאפליקציה

כדי לקשר מופע של שירות NFS לאפליקציה, מריצים את הפקודה:

kf bind-service YOUR-APP-NAME SERVICE-NAME -c '{"uid":"2000","gid":"2000","mount":"MOUNT-PATH","readonly":true}'

מחליפים את המשתנים בערכים שלכם.

  • YOUR-APP-NAME הוא שם האפליקציה שבה רוצים להשתמש בשירות הנפח.

  • SERVICE-NAME הוא השם של מופע שירות נפח האחסון שיצרתם בשלב הקודם.

  • uid:UID ו-gid:GID מציינים את הרשאות הגישה לספרייה של השיתוף המותקן.

  • MOUNT-PATH הוא הנתיב שבו אמור להיות מותקן אמצעי האחסון באפליקציה.

  • ‫(Optional) ‏"readonly":true היא מחרוזת JSON אופציונלית שיוצרת טעינה לקריאה בלבד. כברירת מחדל, Volume Services (שירותי נפח) מטמיע מערכת קבצים עם גישת קריאה וכתיבה.

אפשר לראות את כל הקישורים במרחב באמצעות הפקודה kf bindings. הפלט ייראה בערך כמו בדוגמה הבאה:

$ kf bindings
...
Listing bindings in Space: demo-space
Name                                     App           Service             Age  Ready
binding-spring-music-filestore-nfs       spring-music  filestore-nfs       71s  True
...

גישה לשירות נפח האחסון מהאפליקציה

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

כדי לראות את משתני הסביבה של האפליקציה:

kf vcap-services YOUR-APP-NAME

מחליפים את YOUR-APP-NAME בשם האפליקציה.

הדוגמה הבאה היא של הפלט שמתקבל מהפקודה kf vcap-services:

kf vcap-services *YOUR-APP-NAME*
{
  "nfs": [
    {
      "instance_name": "nfs-instance",
      "name": "nfs-instance",
      "label": "nfs",
      "tags": [],
      "plan": "existing",
      "credentials": {
        "capacity": "1Gi",
        "gid": 2000,
        "mount": "/test/mount",
        "share": "10.91.208.210/test",
        "uid": 2000
      },
      "volume_mounts": [
        {
          "container_dir": "/test/mount",
          "device_type": "shared",
          "mode": "rw"
        }
      ]
    }
  ]
}

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

מאפיין (property) תיאור
container_dir מחרוזת שמכילה את הנתיב לכונן המותקן שקשרתם לאפליקציה.
device_type הפצת נפח אחסון NFS. בשלב הזה, האפשרות הזו תומכת רק במכשירים משותפים. מכשיר משותף מייצג מערכת קבצים מבוזרת שאפשר להרכיב על כל המופעים של האפליקציה בו-זמנית.
mode מחרוזת שמציינת את סוג הגישה שיש לאפליקציה ל-NFS, ‏ro (קריאה בלבד) או rw (קריאה וכתיבה).