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

Backport DSR feature to bump_18.09 #2278

Merged
merged 2 commits into from
Oct 15, 2018
Merged

Conversation

ctelfer
Copy link
Contributor

@ctelfer ctelfer commented Oct 15, 2018

Backport the DSR overlay network load balancing mode to 18.09 branch:

  • git checkout bump_18.09
  • git checkout -b backport-dsr
  • git cherry-pick -x d17b42a 0c76756

@ctelfer ctelfer requested a review from fcrisciani October 15, 2018 21:31
Modify the loadbalancing for east-west traffic to use direct routing
rather than NAT and update tasks to use direct service return under
linux.  This avoids hiding the source address of the sender and improves
the performance in single-client/single-server tests.

Signed-off-by: Chris Telfer <[email protected]>
(cherry picked from commit d17b42a)
Allow DSR to be a configurable option through a generic option to the
overlay driver.  On the one hand this approach makes sense insofar as
only overlay networks can currently perform load balancing.  On the
other hand, this approach has several issues.  First, should we create
another type of swarm scope network, this will prevent it working.
Second, the service core code is separate from the driver code and the
driver code can't influence the core data structures.  So the driver
code can't set this option itself.  Therefore, implementing in this way
requires some hack code to test for this option in
controller.NewNetwork.

A more correct approach would be to make this a generic option for any
network.  Then the driver could ignore, reject or be unaware of the option
depending on the chosen model.  This would require changes to:
  * libnetwork - naturally
  * the docker API - to carry the option
  * swarmkit - to propagate the option
  * the docker CLI - to support the option
  * moby - to translate the API option into a libnetwork option
Given the urgency of requests to address this issue, this approach will
be saved for a future iteration.

Signed-off-by: Chris Telfer <[email protected]>
(cherry picked from commit 0c76756)
Copy link

@fcrisciani fcrisciani left a comment

Choose a reason for hiding this comment

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

LGTM

@fcrisciani fcrisciani merged commit 6da50d1 into moby:bump_18.09 Oct 15, 2018
@ctelfer ctelfer deleted the backport-dsr branch October 15, 2018 22:00
@thaJeztah
Copy link
Member

Backport of #2270

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants