-
Notifications
You must be signed in to change notification settings - Fork 370
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
Antrea1.4: Windows node service route logic looks to be broken #4467
Comments
I have a PR #3889 that unifies some functions of Windows and Linux. This PR may fix the issue. In this PR,
|
This PR #3889 plans to be merged in Antrea 1.11. |
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
@shettyg it's because K8s doesn't expose the serviceCIDR information anywhere officially. We wanted to avoid asking user to configure the value when we already watch the service API with AntreaProxy enabled, and to avoid a potential misconfiguration. Instead, we dynamically calculate the serviceCIDR based on clusterIPs we already know, and it should be a subset of the real serviceCIDR used by K8s. But for historical reason, windows implementation didn't do it and we are going to unify the implementation via the PR @hongliangl mentioned. |
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix #4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix #4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix #4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix #4467 Signed-off-by: Hongliang Liu <[email protected]>
Fix #4467 Signed-off-by: Hongliang Liu <[email protected]>
…-io#4470) Fix antrea-io#4467 Signed-off-by: Hongliang Liu <[email protected]>
Describe the bug
There looks to be a few issues with SVC routes in windows in Antrea 1.4. Atleast by reading the code, the same issues look to exist in the master branch too.
map[10.96.0.1:true 10.96.0.10:true 10.96.1.70:true 10.96.10.217:true
But, the "routes" from c.listRoutes() has serviceIPs with their subnet specified. Example: 10.96.0.1/32. So you will always end up with calling util.RemoveNetRoute() for each of the serviceIPs in that function
The Reconcile() function and addServiceRoute() in pkg/agent/route/route_windows.go can be called in parallel threads. So while addServiceRoute() adds routes, Reconcile() deletes routes.
addServiceRoute() does: obj, found := c.hostRoutes.Load(svcIP.String()), but at the end of function loads it with: c.hostRoutes.Store(route.DestinationSubnet.String(), route). So the key is different types.
To Reproduce
Restart antrea-agent and you will see that some services are missing in the windows routes.
Tangential question: Why do we need to add each service IP route? Why not just put the serviceCIDR?
CC: @wenyingd @hongliangl
The text was updated successfully, but these errors were encountered: