Skip to content

Commit 86c3dd0

Browse files
[D&M] Remote clusters cleanup (#443)
^^ - There's room for merging more things together later but this does a minimal cleanup and alignment between what the various files say. - Also moved API key tabs to display 1st because the Certificate model is deprecated - Cleaned up references to Elasticsearch service, some became ecloud, some became ech - I intentionally left mentions of some things that are pre-9.0 because in a cloud context, users can still run older versions of the stack, and if we remove them, they'll be documented nowhere since the cloud docs are unversionned. - Might have to revisit applies tags once we have the final implementation in hands Closes: elastic/docs-projects#345 --------- Co-authored-by: shainaraskas <[email protected]> Co-authored-by: shainaraskas <[email protected]>
1 parent 9e85b82 commit 86c3dd0

29 files changed

+1356
-1981
lines changed

deploy-manage/remote-clusters.md

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,40 @@
1-
# Remote clusters
1+
---
2+
applies_to:
3+
deployment:
4+
ece: ga
5+
eck: ga
6+
ess: ga
7+
self: ga
8+
serverless: unavailable
9+
---
210

3-
% What needs to be done: Write from scratch
11+
# Remote clusters [remote-clusters]
412

5-
% GitHub issue: https://github.com/elastic/docs-projects/issues/345
13+
By setting up **remote clusters**, you can connect an {{es}} cluster to other {{es}} clusters. Remote clusters can be located in different data centers, geographic regions, and run on a different type of environment: {{ech}}, {{ece}}, {{eck}}, or self-managed.
614

7-
% Scope notes: "Landing page for cross cluster comms, used by CCS and CCR.
8-
We will cover here the raw configuration at Elasticsearch level and the docs to enable remote clusters in ESS / ECE / ECK.
9-
We can include links to the use cases of remote clusters, such as CCR and CCS."
15+
Remote clusters are especially useful in two cases:
16+
17+
- **Cross-cluster replication**
18+
With [cross-cluster replication](/deploy-manage/tools/cross-cluster-replication.md), or CCR, you ingest data to an index on a remote cluster. This leader index is replicated to one or more read-only follower indices on your local cluster. Creating a multi-cluster architecture with cross-cluster replication enables you to configure disaster recovery, bring data closer to your users, or establish a centralized reporting cluster to process reports locally.
19+
20+
- **Cross-cluster search**
21+
[Cross-cluster search](/solutions/search/cross-cluster-search.md), or CCS, enables you to run a search request against one or more remote clusters. This capability provides each region with a global view of all clusters, allowing you to send a search request from a local cluster and return results from all connected remote clusters. For full {{ccs}} capabilities, the local and remote cluster must be on the same [subscription level](https://www.elastic.co/subscriptions).
22+
23+
::::{note} about terminology
24+
In the case of remote clusters, the {{es}} cluster or deployment initiating the connection and requests is often referred to as the **local cluster**, while the {{es}} cluster or deployment receiving the requests is referred to as the **remote cluster**.
25+
::::
26+
27+
## Setup
28+
29+
Depending on the environment the local and remote clusters are deployed on and the security model you wish to use, the exact details needed to add a remote cluster vary but generally follow the same path:
30+
31+
1. **Configure trust between clusters.** In the settings of the local deployment or cluster, configure the trust security model that your remote connections will use to access the remote cluster. This step involves specifying API keys or certificates retrieved from the remote clusters.
32+
33+
2. **Establish the connection.** In {{kib}} on the local cluster, finalize the connection by specifying each remote cluster's details.
34+
35+
Find the instructions with details on the supported security models and available connection modes for your specific scenario:
36+
37+
- [Remote clusters with {{ech}}](remote-clusters/ec-enable-ccs.md)
38+
- [Remote clusters with {{ece}}](remote-clusters/ece-enable-ccs.md)
39+
- [Remote clusters with {{eck}}](remote-clusters/eck-remote-clusters.md)
40+
- [Remote clusters with self-managed installations](remote-clusters/remote-clusters-self-managed.md)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
:::::{dropdown} Version compatibility table
2+
3+
* Any node can communicate with another node on the same major version. For example, 9.0 can talk to any 9.x node.
4+
* Version compatibility is symmetric, meaning that if 7.16 can communicate with 8.0, 8.0 can also communicate with 7.16. The following table depicts version compatibility between local and remote nodes.
5+
6+
| | |
7+
| --- | --- |
8+
| | Local cluster |
9+
| Remote cluster | 5.0–5.5 | 5.6 | 6.0–6.6 | 6.7 | 6.8 | 7.0 | 7.1–7.16 | 7.17 | 8.0–9.0 |
10+
| 5.0–5.5 | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") |
11+
| 5.6 | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") |
12+
| 6.0–6.6 | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") |
13+
| 6.7 | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") |
14+
| 6.8 | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") |
15+
| 7.0 | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") |
16+
| 7.1–7.16 | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") |
17+
| 7.17 | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") |
18+
| 8.0–9.0 | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![No](https://doc-icons.s3.us-east-2.amazonaws.com/icon-no.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") | ![Yes](https://doc-icons.s3.us-east-2.amazonaws.com/icon-yes.png "") |
19+
20+
21+
::::{important}
22+
Elastic only supports {{ccs}} on a subset of these configurations. See [Supported {{ccs}} configurations](../../../solutions/search/cross-cluster-search.md#ccs-supported-configurations).
23+
::::
24+
25+
:::::
26+
27+
Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
---
2+
applies_to:
3+
deployment:
4+
ess: ga
25
mapped_pages:
36
- https://www.elastic.co/guide/en/cloud/current/ec-edit-remove-trusted-environment.html
47
---
@@ -12,7 +15,7 @@ From a deployment’s **Security** page, you can manage trusted environments tha
1215
* You want to remove or update the access level granted by a cross-cluster API key.
1316

1417

15-
## Remove a trusted environment [ec_remove_a_trusted_environment]
18+
## Remove a certificate-based trusted environment [ec_remove_a_trusted_environment]
1619

1720
By removing a trusted environment, this deployment will no longer be able to establish remote connections using certificate trust to clusters of that environment. The remote environment will also no longer be able to connect to this deployment using certificate trust.
1821

@@ -25,11 +28,11 @@ With this method, you can only remove trusted environments relying exclusively o
2528
2. In the list of trusted environments, locate the one you want to remove.
2629
3. Remove it using the corresponding `delete` icon.
2730

28-
:::{image} ../../images/cloud-delete-trust-environment.png
29-
:alt: button for deleting a trusted environment
30-
:::
31+
:::{image} ../../images/cloud-delete-trust-environment.png
32+
:alt: button for deleting a trusted environment
33+
:::
3134

32-
4. In Kibana, go to **Stack Management** > **Remote Clusters**.
35+
4. In {{kib}}, go to **Stack Management** > **Remote Clusters**.
3336
5. In the list of existing remote clusters, delete the ones corresponding to the trusted environment you removed earlier.
3437

3538

@@ -39,14 +42,14 @@ With this method, you can only remove trusted environments relying exclusively o
3942
2. In the list of trusted environments, locate the one you want to edit.
4043
3. Open its details by selecting the `Edit` icon.
4144

42-
:::{image} ../../images/cloud-edit-trust-environment.png
43-
:alt: button for editing a trusted environment
44-
:::
45+
:::{image} ../../images/cloud-edit-trust-environment.png
46+
:alt: button for editing a trusted environment
47+
:::
4548

4649
4. Edit the trust configuration for that environment:
4750

48-
* From the **Trust level** tab, you can add or remove trusted deployments.
49-
* From the **Environment settings** tab, you can manage the certificates and the label of the environment.
51+
* From the **Trust level** tab, you can add or remove trusted deployments.
52+
* From the **Environment settings** tab, you can manage the certificates and the label of the environment.
5053

5154
5. Save your changes.
5255

@@ -56,28 +59,26 @@ With this method, you can only remove trusted environments relying exclusively o
5659
This section describes the steps to change the API key used for an existing remote connection. For example, if the previous key expired and you need to rotate it with a new one.
5760

5861
::::{note}
59-
If you need to update the permissions granted by a cross-cluster API key for a remote connection, you only need to update the privileges granted by the API key directly in Kibana.
62+
If you need to update the permissions granted by a cross-cluster API key for a remote connection, you only need to update the privileges granted by the API key directly in {{kib}}.
6063
::::
6164

6265

63-
1. On the deployment you will use as remote, use the [{{es}} API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-create-cross-cluster-api-key) or [Kibana](../api-keys/elasticsearch-api-keys.md) to create a cross-cluster API key with the appropriate permissions. Configure it with access to the indices you want to use for {{ccs}} or {{ccr}}.
66+
1. On the deployment you will use as remote, use the [{{es}} API](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-create-cross-cluster-api-key) or [{{kib}}](../api-keys/elasticsearch-api-keys.md) to create a cross-cluster API key with the appropriate permissions. Configure it with access to the indices you want to use for {{ccs}} or {{ccr}}.
6467
2. Copy the encoded key (`encoded` in the response) to a safe location. You will need it in the next steps.
6568
3. Go to the **Security** page of the local deployment and locate the **Remote connections** section.
6669
4. Locate the API key currently used for connecting to the remote cluster, copy its current alias, and delete it.
6770
5. Add the new API key by selecting **Add an API key**.
6871

6972
* For the **Setting name**, enter the same alias that was used for the previous key.
7073

71-
::::{note}
72-
If you use a different alias, you also need to re-create the remote cluster in Kibana with a **Name** that matches the new alias.
73-
::::
74+
::::{note}
75+
If you use a different alias, you also need to re-create the remote cluster in {{kib}} with a **Name** that matches the new alias.
76+
::::
7477

75-
* For the **Secret**, paste the encoded cross-cluster API key.
78+
* For the **Secret**, paste the encoded cross-cluster API key, then click **Add** to save the API key to the keystore.
7679

77-
1. Click **Add** to save the API key to the keystore.
80+
6. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment’s main page (named after your deployment’s name), locate the **Actions** menu, and select **Restart {{es}}**.<br>
7881

79-
6. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment’s main page (named after your deployment’s name), locate the **Actions** menu, and select **Restart Elasticsearch**.<br>
80-
81-
::::{note}
82-
If the local deployment runs on version 8.13 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.
83-
::::
82+
::::{note}
83+
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.
84+
::::

deploy-manage/remote-clusters/ec-enable-ccs-for-eck.md

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
---
2+
applies_to:
3+
deployment:
4+
ess: ga
5+
eck: ga
6+
navigation_title: With {{eck}}
27
mapped_pages:
38
- https://www.elastic.co/guide/en/cloud/current/ec-enable-ccs-for-eck.html
49
---
510

6-
# Enabling CCS/R between Elasticsearch Service and ECK [ec-enable-ccs-for-eck]
11+
# Remote clusters between {{ech}} and ECK [ec-enable-ccs-for-eck]
712

8-
These steps describe how to configure remote clusters between an {{es}} cluster in Elasticsearch Service and an {{es}} cluster running within [Elastic Cloud on Kubernetes (ECK)](/deploy-manage/deploy/cloud-on-k8s.md). Once that’s done, you’ll be able to [run CCS queries from {{es}}](/solutions/search/cross-cluster-search.md) or [set up CCR](/deploy-manage/tools/cross-cluster-replication/set-up-cross-cluster-replication.md).
13+
These steps describe how to configure remote clusters between an {{es}} cluster in {{ech}} and an {{es}} cluster running within [{{eck}} (ECK)](/deploy-manage/deploy/cloud-on-k8s.md). Once that’s done, you’ll be able to [run CCS queries from {{es}}](/solutions/search/cross-cluster-search.md) or [set up CCR](/deploy-manage/tools/cross-cluster-replication/set-up-cross-cluster-replication.md).
914

1015

1116
## Establish trust between two clusters [ec_establish_trust_between_two_clusters]
1217

1318
The first step is to establish trust between the two clusters.
1419

1520

16-
### Establish trust in the Elasticsearch Service cluster [ec_establish_trust_in_the_elasticsearch_service_cluster]
21+
### Establish trust in the {{ech}} cluster [ec_establish_trust_in_the_elasticsearch_service_cluster]
1722

1823
1. Save the ECK CA certificate to a file. For a cluster named `quickstart`, run:
1924

@@ -22,7 +27,7 @@ The first step is to establish trust between the two clusters.
2227
```
2328

2429

25-
1. Update the trust settings for the Elasticsearch Service deployment. Follow the steps provided in [Access clusters of a self-managed environment](ec-remote-cluster-self-managed.md), and specifically the first three steps in **Specify the deployments trusted to be used as remote clusters** using TLS certificate as security model.
30+
1. Update the trust settings for the {{ech}} deployment. Follow the steps provided in [Access clusters of a self-managed environment](ec-remote-cluster-self-managed.md), and specifically the first three steps in **Specify the deployments trusted to be used as remote clusters** using TLS certificate as security model.
2631

2732
* Use the certificate file saved in the first step.
2833
* Select the {{ecloud}} pattern and enter `default.es.local` for the `Scope ID`.
@@ -32,7 +37,7 @@ The first step is to establish trust between the two clusters.
3237

3338
### Establish trust in the ECK cluster [ec_establish_trust_in_the_eck_cluster]
3439

35-
1. Upload the Elasticsearch Service certificate (that you downloaded in the last step of the previous section) as a Kubernetes secret.
40+
1. Upload the {{ech}} certificate (that you downloaded in the last step of the previous section) as a Kubernetes secret.
3641

3742
```sh
3843
kubectl create secret generic ce-aws-cert --from-file=<path to certificate file>
@@ -73,16 +78,16 @@ The first step is to establish trust between the two clusters.
7378

7479

7580

76-
## Setup CCS/R [ec_setup_ccsr]
81+
## Set up CCS/R [ec_setup_ccsr]
7782

78-
Now that trust has been established, you can set up CCS/R from the ECK cluster to the Elasticsearch Service cluster or from the Elasticsearch Service cluster to the ECK cluster.
83+
Now that trust has been established, you can set up CCS/R from the ECK cluster to the {{ech}} cluster or from the {{ech}} cluster to the ECK cluster.
7984

8085

81-
### ECK Cluster to Elasticsearch Service cluster [ec_eck_cluster_to_elasticsearch_service_cluster]
86+
### ECK Cluster to {{ech}} cluster [ec_eck_cluster_to_elasticsearch_service_cluster]
8287

8388
Configure the ECK cluster [using certificate based authentication](ec-remote-cluster-self-managed.md).
8489

8590

86-
### Elasticsearch Service cluster to ECK Cluster [ec_elasticsearch_service_cluster_to_eck_cluster]
91+
### {{ech}} cluster to ECK Cluster [ec_elasticsearch_service_cluster_to_eck_cluster]
8792

8893
Follow the steps outlined in the [ECK documentation](/deploy-manage/remote-clusters/eck-remote-clusters.md#k8s_configure_the_remote_cluster_connection_through_the_elasticsearch_rest_api).

0 commit comments

Comments
 (0)