From: "Serguei Bezverkhi (sbezverk)" <sbezverk@cisco.com>
To: Phil Sutter <phil@nwl.cc>
Cc: "netfilter-devel@vger.kernel.org" <netfilter-devel@vger.kernel.org>
Subject: Re: Numen with reference to vmap
Date: Wed, 4 Dec 2019 16:13:45 +0000 [thread overview]
Message-ID: <BC928D69-611E-4F9E-A457-7C78F6D0779A@cisco.com> (raw)
In-Reply-To: <20191204155619.GU14469@orbyte.nwl.cc>
It is not static, SVC chain jump rules will be updated on every endpoint change, the dynamic nature is achieved by manipulating rules. It is doable with nftables, I understand that, but I was also looking for a more efficient way to do it, my concern is if we use 1 to 1 conversion, we will end up with the same iptables scalability/performance limitations.
Here is how rules look after a third and forth endpoint gets dynamically added to the service.
-A KUBE-SVC-57XVOCFNTLTR3Q27 -m statistic --mode random --probability 0.25000000000 -j KUBE-SEP-FS3FUULGZPVD4VYB
-A KUBE-SVC-57XVOCFNTLTR3Q27 -m statistic --mode random --probability 0.33332999982 -j KUBE-SEP-MMFZROQSLQ3DKOQA
-A KUBE-SVC-57XVOCFNTLTR3Q27 -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-TEWRTAGT3CD3D47Z
-A KUBE-SVC-57XVOCFNTLTR3Q27 -j KUBE-SEP-4WMWD734WJQW264U
Thank you
Serguei
On 2019-12-04, 10:56 AM, "n0-1@orbyte.nwl.cc on behalf of Phil Sutter" <n0-1@orbyte.nwl.cc on behalf of phil@nwl.cc> wrote:
On Wed, Dec 04, 2019 at 03:42:00PM +0000, Serguei Bezverkhi (sbezverk) wrote:
> Hi Phil,
>
> I can also minimize any impact by inserting a new rule in front of the old one, and then delete the old one. So in this case there should no any impact. Here is iptables rules I try to mimic:
Yes, that's more or less equivalent to doing it in a single transaction.
> // -A KUBE-SVC-57XVOCFNTLTR3Q27 -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-FS3FUULGZPVD4VYB
> // -A KUBE-SVC-57XVOCFNTLTR3Q27 -j KUBE-SEP-MMFZROQSLQ3DKOQA
> // !
> // ! Endpoint 1 for KUBE-SVC-57XVOCFNTLTR3Q27
> // !
> // -A KUBE-SEP-FS3FUULGZPVD4VYB -s 57.112.0.247/32 -j KUBE-MARK-MASQ
> // -A KUBE-SEP-FS3FUULGZPVD4VYB -p tcp -m tcp -j DNAT --to-destination 57.112.0.247:8080
> // !
> // ! Endpoint 2 for KUBE-SVC-57XVOCFNTLTR3Q27
> // !
> // -A KUBE-SEP-MMFZROQSLQ3DKOQA -s 57.112.0.248/32 -j KUBE-MARK-MASQ
> // -A KUBE-SEP-MMFZROQSLQ3DKOQA -p tcp -m tcp -j DNAT --to-destination 57.112.0.248:8080
>
> As you can see SVC chain KUBE-SVC-57XVOCFNTLTR3Q27 load balance between 2 endpoints.
OK, static load-balancing between two services - no big deal. :)
What happens if config changes? I.e., if one of the endpoints goes down
or a third one is added? (That's the thing we're discussing right now,
aren't we?)
Cheers, Phil
next prev parent reply other threads:[~2019-12-04 16:13 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-04 0:54 Numen with reference to vmap Serguei Bezverkhi (sbezverk)
2019-12-04 10:18 ` Phil Sutter
2019-12-04 13:47 ` Serguei Bezverkhi (sbezverk)
2019-12-04 15:17 ` Phil Sutter
2019-12-04 15:42 ` Serguei Bezverkhi (sbezverk)
2019-12-04 15:56 ` Phil Sutter
2019-12-04 16:13 ` Serguei Bezverkhi (sbezverk) [this message]
2019-12-04 17:00 ` Phil Sutter
2019-12-04 17:31 ` Arturo Borrero Gonzalez
2019-12-04 17:49 ` Serguei Bezverkhi (sbezverk)
2019-12-04 21:05 ` Serguei Bezverkhi (sbezverk)
2019-12-04 22:32 ` Phil Sutter
2019-12-17 0:51 ` Serguei Bezverkhi (sbezverk)
2019-12-17 12:29 ` Phil Sutter
2019-12-17 14:05 ` Serguei Bezverkhi (sbezverk)
2019-12-17 16:41 ` Phil Sutter
2019-12-18 17:01 ` Serguei Bezverkhi (sbezverk)
2019-12-18 17:24 ` Phil Sutter
2019-12-18 19:43 ` Serguei Bezverkhi (sbezverk)
2019-12-18 19:58 ` Laura Garcia
2019-12-18 20:54 ` Serguei Bezverkhi (sbezverk)
2019-12-19 10:48 ` Phil Sutter
2019-12-19 14:59 ` Serguei Bezverkhi (sbezverk)
2019-12-19 15:45 ` Phil Sutter
2019-12-19 16:00 ` Serguei Bezverkhi (sbezverk)
2019-12-19 18:19 ` Serguei Bezverkhi (sbezverk)
2020-01-04 12:30 ` Serguei Bezverkhi (sbezverk)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BC928D69-611E-4F9E-A457-7C78F6D0779A@cisco.com \
--to=sbezverk@cisco.com \
--cc=netfilter-devel@vger.kernel.org \
--cc=phil@nwl.cc \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).