consul/website/content/docs/connect/cluster-peering/index.mdx

52 lines
3.8 KiB
Plaintext
Raw Normal View History

2022-06-13 17:58:16 +00:00
---
layout: docs
2022-09-16 15:28:32 +00:00
page_title: Service Mesh - What is Cluster Peering?
description: >-
2022-09-16 15:28:32 +00:00
Cluster peering establishes communication between independent clusters in Consul, allowing services to interact across datacenters. Learn about the cluster peering process, differences with WAN federation for multi-datacenter deployments, and technical constraints.
2022-06-13 17:58:16 +00:00
---
# What is Cluster Peering?
2022-06-13 18:31:13 +00:00
You can create peering connections between two or more independent clusters so that services deployed to different partitions or datacenters can communicate.
2022-06-13 18:31:13 +00:00
## Overview
2022-09-28 18:57:04 +00:00
Cluster peering is a process that allows Consul clusters to communicate with each other. The cluster peering process consists of the following steps:
1. Create a peering token in one cluster.
1. Use the peering token to establish peering with a second cluster.
1. Export services between clusters.
1. Create intentions to authorize services for peers.
2022-06-13 18:31:13 +00:00
This process establishes cluster peering between two [admin partitions](/docs/enterprise/admin-partitions). Deployments without an Enterprise license can still use cluster peering because every datacenter automatically includes a `default` partition.
2022-09-28 21:03:32 +00:00
For detailed instructions on establishing cluster peering connections, refer to [Create and Manage Peering Connections](/docs/connect/cluster-peering/create-manage-peering).
2022-06-13 18:31:13 +00:00
2022-10-03 19:08:57 +00:00
> To learn how to peer clusters and connect services across peers in AWS Elastic Kubernetes Service (EKS) environments, complete the [Consul Cluster Peering on Kubernetes tutorial](https://learn.hashicorp.com/tutorials/consul/cluster-peering-aws?utm_source=docs).
### Differences between WAN federation and cluster peering
2022-06-13 18:31:13 +00:00
2022-09-28 18:57:04 +00:00
WAN federation and cluster peering are different ways to connect Consul deployments. WAN federation connects multiple datacenters to make them function as if they were a single cluster, while cluster peering treats each datacenter as a separate cluster. As a result, WAN federation requires a primary datacenter to maintain and replicate global states such as ACLs and configuration entries, but cluster peering does not.
2022-06-13 18:31:13 +00:00
Regardless of whether you connect your clusters through WAN federation or cluster peering, human and machine users can use either method to discover services in other clusters or dial them through the service mesh.
2022-06-13 18:31:13 +00:00
| | WAN Federation | Cluster Peering |
| :------------------------------------------------- | :------------: | :-------------: |
| Connects clusters across datacenters | ✅ | ✅ |
| Shares support queries and service endpoints | ✅ | ✅ |
| Connects clusters owned by different operators | ❌ | ✅ |
| Functions without declaring primary datacenter | ❌ | ✅ |
| Replicates exported services for service discovery | ❌ | ✅ |
2022-09-28 18:57:04 +00:00
| Gossip protocol: Requires LAN gossip only | ❌ | ✅ |
| Forwards service requests for service discovery | ✅ | ❌ |
| Shares key/value stores | ✅ | ❌ |
2022-09-28 18:57:04 +00:00
## Important Cluster Peering Constraints
2022-08-02 19:26:20 +00:00
Consider the following technical constraints:
2022-06-13 18:31:13 +00:00
- Services with node, instance, and check definitions totaling more than 50MB cannot be exported to a peer.
- Two admin partitions in the same datacenter cannot be peered. Use [`exported-services`](/docs/connect/config-entries/exported-services#exporting-services-to-peered-clusters) directly.
2022-08-02 21:20:43 +00:00
- The `consul intention` CLI command is not supported. To manage intentions that specify services in peered clusters, use [configuration entries](/docs/connect/config-entries/service-intentions).
- Accessing key/value stores across peers is not supported.