-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
VXLAN not working when tunnel address is borrowed #5595
Comments
Is it a bug for this ? @caseydavenport |
It does sound like a bug, although I'm not sure the root cause off the top of my head. I would have thought we'd be resilient to VXLAN tunnel addresses being borrowed, but perhaps not. As a workaround, you might want to turn off IP borrowing by enabling IPAM strict affinity, or look into why IP addresses are being borrowed in the first place (it usually indicates that your IP pool configuration isn't ideal and you're running out of blocks, or that you have leaked some IP addresses) |
@caseydavenport This problems appear when my k8s nodes have use up all the ipamblock(all the ipamblock has been attached by existing node), Now I want to extend a node for k8s. And the new node doesn't have ipamblock and have to borrow other ipamblock(because IPAM strict affinity is close by default). It is easy to reproduce this problems. you can make a try. |
Yep, that's the scenario in which borrowing occurs. My point was that we should be resilient to borrowing when it happens. Do you know why you're using all of the IPAM blocks? Do you have an exceptionally large cluster or an exceptionally small IP pool? |
yeah, that would occurs. You mean when IPAM blocks is not enough, the cluster should be forbided to extend the node? @caseydavenport |
By default no, but there is an option to tell Calico to disable IP borrowing when it runs out of blocks. |
So which config you recommend @caseydavenport , shall we use IPAM strict affinity by default ? But if we use it, fixed ip feature maybe be affected.. |
Correct, if you're using features that require borrowing then strict affinity isn't an option.
Can you point me to the code snippet you were looking at? |
maybe in vxlan_mgr.go, function OnUpdate. |
similar problem, vxlan.calico interface has UNKNOWN state and icmp can not reach it from another node |
Looks like more discussion has happened on the duplicate bug #6160 so let's close this in favour of that one. |
we meet a problems which calico node can not reach other node's pod. And we use calico vxlan mode. And the problem node's vxlan device ip is borrowed from other node's ipamblock.
we ping other node's pods in this node, the packcet dont reply back to this problem node, because reply dst suit the route that isn't not its.
like that:
the problems node is :
vxlan device ip is 172.18.0.75
it route is:
and the other node is
we can see in other node dont have route like 172.18.0.75 via 172.18.0.75 dev vxlan.calico onlink, and packet back error
I use calico latest verison, And it perform the same.
And I see the code in calico dont deal with the scene (that vxlan ip is borrow from others).
if the route is IPv4VXLANTunnelAddr, it dont add any route and all pass it.
the traffice is node -> pod(other node), and node's vxlan ip is borrowed from other node ipamblock.
The text was updated successfully, but these errors were encountered: