跳到主要内容

远程集群

你可以将本地集群连接到其他 Elasticsearch 集群,即所谓的远程集群。远程集群可以位于不同的数据中心或地理区域,并包含可以通过跨集群复制进行复制、或由本地集群通过跨集群搜索进行搜索的索引或数据流。

跨集群复制​

通过跨集群复制,你将数据摄取到远程集群上的一个索引。这个领导者索引(leader index)被复制到你的本地集群上的一个或多个只读追随者索引(follower indices)。使用跨集群复制创建多集群架构使你能够配置灾难恢复、将数据拉近你的用户,或建立集中的报告集群以在本地处理报告。

跨集群搜索​

跨集群搜索使你能够对一个或多个远程集群运行搜索请求。此能力为每个区域提供所有集群的全局视图,允许你从本地集群发送搜索请求并返回来自所有已连接远程集群的结果。要获得完整的跨集群搜索能力,本地集群和远程集群必须处于相同的订阅级别。

添加远程集群​

以下说明描述了如何从自管理集群创建远程连接。你也可以从 Elasticsearch Service 部署或 Elastic Cloud Enterprise 部署设置跨集群搜索和跨集群复制。

要添加远程集群,你可以在两种安全模型和两种连接模式之间进行选择。两种安全模型都与任一连接模式兼容。

安全模型​

基于 API 密钥的安全模型 对于版本 8.14 或更高版本的集群,你可以使用 API 密钥向远程集群验证和授权跨集群操作。此模型为本地集群和远程集群的管理员提供细粒度的访问控制。参阅使用 API 密钥身份验证添加远程集群。

基于证书的安全模型 对跨集群操作使用双向 TLS 身份验证。用户身份验证在本地集群上执行,用户的角色名称会传递给远程集群。在此模型中,本地集群上的超级用户将获得对远程集群的完全读取访问权限,因此它只适合位于同一安全域中的集群。参阅使用 TLS 证书身份验证添加远程集群。

连接模式​

嗅探模式(Sniff mode)

在嗅探模式下,注册一个由你选择名称的集群别名,以及通过 cluster.remote.<cluster_alias>.seeds 设置指定的种子节点地址列表。当你使用嗅探模式注册远程集群时,Elasticsearch 会从其中一个种子节点检索最多三个网关节点的地址。本地 Elasticsearch 集群中的每个 remote_cluster_client 节点随后会打开几条到网关节点发布地址的 TCP 连接。因此,此模式要求网关节点的发布地址可以被本地集群中的节点访问。

嗅探模式是默认的连接模式。有关配置嗅探模式的更多信息,参阅嗅探模式远程集群设置。

网关节点的选择取决于以下条件:

  • 版本:远程节点必须与它们注册到的集群兼容。
  • 角色:默认情况下,任何非主合格节点都可以充当网关节点。专用主节点永远不会被选为网关节点。
  • 属性:你可以通过将 cluster.remote.node.attr.gateway 设置为 true 来定义集群的网关节点。但是,此类节点仍必须满足上述两个要求。

代理模式(Proxy mode)

在代理模式下,注册一个由你选择名称的集群别名,以及通过 cluster.remote.<cluster_alias>.proxy_address 设置指定的 TCP(第 4 层)反向代理的地址。你必须将此代理配置为将连接路由到远程集群的一个或多个节点。当你使用代理模式注册远程集群时,Elasticsearch 会打开几条到代理地址的 TCP 连接,并使用这些连接与远程集群通信。在代理模式下,Elasticsearch 会忽略远程集群节点的发布地址,这意味着远程集群节点的发布地址无需被本地集群访问。

代理模式不是默认的连接模式,因此你必须设置 cluster.remote.<cluster_alias>.mode: proxy 才能使用它。有关配置代理模式的更多信息,参阅代理模式远程集群设置。

代理模式具有与嗅探模式相同的版本兼容性要求。

原文链接