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

Multiple active gateway enhancement proposal #69

Merged
merged 4 commits into from
Jun 15, 2022

Conversation

anfredette
Copy link
Contributor

@anfredette anfredette commented Mar 1, 2022

Submariner currently only allows a single gateway to be active at
any one time in a given cluster. This enhancement proposes that
there be an option to allow more than one gateway to be active in
a given cluster to enhance both performance and resiliency. This
feature is sometimes referred to as “active-active gateways”;
however, the goal is to allow two or more active gateways to be used.

Signed-off-by: Andre Fredette [email protected]

@submariner-bot
Copy link
Collaborator

🤖 Created branch: z_pr69/anfredette/multi-gateway

@anfredette anfredette force-pushed the multi-gateway branch 3 times, most recently from 397e0b3 to dfe5c07 Compare March 1, 2022 20:22
@astoycos astoycos self-assigned this Mar 1, 2022
@anfredette anfredette self-assigned this Mar 1, 2022
@astoycos astoycos added axon For issues and PRs related to Axon. enhancement New feature or request labels Mar 3, 2022
@anfredette
Copy link
Contributor Author

Thanks for your feedback @astoycos!

Copy link
Member

@nyechiel nyechiel left a comment

Choose a reason for hiding this comment

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

I have a general comment about this proposal: based on user's feedback so far, it's not clear if the gateway model (where we assume that dedicated nodes or certain worker nodes have public IPs available) is really the future of Submariner. This model is not very cloud-native, cumbersome to setup, and is not compatible/realistic with many of the managed Kubernetes offerings which are becoming more popular. For this reason, we started some early exploration work around using a LoadBalancer type service instaed (see also https://submariner.io/getting-started/architecture/gateway-engine/). I am wondering if we shouldn't complete the investigation of the LoadBalancer mode first, before further investing into HA of the gateway model.

@sridhargaddam
Copy link
Member

I have a general comment about this proposal: based on user's feedback so far, it's not clear if the gateway model (where we assume that dedicated nodes or certain worker nodes have public IPs available) is really the future of Submariner. This model is not very cloud-native, cumbersome to setup, and is not compatible/realistic with many of the managed Kubernetes offerings which are becoming more popular. For this reason, we started some early exploration work around using a LoadBalancer type service instaed (see also https://submariner.io/getting-started/architecture/gateway-engine/). I am wondering if we shouldn't complete the investigation of the LoadBalancer mode first, before further investing into HA of the gateway model.

+1
This is inline with what I mentioned earlier on couple of occasions that LB mode is going to be the future.

@mkolesnik
Copy link

+1 to @nyechiel's assessment.

Additionally, LB mode would have many of the problems of multiple gateways (since we'd probably want to run more than one GW pod).
I'm suggesting we focus on LB mode first, and that would also pave the way to an easier implementation of multiple dedicated gateways, should such a feature be desired.

anfredette added a commit to anfredette/submariner-enhancements that referenced this pull request Apr 20, 2022
submariner-io#69

Signed-off-by: Andre Fredette <[email protected]>

Co-authored-by: Andrew Stoycos <[email protected]>
Co-authored-by: Billy McFall <[email protected]>
@anfredette
Copy link
Contributor Author

Thanks everyone for the review and comments/suggestions. We've updated the proposal to reflect our current thoughts on the design, and the POC that has been implemented. We're currently doing some performance testing and will update the pr when we get some results.

Copy link
Contributor

@Billy99 Billy99 left a comment

Choose a reason for hiding this comment

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

Added updates based on the Tech Exchange. Also added some PoC details.

submariner/multiple-active-gateways.md Show resolved Hide resolved
submariner/multiple-active-gateways.md Outdated Show resolved Hide resolved
submariner/multiple-active-gateways.md Outdated Show resolved Hide resolved
submariner/multiple-active-gateways.md Show resolved Hide resolved
submariner/multiple-active-gateways.md Show resolved Hide resolved
submariner/multiple-active-gateways.md Show resolved Hide resolved
anfredette added a commit to anfredette/submariner-enhancements that referenced this pull request May 11, 2022
submariner-io#69

Signed-off-by: Andre Fredette <[email protected]>

Co-authored-by: Andrew Stoycos <[email protected]>
Co-authored-by: Billy McFall <[email protected]>
@anfredette anfredette force-pushed the multi-gateway branch 4 times, most recently from 7534a5c to 61f4de9 Compare May 12, 2022 19:25
@tpantelis tpantelis requested a review from mkolesnik May 16, 2022 13:10
Copy link
Member

@sridhargaddam sridhargaddam left a comment

Choose a reason for hiding this comment

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

I see that the open-items/limitations discussed during the tech-exchange session are added as TODO/Notes in the PR. LGTM, thank you.

Copy link

@mkolesnik mkolesnik left a comment

Choose a reason for hiding this comment

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

I see concerns are listed as TODO, so we can merge as "Deferred", with the intention that should this be picked up in the future the entire EP will have to be re-reviewed.

submariner/multiple-active-gateways.md Show resolved Hide resolved
anfredette and others added 4 commits June 14, 2022 11:06
Submariner currently only allows a single gateway to be active at
any one time in a given cluster.  This enhancement proposes that
there be an option to allow more than one gateway to be active in
a given cluster to enhance both performance and resiliency. This
feature is sometimes referred to as “active-active gateways”;
however, the goal is to allow two or more actove gateways to be used.

Signed-off-by: Andre Fredette <[email protected]>
submariner-io#69

Signed-off-by: Andre Fredette <[email protected]>

Co-authored-by: Andrew Stoycos <[email protected]>
Co-authored-by: Billy McFall <[email protected]>
based on design review and other discussions

Signed-off-by: Andre Fredette <[email protected]>

Co-authored-by: Billy McFall <[email protected]>
Co-authored-by: Andrew Stoycos <[email protected]>
@anfredette
Copy link
Contributor Author

@sridhargaddam, I think this is good to merge now, isn't it? Thanks, Andre

@sridhargaddam
Copy link
Member

@sridhargaddam, I think this is good to merge now, isn't it? Thanks, Andre

Indeed, thank you @anfredette

@sridhargaddam sridhargaddam merged commit 1efb0b0 into submariner-io:devel Jun 15, 2022
@submariner-bot
Copy link
Collaborator

🤖 Closed branches: [z_pr69/anfredette/multi-gateway]

@anfredette
Copy link
Contributor Author

Thanks, @sridhargaddam!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
axon For issues and PRs related to Axon. enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants