NFS-Volumen konfigurieren

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

Vorbereitung

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 die Variablen durch Ihre Werte.

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

Prüfen Sie, ob der NFS-Volume-Dienst 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 den 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 die 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.

  • "readonly":true ist ein optionaler JSON-String, durch den eine schreibgeschützte Bereitstellung erstellt wird. Der Volume-Dienst stellt standardmäßig ein Lese-/Schreibdateisystem bereit.

Mit dem Befehl kf bindings können Sie alle Bindungen in einem Bereich 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, welcher Dateipfad in Ihrem Code verwendet werden soll. Den Dateipfad sehen Sie in den Details der Dienstbindung, die in den Umgebungsvariablen für Ihre Anwendung sichtbar sind.

Rufen Sie die Umgebungsvariablen für Ihre Anwendung auf:

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, um alle Informationen bereitzustellen, 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 Der NFS-Volume-Release. Derzeit werden nur gemeinsam verwendete Geräte unterstützt. Ein gemeinsam verwendetes Gerät stellt ein verteiltes Dateisystem dar, das auf allen Anwendungsinstanzen gleichzeitig bereitgestellt werden kann.
mode String, der angibt, welche Art von Zugriff Ihre Anwendung auf NFS hat, entweder ro (schreibgeschützt) oder rw (Lese- und Schreibzugriff).