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