Wie man "Volumen" von Kubernetes nachahmt

Ich bin auf der Suche nach einem Muster, das ermöglicht das teilen von volumes zwischen zwei Behältern auf dem gleichen pod Kubernetes.

Mein use-case ist:
Ich habe eine Ruby on Rails-Anwendung läuft innerhalb eines docker-container.
Die docker-image enthält statischen Elemente in /app/<app-name>/public Verzeichnis, und ich muss Zugriff auf diese assets aus dem nginx-container nebenher laufen in der gleichen pod.

In 'vanilla' Andockfenster ich würde verwendet haben --volumes-from flag für die Freigabe dieses Verzeichnis:

docker run --name app -v /app/<app-dir>/public <app-image>
docker run --volumes-from app nginx

Nach der Lektüre dieses doc: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/volumes.md
Ich habe versucht, diese (nur die relevanten Einträge angezeigt):

spec:
  containers:
    - image: <app-image>
      name: <app-name>
      volumeMounts:
        - mountPath: /app/<app-name>/public
          name: assets
    - image: nginx
      name: nginx
      volumeMounts:
        - mountPath: /var/www/html
          name: assets
          readOnly: true
    volumes:
      - name: assets
        hostPath:
          path: /tmp/assets

Aber:

  • Obwohl /tmp/assets auf dem Knoten vorhanden ist, ist es leer
  • /app/<app-name>/public innerhalb der app-container ist auch leer

Als workaround werde ich versuchen, füllen Sie das freigegebene Verzeichnis, wenn der application-container ist (einfach cp /app/<app-name>/public/* auf freigegebene Ordner), aber ich mag wirklich diese Idee.

Frage:wie zu imitieren --volumes-from im Kubernetes, oder wenn es keine direkte Entsprechung, wie kann ich Dateien von einem Behälter in einen anderen Betrieb in der gleichen pod ?

apiVersion: v1beta3

Client Version: version.Info{Major:"0", Minor:"17", GitVersion:"v0.17.0", GitCommit:"82f8bdac06ddfacf493a9ed0fedc85f5ea62ebd5", GitTreeState:"clean"}
Server Version: version.Info{Major:"0", Minor:"17", GitVersion:"v0.17.0", GitCommit:"82f8bdac06ddfacf493a9ed0fedc85f5ea62ebd5", GitTreeState:"clean"}

InformationsquelleAutor der Frage cthulhu | 2015-05-29

Schreibe einen Kommentar