<p>Let's say I have <em>baremetal servers</em> at <strong>New York, London, Delhi, Beijing.</strong> My requirement is to join all the 4 baremetal servers in a distributed environment and run services on top of kubernetes. <strong><em>How do I achieve this ?</em></strong></p>

<p>Question is too broad but here's my take with insights on a global datastore:</p>

<p>Option 1: Setup a K8s cluster for each region and have them talk to each other through services. Have each talk to their own datastores, and keep data separate per region an use something like <a href="https://docs.citrix.com/en-us/netscaler/11-1/gslb/how-gslb-works.html" rel="nofollow noreferrer">GSLB</a> to route your traffic.</p>

<p>Option 2. Setup a K8s cluster for each region and use a global database like <a href="https://aws.amazon.com/dynamodb/global-tables/" rel="nofollow noreferrer">Dynamdb Global Tables</a>, <a href="https://cloud.google.com/spanner/" rel="nofollow noreferrer">Cloud Spanner</a> or <a href="https://azure.microsoft.com/en-us/free/cosmos-db/" rel="nofollow noreferrer">CosmosDB</a>.</p>

<p>Option 3. Use <a href="https://kubernetes.io/docs/concepts/cluster-administration/federation/" rel="nofollow noreferrer">Kubernetes Federation</a>. Federation doesn't necessarily solve the multi-region data store challenge, and it's also in Beta as of this writing. However, it will help manage your Kubernetes services across multiple regions.</p>

<p>Option 4. Something else, that you create on your own, fun! fun!</p>
