Configurer des volumes NFS

Kf permet d'installer des volumes NFS avec kf marketplace.

Prérequis

Terminer la configuration de la plate-forme NFS

Créer une instance de service NFS

Exécutez kf marketplace pour afficher les services disponibles. Le service NFS intégré apparaît dans la liste si NFS est activé sur la plate-forme.

Broker           Name  Namespace  Description
nfsvolumebroker  nfs              mount nfs shares

Installer un système de fichiers externe

Créer une instance de service

Pour l'installer sur un service NFS existant, procédez comme suit :

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

Remplacez les variables par vos valeurs.

  • SERVICE-INSTANCE-NAME est le nom souhaité pour cette instance de service de volume NFS.
  • SERVER/SHARE est l'adresse NFS de votre serveur et de votre partage.
  • CAPACITY utilise le format de quantité Kubernetes.

Vérifiez que le service de volume NFS apparaît dans votre liste de services. Vous pouvez vous attendre à un résultat semblable à celui-ci :

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

Lier votre instance de service à une application

Pour lier une instance de service NFS à une application, exécutez la commande suivante :

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

Remplacez les variables par vos valeurs.

  • YOUR-APP-NAME correspond au nom de l'application pour laquelle vous souhaitez utiliser le service de volume.

  • SERVICE-NAME est le nom de l'instance de service de volume que vous avez créée à l'étape précédente.

  • uid:UID et gid:GID spécifient les autorisations de répertoire du partage d'installation.

  • MOUNT-PATH est le chemin d'installation du volume dans votre application.

  • (Facultatif) "readonly":true est une chaîne JSON facultative qui crée une installation en lecture seule. Par défaut, Volume Services installe un système de fichiers en lecture/écriture.

Vous pouvez regrouper toutes les liaisons dans un espace à l'aide de la commande kf bindings. Vous obtenez un résultat qui ressemble à l'exemple suivant :

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

Accéder au service de volume depuis votre application

Pour accéder au service de volume à partir de votre application, vous devez savoir quel chemin d'accès de fichier utiliser dans votre code. Vous pouvez afficher ce chemin d'accès dans les détails de la liaison de service, qui sont visibles dans les variables d'environnement de votre application.

Affichez les variables d'environnement pour votre application :

kf vcap-services YOUR-APP-NAME

Remplacez YOUR-APP-NAME par le nom de votre application.

Voici un exemple de résultat de la commande 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"
        }
      ]
    }
  ]
}

Utilisez les propriétés sous volume_mounts pour les informations requises par votre application.

Propriété Description
container_dir Chaîne contenant le chemin d'accès au volume installé que vous avez associé à votre application.
device_type Version du volume NFS. Actuellement, seuls les appareils partagés sont compatibles. Un appareil partagé représente un système de fichiers distribué pouvant être installé simultanément sur toutes les instances de l'application.
mode Chaîne qui indique le type d'accès de votre application à NFS : ro (lecture seule) ou rw (lecture et écriture).