remote-clusters.asciidoc 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. [[remote-clusters]]
  2. == Remote clusters
  3. You can connect a local cluster to other {es} clusters, known as _remote
  4. clusters_. Remote clusters can be located in different datacenters or
  5. geographic regions, and contain indices or data streams that can be replicated
  6. with {ccr} or searched by a local cluster using {ccs}.
  7. [[remote-clusters-ccr]]
  8. [discrete]
  9. === {ccr-cap}
  10. With <<xpack-ccr,{ccr}>>, you ingest data to an index on a remote cluster. This
  11. _leader_ index is replicated to one or more read-only _follower_ indices on your
  12. local cluster. Creating a multi-cluster architecture with {ccr} enables you to
  13. configure disaster recovery, bring data closer to your users, or establish a
  14. centralized reporting cluster to process reports locally.
  15. [[remote-clusters-ccs]]
  16. [discrete]
  17. === {ccs-cap}
  18. <<modules-cross-cluster-search,{ccs-cap}>> enables you to run a search request
  19. against one or more remote clusters. This capability provides each region with a
  20. global view of all clusters, allowing you to send a search request from a local
  21. cluster and return results from all connected remote clusters. For full {ccs}
  22. capabilities, the local and remote cluster must be on the same
  23. {subscriptions}[subscription level].
  24. [[add-remote-clusters]]
  25. [discrete]
  26. === Add remote clusters
  27. NOTE: The instructions that follow describe how to create a remote connection from a
  28. self-managed cluster. You can also set up {ccs} and {ccr} from an
  29. link:https://www.elastic.co/guide/en/cloud/current/ec-enable-ccs.html[{ess} deployment]
  30. or from an link:https://www.elastic.co/guide/en/cloud-enterprise/current/ece-enable-ccs.html[{ece} deployment].
  31. To add remote clusters, you can choose between
  32. <<remote-clusters-security-models,two security models>> and
  33. <<sniff-proxy-modes,two connection modes>>. Both security models are compatible
  34. with either of the connection modes.
  35. [[remote-clusters-security-models]]
  36. [discrete]
  37. ==== Security models
  38. API key based security model::
  39. For clusters on version 8.14 or later, you can use an API key to authenticate
  40. and authorize cross-cluster operations to a remote cluster. This model offers
  41. administrators of both the local and the remote cluster fine-grained access
  42. controls. <<remote-clusters-api-key>>.
  43. Certificate based security model::
  44. Uses mutual TLS authentication for cross-cluster operations. User authentication
  45. is performed on the local cluster and a user's role names are passed to the
  46. remote cluster. In this model, a superuser on the local cluster gains total read
  47. access to the remote cluster, so it is only suitable for clusters that are in
  48. the same security domain. <<remote-clusters-cert>>.
  49. [[sniff-proxy-modes]]
  50. [discrete]
  51. ==== Connection modes
  52. [[sniff-mode]]
  53. Sniff mode::
  54. In sniff mode, a cluster alias is registered with a name of your choosing and a
  55. list of addresses of _seed_ nodes specified with the
  56. `cluster.remote.<cluster_alias>.seeds` setting. When you register a remote
  57. cluster using sniff mode, {es} retrieves from one of the seed nodes the
  58. addresses of up to three _gateway nodes_. Each `remote_cluster_client` node in
  59. the local {es} cluster then opens several TCP connections to the publish
  60. addresses of the gateway nodes. This mode therefore requires that the gateway
  61. nodes' publish addresses are accessible to nodes in the local cluster.
  62. +
  63. Sniff mode is the default connection mode. See <<remote-cluster-sniff-settings>>
  64. for more information about configuring sniff mode.
  65. +
  66. [[gateway-nodes-selection]]
  67. The _gateway nodes_ selection depends on the following criteria:
  68. +
  69. * *version*: Remote nodes must be compatible with the cluster they are
  70. registered to.
  71. * *role*: By default, any non-<<master-node-role,master-eligible>> node can act as a
  72. gateway node. Dedicated master nodes are never selected as gateway nodes.
  73. * *attributes*: You can define the gateway nodes for a cluster by setting
  74. <<cluster-remote-node-attr,`cluster.remote.node.attr.gateway`>> to `true`.
  75. However, such nodes still have to satisfy the two above requirements.
  76. [[proxy-mode]]
  77. Proxy mode::
  78. In proxy mode, a cluster alias is registered with a name of your choosing and
  79. the address of a TCP (layer 4) reverse proxy specified with the
  80. `cluster.remote.<cluster_alias>.proxy_address` setting. You must configure this
  81. proxy to route connections to one or more nodes of the remote cluster. When you
  82. register a remote cluster using proxy mode, {es} opens several TCP connections
  83. to the proxy address and uses these connections to communicate with the remote
  84. cluster. In proxy mode {es} disregards the publish addresses of the remote
  85. cluster nodes which means that the publish addresses of the remote cluster
  86. nodes need not be accessible to the local cluster.
  87. +
  88. Proxy mode is not the default connection mode, so you must set
  89. `cluster.remote.<cluster_alias>.mode: proxy` to use it. See
  90. <<remote-cluster-proxy-settings>> for more information about configuring proxy
  91. mode.
  92. +
  93. Proxy mode has the same <<gateway-nodes-selection, version compatibility
  94. requirements>> as sniff mode.
  95. include::cluster/remote-clusters-api-key.asciidoc[]
  96. include::cluster/remote-clusters-cert.asciidoc[]
  97. include::cluster/remote-clusters-migration.asciidoc[]
  98. include::cluster/remote-clusters-settings.asciidoc[]
  99. include::cluster/remote-clusters-troubleshooting.asciidoc[]