Erste Schritte mit NFS-Volumes

Kf unterstützt das Bereitstellen von NFS-Volumes mit kf marketplace.

Vorbereitung

  1. Vollständige NFS-Plattformeinrichtung.

NFS-Dienstinstanz erstellen

Führen Sie kf marketplace aus, um verfügbare Dienste aufzurufen. Der integrierte NFS-Dienst wird in der Liste angezeigt, wenn NFS auf der Plattform aktiviert ist.

Broker           Name  Namespace  Description
nfsvolumebroker  nfs              mount nfs shares

Externes Dateisystem bereitstellen

Dienstinstanz erstellen

So stellen Sie eine Verbindung zu einem vorhandenen NFS-Dienst her:

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

Ersetzen Sie Variablen durch Ihre Werte.

  • SERVICE-INSTANCE-NAME ist der gewünschte Name für diese NFS-Volume-Dienstinstanz.
  • SERVER/SHARE ist die NFS-Adresse Ihres Servers und Ihre Freigabe.
  • CAPACITY verwendet das Format Kubernetes-Menge.

Prüfen Sie, ob der NFS-Volumedienst in der Liste der Dienste angezeigt wird. Die Ausgabe sollte in etwa so aussehen:

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

Dienstinstanz an eine Anwendung binden

Führen Sie folgenden Befehl aus, um eine NFS-Dienstinstanz an eine Anwendung zu binden:

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

Ersetzen Sie Variablen durch Ihre Werte.

  • YOUR-APP-NAME ist der Name der Anwendung, für die Sie den Volume-Dienst verwenden möchten.

  • SERVICE-NAME ist der Name der Volume-Dienstinstanz, die Sie im vorherigen Schritt erstellt haben.

  • uid:UID und gid:GID geben die Verzeichnisberechtigungen der Bereitstellungsfreigabe an.

  • MOUNT-PATH ist der Pfad, in dem das Volume in Ihrer Anwendung bereitgestellt werden soll.

  • (Optional) "readonly":true ist ein optionaler JSON-String, der eine schreibgeschützte Bereitstellung erstellt. Volume Services stellt standardmäßig ein Lese-/Schreibdateisystem bereit.

Mit dem Befehl kf bindings können Sie alle Bindungen in einem Space auflisten: Die Ausgabe sollte in etwa so aussehen:

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

Volume-Dienst über Ihre Anwendung aufrufen

Für den Zugriff auf den Volume-Dienst über Ihre Anwendung müssen Sie wissen, welchen Dateipfad in Ihrem Code verwendet werden soll. Sie können den Dateipfad in den Details der Dienstbindung aufrufen, die in den Umgebungsvariablen für Ihre Anwendung sichtbar sind.

Sehen Sie sich Umgebungsvariablen für Ihre Anwendung an.

kf vcap-services YOUR-APP-NAME

Ersetzen Sie YOUR-APP-NAME durch den Namen der Anwendung.

Das folgende Beispiel zeigt die Ausgabe des Befehls 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"
        }
      ]
    }
  ]
}

Verwenden Sie die Attribute unter volume_mounts für alle Informationen, die für Ihre Anwendung erforderlich sind.

Attribut Beschreibung
container_dir String, der den Pfad zum bereitgestellten Volume enthält, das Sie an die Anwendung gebunden haben.
device_type NFS-Volume-Release. Derzeit werden nur gemeinsam genutzte Geräte unterstützt. Ein freigegebenes Gerät stellt ein verteiltes Dateisystem dar, das auf allen App-Instanzen gleichzeitig bereitgestellt werden kann.
mode String, der angibt, welche Art von Zugriff Ihre Anwendung auf NFS hat, entweder ro (schreibgeschützt) oder rw (lesen und schreiben).