הגדרת נפחי אחסון מסוג 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 היא הנתיב שבו אמור להתבצע המאונט של אמצעי האחסון באפליקציה.

  • (אופציונלי) "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 (קריאה וכתיבה).