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
指令列出聊天室中的所有繫結。您會看到類似以下範例的輸出內容:
$ 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 (讀取和寫入)。 |