Multicluster Installation

Configure an Istio mesh spanning multiple clusters.

This guide shows you how to deploy a multicluster service mesh.

Familiarity with single cluster deployments is needed before attempting a multicluster deployment.

To deploy a service mesh across multiple networks, go to the following legacy guides:

Before you begin

Choose a deployment model that suits your needs before you build your multicluster deployment. If you already have a single cluster service mesh, you can add clusters that are within the same network to your mesh.

Prerequisites

To successfully deploy a multicluster service mesh, you need to meet the following prerequisites:

  • Your pods and workloads meet Istio’s requirements.

  • Your clusters are using a supported platform.

  • Individual cluster pod CIDR ranges and service CIDR ranges that are unique across the network without any overlap.

  • All pod CIDRs in the same network can route to each other.

Assumptions

This multicluster deployment guide makes the following assumptions:

  • You have a working directory on your system, for example /sample-mesh. The guides refer to the working directory as WORK_DIR, and it provides temporary file storage as needed.

  • The configuration context for each cluster is in the default Kubernetes configuration file. That default is either ~/.kube/config or the value stored in the KUBECONFIG environment variable. Relying on the default allows us to easily switch between clusters.

Set environment variables

To simplify the deployment instructions and use the examples provided, set the following environment variables. If you use your own string values, ensure they are viable as filenames and compatible with Makefiles. Go to the GNU guide for more information.

The guide assumes that the following environment variables are set:

Environment VariableDescription
ISTIOThe top-level directory of the Istio installation.
CLUSTER_1The name of the first cluster. The guide uses cluster1.
CLUSTER_2The name of the second cluster. Must be different from the value in CLUSTER_1. The guide uses cluster2.
CTX_1The path to the Kubernetes context file for the first cluster.
CTX_2The path to the Kubernetes context file for the second cluster.
NETWORK_1The name of the first network. The guide uses network1.
MESHThe common mesh ID to use for all clusters in the mesh, for example sample-mesh.
DISCOVERY_ADDRESSStores the IP address of the Istio ingress gateway of your first cluster, Cluster_1.

To continue, pick from the following options:

Single Network Multicluster Deployments

Describes how to deploy a multicluster service mesh on a flat network.

Legacy Multicluster Installation

Configure an Istio mesh spanning multiple Kubernetes clusters.