我们知道,为了能够实现 CCR 及 CCS,我们必须让集群之间能够互信,这样才可以建立集群之间的连接。在我之前的文章 “Elasticsearch:跨集群搜索 Cross-cluster search(CCS)及安全” 里,我介绍了一种方法。它可以帮我们建立集群之间的互信。在用于执行跨集群搜索的集群(本地集群)和所有远程集群之间启用信任关系。可以通过以下方式完成此操作:
集群之间的互信是通过 transport 层来实现的:

在本篇文章中,我将详细介绍如何针对本地安装的集群建立集群互信。我将使用 Elastic Stack 8.3.2 来进行展示。
如何你还没安装还自己的 Elastic Stack 集群,请参照如下的文章来进行安装:
我们在自己的机器上分别安装两个不同的集群。我们可以分布在不同的机器上进行安装并启动。针对我的配置是:

如上所示,我有两个单节点的集群。它们分别位于两个不同的机器上。为了能够让它们建立互相,我们必须按照上面的方式来进行配置。
config/elasticsearch.yml

我们可以为上面的两个集群创建同样的一个证书。这是一个最容易的方案。这里就涉及到更新在我们上一步已经安装好的证书问题。我们可以参考文章 “Elasticsearch:使用不同的 CA 更新安全证书 (一)” 来更新 CA 证书。在更新的过程中,我们必须注意的是:
配置完毕后,我们需要重新启动集群。这样我们的配置就完成了。
在上面,我们已经配置好集群之间的互信。我们接下来安装如下的步骤来创建连接:

从上面,我们可以看出来,两个机器之间的连接已经建立起来了。
当然,我也可以使用 API 来创建这样的连接:
- PUT _cluster/settings
- {
- "persistent": {
- "cluster.remote": {
- "remote_cluster": {
- "seeds": [
- "192.168.0.8:9300"
- ]
- }
- }
- }
- }

我们可以通过如下的命令来查看:
GET _remote/info

上面显示我们的连接是成功的。当然,我们也可以在 Kibana 的界面中进行查看:

如上所示,我们的连接都是成功的。
一旦连接成功,我们就可以尽情地使用 CCR 及 CCS 了。
参考:
【1】Trust management | Elasticsearch Service Documentation | Elastic