-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Kubevirt hot migrate failed with fixed ip address in ipip mode. #8663
Comments
The remote route maintained by BIRD should also be a subnet for the IPAM block that contains the route, not a /32. The main times you should see /32 routes is when you have over-provisioned your IP pool (resulting in IP borrowing from other nodes) or if e.g., the IP pool itself has been deleted. I think the first step is figuring out why you're seeing a /32 route advertised in this case instead of using the aggregated route. |
@GaoChX do you have any more information? I am closing it now, but feel free to reopen if you made any relevant progress. |
Expected Behavior
When the virtual machines of kubevirt are being migrated, a virt-launcher pod with the same IP address is created on another node. And began the migration process. After the migration is completed, the old pod will change to the 'Completed' status.
Current Behavior
This functions normally in vxlan mode, but does not work properly in IPIP mode.
Possible Solution
The issue lies in this line of code: (https://github.com/GaoChX/calico/blob/71d6f8385a6272fc517e192fabc0898f7f565792/cni-plugin/pkg/dataplane/linux/dataplane_linux.go#L346)
In VXLAN mode, the remote route maintained by the other compute node is a subnet, but in IPIP mode, it is a /32 host route be maintained by bird. Therefore, adding a route in this manner can lead to conflicts, resulting in an error being returned.
Steps to Reproduce (for bugs)
Context
Here is error log:
I tried replacing RouteAdd with RouteReplace, and it worked very well.
Your Environment
The text was updated successfully, but these errors were encountered: