远程集群
编辑远程集群
编辑您可以将本地集群连接到其他 Elasticsearch 集群,称为远程集群。远程集群可以位于不同的数据中心或地理区域,并包含可以通过跨集群复制进行复制或由本地集群使用跨集群搜索进行搜索的索引或数据流。
跨集群复制
编辑使用跨集群复制,您可以将数据摄取到远程集群上的索引中。此leader 索引将复制到本地集群上的一个或多个只读follower 索引。通过跨集群复制创建多集群架构使您能够配置灾难恢复,将数据更靠近您的用户,或建立一个集中的报表集群以在本地处理报表。
跨集群搜索
编辑跨集群搜索 使您能够对一个或多个远程集群运行搜索请求。此功能为每个区域提供了所有集群的全局视图,允许您从本地集群发送搜索请求并返回所有连接的远程集群的结果。要获得完整的跨集群搜索功能,本地和远程集群必须处于相同的订阅级别。
添加远程集群
编辑以下说明描述了如何从自管理集群创建远程连接。您还可以从Elasticsearch Service 部署或从Elastic Cloud Enterprise 部署设置跨集群搜索和跨集群复制。
要添加远程集群,您可以在两种安全模型和两种连接模式之间进行选择。两种安全模型都与任何一种连接模式兼容。
安全模型
编辑- 基于 API 密钥的安全模型
- 对于 8.14 或更高版本的集群,您可以使用 API 密钥对跨集群操作到远程集群进行身份验证和授权。此模型为本地和远程集群的管理员提供了细粒度的访问控制。使用 API 密钥认证添加远程集群。
- 基于证书的安全模型
- 对跨集群操作使用双向 TLS 身份验证。用户身份验证在本地集群上执行,并且用户的角色名称将传递到远程集群。在此模型中,本地集群上的超级用户可以完全读取远程集群,因此它仅适用于位于同一安全域中的集群。使用 TLS 证书认证添加远程集群。
连接模式
编辑- 嗅探模式
-
在嗅探模式下,集群别名将使用您选择的名称注册,并且使用
cluster.remote.<cluster_alias>.seeds
设置指定了种子节点的地址列表。当您使用嗅探模式注册远程集群时,Elasticsearch 会从其中一个种子节点检索最多三个网关节点的地址。本地 Elasticsearch 集群中的每个remote_cluster_client
节点随后会打开到网关节点的发布地址的多个 TCP 连接。因此,此模式要求网关节点的发布地址可供本地集群中的节点访问。嗅探模式是默认连接模式。有关配置嗅探模式的更多信息,请参见嗅探模式远程集群设置。
- 版本:远程节点必须与它们注册到的集群兼容。
- 角色:默认情况下,任何非主节点都可以充当网关节点。专用主节点永远不会被选为网关节点。
-
属性:您可以通过将
cluster.remote.node.attr.gateway
设置为true
来定义集群的网关节点。但是,此类节点仍然必须满足上述两个要求。
- 代理模式
-
在代理模式下,集群别名将使用您选择的名称注册,并且使用
cluster.remote.<cluster_alias>.proxy_address
设置指定了 TCP(第 4 层)反向代理的地址。您必须将此代理配置为将连接路由到远程集群的一个或多个节点。当您使用代理模式注册远程集群时,Elasticsearch 会打开到代理地址的多个 TCP 连接,并使用这些连接与远程集群通信。在代理模式下,Elasticsearch 会忽略远程集群节点的发布地址,这意味着远程集群节点的发布地址不需要对本地集群可用。代理模式不是默认连接模式,因此您必须设置
cluster.remote.<cluster_alias>.mode: proxy
以使用它。有关配置代理模式的更多信息,请参见代理模式远程集群设置。代理模式具有与嗅探模式相同的版本兼容性要求。