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 à cet exemple :

$ 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 : nom de l'application pour laquelle vous souhaitez utiliser le service de volume.

  • SERVICE-NAME : 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 que vous installez.

  • 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, les services de volume installent un système de fichiers configuré pour un accès 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, lesquels 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 lié à 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).