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 (קריאה וכתיבה). |