Single Network Multicluster Deployments
Describes how to deploy a multicluster service mesh on a flat network.
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:
Replicated control planes provides information on connecting clusters through gateways.
Shared control planes provides information on adding remote clusters on other networks.
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.
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.
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.
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 Variable | Description |
---|---|
ISTIO | The top-level directory of the Istio installation. |
CLUSTER_1 | The name of the first cluster. The guide uses cluster1 . |
CLUSTER_2 | The name of the second cluster. Must be different from the value in
CLUSTER_1 . The guide uses cluster2 . |
CTX_1 | The path to the Kubernetes context file for the first cluster. |
CTX_2 | The path to the Kubernetes context file for the second cluster. |
NETWORK_1 | The name of the first network. The guide uses network1 . |
MESH | The common mesh ID to use for all clusters in the mesh, for example sample-mesh. |
DISCOVERY_ADDRESS | Stores the IP address of the Istio ingress gateway of your first cluster,
Cluster_1 . |
To continue, pick from the following options:
Describes how to deploy a multicluster service mesh on a flat network.
Configure an Istio mesh spanning multiple Kubernetes clusters.