2017-10-02 7 views
1

Ich habe gerade meine Anwendung auf OpenShift Online 3 (ab Version 2) portiert, und jetzt habe ich Mühe zu verstehen, wie man persistente, "geteilte" Daten verwaltet, die nicht gelöscht werden nach jedem Build.So mounten Sie PVC in OpenShift Online 3

Nachdem ich die Dokumentation über persistente Volumenansprüche gelesen habe, habe ich ein neues PVC in meinem Projekt vom Typ RWO mit dem Web-Dashboard erstellt. An diesem Punkt versuchte ich zu verstehen, wie diese Speicher zugreifen aus dem Inneren jeder pod, oder wenn ich etwas tun musste, um es zu montieren, und ich am Ende tun dies:

$ oc volume dc/myapp --add --type=persistentVolumeClaim --claim-name=pvcname --mount-path=/usr/share/data 

Danach sieht es aus wie die neue Konfiguration wurde erfolgreich registriert:

$ oc volume dc --all 
deploymentconfigs/myapp 
    pvc/pvcname (allocated 1GiB) as volume-jh1jf 
    mounted at /usr/share/data 

ich konnte auch die neue /usr/share/data Verzeichnis aus dem Inneren der Schoten sehen geschaffen durch die neue aufbaut.

jedoch nach dieser Änderung begann alle Einsätze mit diesem Fehler Fehler:

Failed to attach volume "pvc-0b747c80-a687-11e7-9eb0-122631632f42" on node "ip-172-31-48-134.ec2.internal" with: Error attaching EBS volume "vol-0008c8127ff0f4617" to instance "i-00195cc4e1d31f8ce": VolumeInUse: vol-0008c8127ff0f4617 is already attached to an instance status code: 400, request id: 722f3797-f486-4739-ab4e-fe1826ae53af. The volume is currently attached to instance "i-089e2a60e525f447c"

, aus dem es meine letzte Änderung der Wirkung des Anbringens des Volumens auf eine bestimmte Instanz hatte aussieht. Aber wie kann ich dann das Volume auf meine Pods laden, so dass es jeden Build überlebt und implementiert?

Antwort

1

Da Sie einen EBS-Volumetyp verwenden, müssen Sie die Bereitstellungsstrategie in der Bereitstellungskonfiguration auf Recreate anstelle von Rolling festlegen. Dies liegt daran, dass ein EBS-Volume jeweils nur auf einem einzelnen Knoten im Cluster bereitgestellt werden kann. Dies bedeutet, dass Sie keine rollierende Bereitstellung verwenden können und Ihre Anwendung nicht über 1 Replikat skalieren muss, da beide zu mehr als einer Instanz führen und nicht garantiert werden können, dass sie auf demselben Knoten bereitgestellt werden.

+0

Das funktioniert, danke! – swahnee

Verwandte Themen