hubble-relay: add initial multi-node support#11171
Conversation
gandro
left a comment
There was a problem hiding this comment.
Awesome 🎉 There's a leftover piece of commented-out code, otherwise looks good!
There was a problem hiding this comment.
(no action required)
I think this is the option we want to pursue in the long run. gRPC client connections seem thread-safe, so reusing the connections to the selected peers seems to be the way to go.
14e2352 to
97ac084
Compare
|
test-me-please |
glibsm
left a comment
There was a problem hiding this comment.
good idea with all the flags being on the same struct, i don't quite understand why it's global though
97ac084 to
cc9e813
Compare
|
test-me-please |
|
@rolinh can you try running it doesn't print anything until i kill the process, and it prints 20 flows when i do ctrl-c. the service is defined like this: |
This commit fixes signal handling so that hubble-relay is properly shut-down upon receiving a terminating signal. Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
This option is useful to set the time to wait before attempting to reconnect when a connection to a hubble peer is lost. Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
This commit adds initial support for multi-node to hubble-relay. This feature allows hubble-relay to connect to all hubble instances in a cluster to answer gRPC requests. This means that when a GetFlows or ServerStatus request is issued, the reply contains information from all hubble peers rather than just the local instance. Note that this is only a first step for proper multi-node support. The current implementation has the following (major) limitations: - No mutual TLS; this means that connection to other Hubble peers is insecure. - No flows re-ordering; flows are sent as they are received from the various peers. This means that chronological order of flows is not guaranteed. - Inefficient: a new connection is established to all peers for every gRPC request to process. - When a peer joins the cluster while a request is being processed, it is not taken into account. All of the above limitations need to be addressed before the multi-node feature is deemed production ready. Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net>
cc9e813 to
94f9cb4
Compare
|
@michi-covalent I fixed this, please try again and confirm it now works as expected. |
|
test-me-please |
|
@rolinh it's working now |
Please, see individual commits for details.
Ref https://github.com/cilium/hubble/issues/89