<p>I have a system consist of 2 applications: <code>Application 1</code> and <code>Application 2</code>. Fundamentally, those applications are perfectly sync in term of reading\writing from storage.</p>
<h2>System arch:</h2>
<p><a href="https://i.stack.imgur.com/1VfMq.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/1VfMq.png" alt="enter image description here" /></a></p>
<h2>How it working today?</h2>
<p><code>Application 1</code> is downloading a file from the internet and store it on Google Cloud Storage. Than, the URI passed to the shared queue. Once <code>Application 2</code> is ready, it pull the queue message and downloading the URI to the memory and continue the processing.</p>
<h2>What change I want to make?</h2>
<p>I want to replace the Google Cloud Storage with another internal storage system that built-in in Kubernetes. Since my application are perfectly synced, its guaranteed that <code>Application 2</code> will read from the storage only when <code>Application 1</code> already finished the writing.</p>
<p>What kind of Kubernetes storage you recommend to adapt? How to implement it?</p>

No1Lives4Ever
<p>You can use Filestore service offered witihin GCP as a storage solution for Kubernetes app that you will be creating.</p>
<p>The Filestore supports &quot;<code>ReadWriteMany</code>&quot; access for your apps to use. You can see official documentation and implementation via this <a href="https://cloud.google.com/kubernetes-engine/docs/concepts/filestore-for-gke" rel="nofollow noreferrer">link</a>. For additional info about Kubernetes <code>volumeMount</code> and <code>volumeClaims</code> you check this <a href="https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/#mounting-the-same-persistentvolume-in-two-places" rel="nofollow noreferrer">link</a>.</p>
