Introduzione ai volumi NFS

Kf supporta il montaggio dei volumi NFS utilizzando kf marketplace.

Prerequisiti

  1. Completa la configurazione della piattaforma NFS.

Creare un'istanza di servizio NFS

Esegui kf marketplace per visualizzare i servizi disponibili. Il servizio NFS integrato viene visualizzato nell'elenco se NFS è abilitato sulla piattaforma.

Broker           Name  Namespace  Description
nfsvolumebroker  nfs              mount nfs shares

Montare un file system esterno

Creare un'istanza di servizio

Per eseguire il montaggio su un servizio NFS esistente:

kf create-service nfs existing SERVICE-INSTANCE-NAME -c '{"share":"SERVER/SHARE", "capacity":"CAPACITY"}'

Sostituisci le variabili con i tuoi valori.

  • SERVICE-INSTANCE-NAME è il nome che vuoi assegnare a questa istanza di servizio del volume NFS.
  • SERVER/SHARE è l'indirizzo NFS del server e della condivisione.
  • CAPACITY utilizza il formato della quantità di Kubernetes.

Verifica che il servizio del volume NFS venga visualizzato nell'elenco dei servizi. Dovresti visualizzare un output simile a questo esempio:

$ kf services
...
Listing services in Space: demo-space
Name                Type      ClassName         PlanName  Age    Ready  Reason
filestore-nfs       volume    nfs               existing  6s     True   <nil>
...

Associare l'istanza di servizio a un'app

Per associare un'istanza di servizio NFS a un'app, esegui:

kf bind-service YOUR-APP-NAME SERVICE-NAME -c '{"uid":"2000","gid":"2000","mount":"MOUNT-PATH","readonly":true}'

Sostituisci le variabili con i tuoi valori.

  • YOUR-APP-NAME è il nome dell'app per cui vuoi utilizzare il servizio del volume.

  • SERVICE-NAME è il nome dell'istanza di servizio del volume che hai creato nel passaggio precedente.

  • uid:UID e gid:GID specificano le autorizzazioni della directory della condivisione di montaggio.

  • MOUNT-PATH è il percorso in cui il volume deve essere montato all'interno dell'app.

  • (Facoltativo) "readonly":true è una stringa JSON facoltativa che crea un montaggio di sola lettura. Per impostazione predefinita, i servizi del volume montano un file system di lettura/scrittura.

Puoi elencare tutte le associazioni in uno spazio utilizzando il comando kf bindings. Verrà visualizzato un output simile a questo esempio:

$ kf bindings
...
Listing bindings in Space: demo-space
Name                                     App           Service             Age  Ready
binding-spring-music-filestore-nfs       spring-music  filestore-nfs       71s  True
...

Accedere al servizio del volume dall'app

Per accedere al servizio del volume dall'app, devi sapere quale percorso file utilizzare nel codice. Puoi visualizzare il percorso file nei dettagli dell'associazione di servizio, visibili nelle variabili di ambiente per l'app.

Visualizza le variabili di ambiente per l'app.

kf vcap-services YOUR-APP-NAME

Sostituisci YOUR-APP-NAME con il nome dell'app.

Di seguito è riportato un esempio di output 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"
        }
      ]
    }
  ]
}

Utilizza le proprietà in volume_mounts per tutte le informazioni richieste dall'app.

Proprietà Descrizione
container_dir Stringa contenente il percorso del volume montato che hai associato all'app.
device_type La release del volume NFS. Al momento sono supportati solo i dispositivi condivisi. Un dispositivo condiviso rappresenta un file system distribuito che può essere montato contemporaneamente su tutte le istanze dell'app.
mode Stringa che indica il tipo di accesso dell'app a NFS, ro (sola lettura) o rw (lettura e scrittura).