Dear Community,
I would like to setup a high available kubernetes cluster that includes nodes at at least 2 geographical locations A and B (mainly for low workloads). I would like some advice on what the best approach would be for such a setup since I read that it is normally recommended to have a cluster of kubernetes clusters instead of 1 cluster spread over multiple regions.
My idea:
- Location A and B are connected with each other over a VPN
- Create a cluster of 5 nodes out of which 3 master nodes and 2 worker nodes.
- Of these 3 master nodes 2 are located at location A and 1 is located at location B.
- Of the 2 worker nodes 1 is located at location A and one at location B
- A contains a database (e.g mariadb, mysql, postresql, etcd) that is replicated to B. As well both read and write can be done on A and B
- A contains a datastore that is replicated to B (Syncthing or maybe Longhorn (minimum 3 nodes ?)).
- Load balancer is located at location C that points to the master nodes also over a VPN connection.
Would such a setup work to run applications (e.g Nextcloud) in HA mode ? That is if location A dies that location B continues to operate ? Or is this not possible and a kubernetes cluster should never be spread over different geographical locations (or a maximum distance for latency ?)
If this is not the approach ? would it then be better to not use kubernetes but replicate an application hosted on location A to location B with mariadb Galera cluster and Syncthing for instance ?
Thank you guys!!