Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add documentation for remote cluster proxy mode #52779

Merged
merged 11 commits into from
Mar 9, 2020

Conversation

Tim-Brooks
Copy link
Contributor

This is related to #49067.

@Tim-Brooks Tim-Brooks added >docs General docs changes :Distributed Coordination/Network Http and internode communication implementations v8.0.0 v7.7.0 v7.6.1 labels Feb 25, 2020
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-docs (>docs)

@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-distributed (:Distributed/Network)

@Tim-Brooks
Copy link
Contributor Author

Depends on #52796

@Tim-Brooks Tim-Brooks requested a review from ywelsch February 27, 2020 00:28
Copy link
Contributor

@ywelsch ywelsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jrodewig can you have a look too?

docs/reference/modules/remote-clusters.asciidoc Outdated Show resolved Hide resolved
docs/reference/modules/remote-clusters.asciidoc Outdated Show resolved Hide resolved
docs/reference/modules/remote-clusters.asciidoc Outdated Show resolved Hide resolved
docs/reference/modules/remote-clusters.asciidoc Outdated Show resolved Hide resolved
@ywelsch ywelsch added v7.6.2 and removed v7.6.1 labels Feb 27, 2020
Comment on lines 42 to 44
`seeds`::
The configured initial seed transport addresses of the remote cluster when
sniff mode is configured.
Copy link
Contributor

@jrodewig jrodewig Feb 27, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like it was double indented.

Suggested change
`seeds`::
The configured initial seed transport addresses of the remote cluster when
sniff mode is configured.
`seeds`::
Initial seed transport addresses of the remote cluster when
sniff mode is configured.

to three _gateway nodes_ are selected to be connected to as part of remote
cluster requests.
// end::how-remote-clusters-work[]
only to a limited number of nodes in that remote cluster. There are two
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
only to a limited number of nodes in that remote cluster. There are two
to a limited number of nodes in that remote cluster. There are two

@Tim-Brooks Tim-Brooks requested review from jrodewig and ywelsch March 3, 2020 20:33
@Tim-Brooks
Copy link
Contributor Author

I updated this and added a section on proxy mode in the CCS docs.


Gateway and seed nodes need to be accessible from the local cluster via your
network.
For remote clusters using the <<sniff-mode,sniff connection> mode, gateway and
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is required for the link to render properly.

Suggested change
For remote clusters using the <<sniff-mode,sniff connection> mode, gateway and
For remote clusters using the <<sniff-mode,sniff connection>> mode, gateway and

== {ccs} in proxy mode

<<proxy-mode,Proxy mode>> remote cluster connections support {ccs}. All remote
connections will connect to the configured `proxy_address`. Any desired
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
connections will connect to the configured `proxy_address`. Any desired
connections connect to the configured `proxy_address`. Any desired

Comment on lines 33 to 34
cluster requests. This mode requires that the gateway node's publish addresses
are exposed to the local cluster.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"accessible" is more consistent with what's stated in "proxy" mode and has less of a negative connotation.

Suggested change
cluster requests. This mode requires that the gateway node's publish addresses
are exposed to the local cluster.
cluster requests. This mode requires that the gateway node's publish addresses
are accessible by the local cluster.

<2> The hostname and <<modules-transport,transport>> port (default: 9300) of a
seed node in the remote cluster.
<3> A keep-alive ping is configured for `cluster_one`.
<4> Compression is explicitly enabled for requests to `cluster_two`.
<5> Disconnected remote clusters are optional for `cluster_two`.
<4> The configured connection mode. By default it is <<sniff-mode,sniff>>, so
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<4> The configured connection mode. By default it is <<sniff-mode,sniff>>, so
<4> The configured connection mode. By default, this is <<sniff-mode,`sniff`>>, so

[[remote-cluster-sniff-settings]]
=== Remote cluster settings for sniff mode

