Kf 支援使用 kf marketplace
掛接 NFS 磁碟區。
必要條件
建立 NFS 服務執行個體
執行 kf marketplace
即可查看可用的服務。如果平台已啟用 NFS,內建的 NFS 服務就會顯示在清單中。
Broker Name Namespace Description
nfsvolumebroker nfs mount nfs shares
掛接外部檔案系統
建立服務執行個體
如要掛接至現有 NFS 服務,請按照下列步驟操作:
kf create-service nfs existing SERVICE-INSTANCE-NAME -c '{"share":"SERVER/SHARE", "capacity":"CAPACITY"}'
將變數替換為您的值。
- SERVICE-INSTANCE-NAME 是您想為這個 NFS 磁碟區服務執行個體指定的名稱。
- SERVER/SHARE 是伺服器和共用區的 NFS 位址。
- CAPACITY 採用 Kubernetes 數量格式。
確認 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
指令列出 Space 中的所有繫結。畫面會顯示類似以下範例的輸出內容:
$ 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
下方的屬性。
屬性 | 說明 |
---|---|
container_dir |
這個字串包含您繫結至應用程式的已掛接磁碟區路徑。 |
device_type |
NFS 磁碟區版本。這項功能目前僅支援共用裝置。共用裝置代表可同時掛接至所有應用程式例項的分散式檔案系統。 |
mode |
字串,說明應用程式對 NFS 的存取權類型,可以是 ro (唯讀) 或 rw (讀取和寫入)。 |