Longhorn volumes automatically replicate to multiple nodes (configurable) and automatically move to the nodes whose pods need it.
A postgres database running on a single node will experience some downtime during (re)deployments or when moving across nodes, but should be pretty quick depending on the size of the database. For true HA database, CockroachDB is supposed to be compatible with postgres, but I haven't had a chance to play with it.
That's indeed the pain point. Distributing a stateless app is relatively easy. Distributing the shared file system and database over a remote, higher latency, cross-cloud setup is hard.
How are you handling storage? That is the only issue I'm struggling with for a small 3-node deployment.