-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Allow clusters to be linked without a gateway #11226
Conversation
When a cluster has been installed without a gateway, it cannot be linked against, unless a load balancer service is used as an override. The service-mirror is tightly coupled with the notion of gateways. However, a gateway is not strictly necessary when clusters operate in a flat network. As part of this change, `linkerd multicluster link` has been changed to allow clusters without gateways to be linked against. When a cluster does not have a gateway, all services _must_ be exported in `remote-discovery` mode, otherwise routing wouldn't work. In addition, when a cluster does not have a gateway, linking against it will not create a probe service (since there is nothing to probe). Lastly, a check has been modified to ignore checking replicated endpoints when a service is in remote-discovery mode (to avoid false positives). Signed-off-by: Matei David <[email protected]>
Signed-off-by: Matei David <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
linkerd mc gateways
is currently throwing an error currently for me, not sure if because I haven't totally set up things right locally. But most likely we'd like to filter out non-gateway remotes in there.
Also WDYT about having this flag be --gateway
(defaults to true) instead to coincide with the linkerd mc install
analog flag?
Signed-off-by: Matei David <[email protected]>
Tested this out end-to-end by branching out and merging the remote-disco changes:
|
Signed-off-by: Matei David <[email protected]>
Signed-off-by: Matei David <[email protected]>
Signed-off-by: Matei David <[email protected]>
Signed-off-by: Matei David <[email protected]>
multicluster/cmd/link.go
Outdated
} | ||
|
||
if opts.gatewayAddresses != "" && !opts.enableGateway { | ||
return nil, fmt.Errorf("--gateway-addresses and --gateway=false are mutually exclusive, received selector: %s", opts.selector) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bad copy paste leaving the selector in the error message?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, my bad. On second thought, I left it at "are mutually exclusive", it should be easy to spot any overrides passed in without having to log them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Delightful!
Signed-off-by: Matei David <[email protected]>
This is a release candidate for stable-2.14.0; we encourage you to help trying it out! This edge release contains a number of improvements over the multi-cluster features introduced in the last edge release supporting flat networks. It also hardens the containers security stance by removing write access to the root filesystem. * Enhanced `linkerd multicluster link` to allow clusters to be linked without a gateway ([#11226]) * Added cluster store size gauge metric ([#11256]) * Disabled local traffic policy for remote discovery ([#11257]) * Fixed various innocuous multi-cluster warnings ([#11251], [#11246], [#11253]) * Set `readOnlyRootFilesystem: true` in all the containers, as they don't require write permissions ([#11221]; fixes [#11142]) (thanks @mikutas!)
This is a release candidate for stable-2.14.0; we encourage you to help trying it out! This edge release contains a number of improvements over the multi-cluster features introduced in the last edge release supporting flat networks. It also hardens the containers security stance by removing write access to the root filesystem. * Enhanced `linkerd multicluster link` to allow clusters to be linked without a gateway ([#11226]) * Added cluster store size gauge metric ([#11256]) * Disabled local traffic policy for remote discovery ([#11257]) * Fixed various innocuous multi-cluster warnings ([#11251], [#11246], [#11253]) * Set `readOnlyRootFilesystem: true` in all the containers, as they don't require write permissions ([#11221]; fixes [#11142]) (thanks @mikutas!)
When a cluster has been installed without a gateway, it cannot be linked against, unless a load balancer service is used as an override. The service-mirror is tightly coupled with the notion of gateways. However, a gateway is not strictly necessary when clusters operate in a flat network.
As part of this change,
linkerd multicluster link
has been changed to allow clusters without gateways to be linked against. When a cluster does not have a gateway, all services must be exported inremote-discovery
mode, otherwise routing wouldn't work.In addition, when a cluster does not have a gateway, linking against it will not create a probe service (since there is nothing to probe). Lastly, a check has been modified to ignore checking replicated endpoints when a service is in remote-discovery mode (to avoid false positives).