远程集群
编辑远程集群
编辑您可以将本地集群连接到其他 Elasticsearch 集群,这些集群被称为远程集群。远程集群可以位于不同的数据中心或地理区域,并包含可以使用跨集群复制复制或使用跨集群搜索由本地集群搜索的索引或数据流。
跨集群复制
编辑使用跨集群复制,您可以将数据摄取到远程集群上的索引。这个领导者索引会被复制到本地集群上的一个或多个只读跟随者索引。通过跨集群复制创建多集群架构,您可以配置灾难恢复、将数据更靠近您的用户,或建立一个集中报告集群以在本地处理报告。
跨集群搜索
编辑跨集群搜索使您能够针对一个或多个远程集群运行搜索请求。此功能为每个区域提供了所有集群的全局视图,允许您从本地集群发送搜索请求并返回来自所有连接的远程集群的结果。为了实现完整的跨集群搜索功能,本地和远程集群必须在相同的订阅级别上。
添加远程集群
编辑以下说明描述了如何从自管理集群创建远程连接。您还可以从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
才能使用它。有关配置代理模式的更多信息,请参阅代理模式远程集群设置。代理模式与嗅探模式具有相同的版本兼容性要求。