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 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 undgid
: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). |