Kf תומך בטעינת נפחי NFS באמצעות kf marketplace.
דרישות מוקדמות
יצירת מכונה של שירות 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 (קריאה וכתיבה). |