Skip to content
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

UDP services may trigger unnecessary LoadBalancer updates #1087

Closed
feiskyer opened this issue Jan 29, 2022 · 3 comments · Fixed by #1090
Closed

UDP services may trigger unnecessary LoadBalancer updates #1087

feiskyer opened this issue Jan 29, 2022 · 3 comments · Fixed by #1090
Assignees
Labels
kind/bug Categorizes issue or PR as related to a bug.

Comments

@feiskyer
Copy link
Member

feiskyer commented Jan 29, 2022

What happened:

While nothing changed to all LoadBalancer service specs, scaling node number or restart controller manager would trigger LoadBalancer update APIs. This is because EnableTCPReset value is different between expected LB rule and existing LB rule when the protocol is not TCP, and hence equalLoadBalancingRulePropertiesFormat() would treat the LB rule as updated.

And here are the related logs:

I0129 07:27:01.471484       1 azure_loadbalancer.go:1516] reconcileLoadBalancer for service(default/test): lb(test-rg/kubernetes) wantLb(true) resolved load balancer name
I0129 07:27:01.530862       1 azure_loadbalancer.go:2106] getExpectedLBRules lb name (kubernetes) rule name (a30cf55982b684c1993a23dd1e177c98-UDP-24899)
I0129 07:27:01.530954       1 azure_loadbalancer.go:1696] reconcileLoadBalancer for service (default/test)(true): lb rule(a30cf55982b684c1993a23dd1e177c98-UDP-24899) - dropping

What you expected to happen:

  • EnableTCPReset should only be set in LB rule when the protocol is TCP.
  • equalLoadBalancingRulePropertiesFormat should omit EnableTCPReset when protocol is not TCP.

How to reproduce it (as minimally and precisely as possible):

Create a UDP LoadBalancer service in the cluster and then restart controller manager. After a while, there would be new write operations in LoadBalancer activities (this could be observed on the Azure portal).

Anything else we need to know?:

Environment:

  • Kubernetes version (use kubectl version):
  • Cloud provider or hardware configuration:
  • OS (e.g: cat /etc/os-release):
  • Kernel (e.g. uname -a):
  • Install tools:
  • Network plugin and version (if this is a network-related bug):
  • Others:
@feiskyer feiskyer added the kind/bug Categorizes issue or PR as related to a bug. label Jan 29, 2022
@feiskyer
Copy link
Member Author

/assign @lzhecheng

@k8s-ci-robot
Copy link
Contributor

@feiskyer: GitHub didn't allow me to assign the following users: lzhecheng.

Note that only kubernetes-sigs members, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time.
For more information please see the contributor guide

In response to this:

/assign @lzhecheng

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@lzhecheng
Copy link
Contributor

/assign

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants