<p>I am running geth full node <a href="https://github.com/ethereum/go-ethereum/wiki/geth" rel="nofollow noreferrer">https://github.com/ethereum/go-ethereum/wiki/geth</a> on Google Cloud platform on a VM instance. Currently, I have mounted a SSD and write the chain data to it.</p>

<p>I want to now run it on multiple VM instances and use a load balancer for serving the requests made by Dapp. I can do this using a normal load balancer and create VMs and autoscale. However, I have the following questions:</p>

<ol>
<li>SSD seems to be a very important part of blockchain syncing speed. If I simply create VM images and add it for autoscaling, it won't help much because the blockchain will take time to sync.</li>
<li>If I want to run these nodes on kubernetes cluster, what's the best way to use the disk?</li>
</ol>

<p>Take a look at this Kubernetes Engine tutorial which shows you how to run StatefulSets with automatic persistent volume provisioning: <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/stateful-apps" rel="nofollow noreferrer">https://cloud.google.com/kubernetes-engine/docs/how-to/stateful-apps</a></p>

<p>Take a look at this Kubernetes Engine tutorial which shows you how to provision SSD disks <a href="https://cloud.google.com/kubernetes-engine/docs/concepts/persistent-volumes#ssd_persistent_disks" rel="nofollow noreferrer">https://cloud.google.com/kubernetes-engine/docs/concepts/persistent-volumes#ssd_persistent_disks</a> </p>

<p>With these + HorizontalPodAutoscaler, you should be able to create a StatefulSet with auto-scaling and each pod will get its own SSD disk.</p>
