Primeros pasos con los volúmenes NFS

Kf admite el montaje de volúmenes NFS mediante kf marketplace.

Requisitos previos

  1. Completa la configuración de la plataforma NFS.

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 y gid: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).