Kf admite la activación de volúmenes NFS mediante el kf marketplace
.
Requisitos previos
Completa la configuración de la plataforma NFS.
Crea una instancia de servicio de NFS
Ejecuta kf marketplace
para ver los servicios disponibles. El servicio NFS integrado aparecerá en la lista si NFS está habilitado en la plataforma.
Broker Name Namespace Description
nfsvolumebroker nfs mount nfs shares
Activa un sistema de archivos externo
Crea una instancia de servicio
Para activar un servicio NFS existente, sigue estos pasos:
kf create-service nfs existing SERVICE-INSTANCE-NAME -c '{"share":"SERVER/SHARE", "capacity":"CAPACITY"}'
Reemplaza las variables con tus valores.
- SERVICE-INSTANCE-NAME es el nombre que deseas para esta instancia de servicio de volumen de NFS.
- SERVER/SHARE es la dirección NFS del servidor y el archivo compartido.
- CAPACITY usa el formato de cantidad de Kubernetes.
Confirma que el servicio de volumen de NFS aparezca en tu lista de servicios. Puedes esperar un resultado similar a este ejemplo:
$ kf services
...
Listing services in Space: demo-space
Name Type ClassName PlanName Age Ready Reason
filestore-nfs volume nfs existing 6s True <nil>
...
Vincula una instancia de servicio a una app
Para vincular una instancia de servicio NFS a una app, ejecuta el siguiente comando:
kf bind-service YOUR-APP-NAME SERVICE-NAME -c '{"uid":"2000","gid":"2000","mount":"MOUNT-PATH","readonly":true}'
Reemplaza las variables con tus valores.
YOUR-APP-NAME es el nombre de la app para la que deseas usar el servicio de volumen.
SERVICE-NAME es el nombre de la instancia de servicio de volumen que creaste en el paso anterior.
uid
:UID ygid
:GID especifican los permisos de directorio del recurso compartido de activación.MOUNT-PATH es la ruta en la que se debe activar el volumen dentro de la app.
"readonly":true
es una string JSON opcional que crea una activación de solo lectura (opcional). De forma predeterminada, los servicios de volumen activan un sistema de archivos de lectura y escritura.
Puedes enumerar todas las vinculaciones de un espacio con el comando kf bindings
. Verás un resultado similar a este ejemplo:
$ kf bindings
...
Listing bindings in Space: demo-space
Name App Service Age Ready
binding-spring-music-filestore-nfs spring-music filestore-nfs 71s True
...
Accede al servicio de volumen desde tu app
Para acceder al servicio de volumen desde tu app, debes saber qué ruta de archivo usar en tu código. Puedes ver la ruta del archivo en los detalles de la vinculación del servicio, que se pueden ver en las variables de entorno de tu aplicación.
Visualiza las variables de entorno de tu aplicación:
kf vcap-services YOUR-APP-NAME
Reemplaza YOUR-APP-NAME por el nombre de tu conector.
El siguiente es un resultado de ejemplo del comando 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"
}
]
}
]
}
Usa las propiedades que se encuentran en volume_mounts
para cualquier información que requiera la app.
Propiedad | Descripción |
---|---|
container_dir |
String que contiene la ruta de acceso al volumen activado que vinculaste a la app. |
device_type |
La versión del volumen de NFS. Por el momento, solo se admiten dispositivos compartidos. Un dispositivo compartido representa un sistema de archivos distribuido que se puede activar en todas las instancias de la app al mismo tiempo. |
mode |
String que informa qué tipo de acceso tiene la app a NFS, ya sea ro (de solo lectura) o rw (de lectura y escritura). |