On Sat, May 9, 2020 at 5:01 PM Girish Moodalbail <gmoodalb...@gmail.com>
wrote:
>
> Hello Han, Tim
>
> Please see in-line:
>
>
>>>>
>>>> Hello Han,
>>>>
>>>> I did consider distributed gateway port. However, there are two issues
with it
>>>>
>>>> 1. In order to support K8s NodePort services we need to create a
North-South LB and L3 gateway is a perfect solution for that. AFAIK,
>>>>    DGP doesn't support it
>>
>>
>> In fact DGP supports LB (at least from code
https://github.com/ovn-org/ovn/blob/master/northd/ovn-northd.c#L9318), but
the ovn-nb manpage may need an update.
>
>
> I see
>
>>
>>
>>>>
>>>> 2. Datapath performance would be bad with DGP. We want the packet
meant for the host or the Internet to exit out of the hypervisor on which
the pod exists. The L3 gateway router provides us with this functionality.
With dgp and with OVN supporting only one instance of it, packets
unnecessarily gets forwarded over tunnel to dgp chassis for SNATing and
then gets forwarded back over tunnel to the host to just exit out locally.
>>
>>
>> This is related to the changes needed for DGP (the first point I
mentioned in previous email). In the diagram I draw, there will be 1000
DGPs, each reside on a chassis, just to make sure north-south traffic can
be forwarded on the local chassis without going through a central node,
just like how it works today in ovn-k8s. However, maybe this is not a small
change, because today the NAT and LB processing on such LRs (LRs with DGP)
are all based on the assumption that there is only one DGP. For example,
the NB schema would also need to be changed so that the NAT/LB rules for a
router can specify DGP to determine the central processing location for
those rules.
>
>
> Correct
>
>>
>>
>> So, to summarize, if we can make multi-DGP work, it would be the best
solution for the ovn-k8s scenario. If we can't (either because of design
problem, or because it is too big effort for the gains), maybe configurably
avoiding the static neighbour flows is a good way to go. Both options
requires changes in OVN.
>
>
> Han, optimizing the neighbor cache from the current O(n^2) to something
scalable will be ideal for short-term. I am hoping that the changes to OVN
will not be as complicated as multi-DGP work and other changes to OVN
proposed on this email thread.
>
>
>>
>> Without changes in OVN, a further optimization based on your current
workaround can be done is what Tim has suggested: to replace the large
number of small join LSes (and LRPs and patch ports on both sides) by same
number of directly connected LRPs.
>
>
> Han and Tim,
>
> OVN supports only peering two distributed routers without a logical
switch, however it doesn't support connecting a distributed router and an
l3 gateway router directly as peers. I remember very clearly this being
mentioned in the ovn-architecture man page.
>
> ---------8<--------------8<---------------------
>
>        The distributed router and the
>        gateway router are  connected  by  another  logical  switch,
 sometimes
>        referred  to  as a ``join’’ logical switch. (OVN logical routers
may be
>        connected to one another directly, without an intervening  switch,
 but
>        the  OVN  implementation only supports gateway logical routers
that are
>        connected to logical switches. Using a join logical switch also
reduces
>        the  number  of  IP addresses needed on the distributed router.)
>
> ---------8<--------------8<---------------------
>
> Before splitting the OVN join logical switch into several small logical
switches, I did try directly connecting the LR to each of the node-specific
LR using a point-to-point link but it didn't work. Since this was
corroborated by the man page, I didn't debug the topology and moved on to
splitting the `join` logical switch.

You are right. So this *improvement* would also need change in OVN as well,
and the benefit seems less obvious than the other two options.

>
> Regards,
> ~Girish
>
>>>>
> --
> You received this message because you are subscribed to the Google Groups
"ovn-kubernetes" group.
> To unsubscribe from this group and stop receiving emails from it, send an
email to ovn-kubernetes+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
https://groups.google.com/d/msgid/ovn-kubernetes/CAAF2STQ0cJU0BWPrt%2BGeFa4ehxyWGh6-rSYnZ0N89c1GTnX86g%40mail.gmail.com
.
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to