To create a multi-Kubernetes-cluster deployment, you can:
Deploy a MongoDBMultiCluster Resource on each of the member clusters. This allows you to set different settings for the replica set resource, such as overrides for statefulSet configuration.
Both methods of creating a multi-Kubernetes-cluster deployment rely on the following services, tools, and their documentation:
Kubernetes clusters. The procedures use GKE (Google Kubernetes Engine) to provision multiple Kubernetes clusters. Each Kubernetes member cluster hosts a MongoDB replica set deployment and represents a data center that serves your application.
MongoDB Enterprise Kubernetes Operator repository with configuration files that the Kubernetes Operator needs to deploy a Kubernetes cluster.
MongoDB Helm Charts for Kubernetes with charts for multi-Kubernetes-cluster deployments.
Istio service mesh. The quick start procedure uses Istio to facilitate DNS resolution for MongoDB replica sets deployed in different Kubernetes clusters. You can use another service mesh solution as long as you ensure that cross-cluster service FQDNs are resolvable.
In addition, we offer the install_istio_separate_network example script. This script is based on Istio documentation and provides an example installation that uses the multi-primary mode on different networks. We don't guarantee the script's maintenance with future Istio releases. If you choose to use the script, review the latest Istio documentation for installing a multicluster, and, if necessary, adjust the script to match the documentation and your deployment. If you use another service mesh solution, create your own script for configuring separate networks to facilitate DNS resolution.