`cluster.remote.${cluster_alias}.seeds`::
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our docs typically use the <variable> convention.

Suggested change
`cluster.remote.${cluster_alias}.seeds`::
`cluster.remote.<cluster_alias>.seeds`::


The list of seed nodes used to sniff the remote cluster state.

`cluster.remote.${cluster_alias}.node_connections`::
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`cluster.remote.${cluster_alias}.node_connections`::
`cluster.remote.<cluster_alias>.node_connections`::

[[remote-cluster-proxy-settings]]
=== Remote cluster settings for proxy mode

`cluster.remote.${cluster_alias}.proxy_address`::
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`cluster.remote.${cluster_alias}.proxy_address`::
`cluster.remote.<cluster_alias>.proxy_address`::


The address used for all remote connections.

`cluster.remote.${cluster_alias}.proxy_socket_connections`::
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`cluster.remote.${cluster_alias}.proxy_socket_connections`::
`cluster.remote.<cluster_alias>.proxy_socket_connections`::

Comment on lines 322 to 324
ifndef::include-xpack[]

`cluster.remote.${cluster_alias}.server_name`::
Copy link
Contributor

@jrodewig jrodewig Mar 4, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be ifdef, not ifndef.

I'm also not sure if it's necessary to do ifdef::include-xpack[]. Adding [role="xpack"] before the setting def should suffice. From what I understand, ifdef::include-xpack[] and ifndef::include-xpack[] have not been functional for some time.

Suggested change
ifndef::include-xpack[]
`cluster.remote.${cluster_alias}.server_name`::
[role="xpack"]
`cluster.remote.${cluster_alias}.server_name`::

<<configuring-tls,{TLS is enabled}>>. The TLS transport will fail to open
remote connections if this field is not a valid hostname as defined by the
TLS SNI specification.
endif::[]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
endif::[]


`cluster.remote.${cluster_alias}.server_name`::

An optional hostname string which will be sent in the server_name field of
Copy link
Contributor

@jrodewig jrodewig Mar 4, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
An optional hostname string which will be sent in the server_name field of
An optional hostname string which is sent in the `server_name` field of


An optional hostname string which will be sent in the server_name field of
the TLS Server Name Indication extension if
<<configuring-tls,{TLS is enabled}>>. The TLS transport will fail to open
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<<configuring-tls,{TLS is enabled}>>. The TLS transport will fail to open
<<configuring-tls,TLS is enabled>>. The TLS transport will fail to open

@@ -139,7 +171,8 @@ PUT _cluster/settings
// TEST[s/127.0.0.1:9300/\${transport_host}/]

You can dynamically update the compression and ping schedule settings. However,
you must re-include seeds in the settings update request. For example:
you must re-include seeds or proxy_address in the settings update request.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
you must re-include seeds or proxy_address in the settings update request.
you must re-include seeds or a `proxy_address` in the settings update request.

cluster requests. This mode requires that the gateway node's publish addresses
are exposed to the local cluster.

The sniff mode is the default connection mode.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The sniff mode is the default connection mode.
Sniff mode is the default connection mode.

Copy link
Contributor

@jrodewig jrodewig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look good overall. I did suggest a few needed changes:

  • Fix a broken internal link
  • Remove or update the new ifndef directive in the remote cluster settings section
  • Use the standard <variable> convention in the remote cluster settings section

My other feedback is non-blocking. Feel free to use or ignore those items as you see fit.

Thanks for writing up the proxy mode CCS section!

@Tim-Brooks
Copy link
Contributor Author

I made @jrodewig changes. @ywelsch are you good with this?

Copy link
Contributor

@ywelsch ywelsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Tim-Brooks Tim-Brooks merged commit abd8a36 into elastic:master Mar 9, 2020
Tim-Brooks added a commit that referenced this pull request Mar 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Distributed Coordination/Network Http and internode communication implementations >docs General docs changes v7.7.0 v8.0.0-alpha1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants