Kubernetes cluster spread over multiple regions

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!!

1 Like