Kf admite el montaje de volúmenes NFS mediante kf marketplace
.
Requisitos previos
Crear una instancia de servicio NFS
Ejecuta kf marketplace
para ver los servicios disponibles. El servicio NFS integrado aparece en la lista si NFS está habilitado en la plataforma.
Broker Name Namespace Description
nfsvolumebroker nfs mount nfs shares
Montar un sistema de archivos externo
Crear una instancia de servicio
Para montar un servicio NFS ya creado, sigue estos pasos:
kf create-service nfs existing SERVICE-INSTANCE-NAME -c '{"share":"SERVER/SHARE", "capacity":"CAPACITY"}'
Sustituye las variables por tus valores.
- SERVICE-INSTANCE-NAME es el nombre que quieres asignar a esta instancia de servicio de volumen NFS.
- SERVER/SHARE es la dirección NFS de tu servidor y recurso compartido.
- CAPACITY usa el formato cantidad de Kubernetes.
Confirma que el servicio de volumen NFS aparece en tu lista de servicios. Verás un resultado similar al de 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>
...
Vincular una instancia de servicio a una aplicación
Para vincular una instancia de servicio NFS a una aplicación, ejecuta el siguiente comando:
kf bind-service YOUR-APP-NAME SERVICE-NAME -c '{"uid":"2000","gid":"2000","mount":"MOUNT-PATH","readonly":true}'
Sustituye las variables por tus valores.
YOUR-APP-NAME es el nombre de la aplicación para la que quieres usar el servicio de volumen.
SERVICE-NAME es el nombre de la instancia del servicio de volúmenes que has creado en el paso anterior.
uid
:UID ygid
:GID especifican los permisos de directorio del recurso compartido de montaje.MOUNT-PATH es la ruta en la que se debe montar el volumen en tu aplicación.
(Opcional)
"readonly":true
es una cadena JSON opcional que crea un montaje de solo lectura. De forma predeterminada, Volume Services monta un sistema de archivos de lectura y escritura.
Puedes enumerar todas las vinculaciones de un espacio con el comando kf bindings
. Verá 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
...
Acceder al servicio de volumen desde tu aplicación
Para acceder al servicio de volumen desde tu aplicación, 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 muestran en las variables de entorno de tu aplicación.
Consulta las variables de entorno de tu aplicación.
kf vcap-services YOUR-APP-NAME
Sustituye YOUR-APP-NAME por el nombre de tu aplicación.
A continuación, se muestra un ejemplo del resultado 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 de volume_mounts
para cualquier información que requiera tu aplicación.
Propiedad | Descripción |
---|---|
container_dir |
Cadena que contiene la ruta al volumen montado que has vinculado a tu aplicación. |
device_type |
La versión del volumen NFS. Actualmente, solo se admiten dispositivos compartidos. Un dispositivo compartido representa un sistema de archivos distribuido que se puede montar en todas las instancias de la aplicación simultáneamente. |
mode |
Cadena que informa del tipo de acceso que tiene tu aplicación a NFS, ya sea ro (solo lectura) o rw (lectura y escritura). |