Skip to content

LoadBalancer&NodePort service cannot access after upgrade from 1.20 to 1.22 #110208

@BSWANG

Description

@BSWANG

What happened?

LoadBalancer&NodePort service cannot access after upgrade from 1.20 to 1.22.
The NodeName field in v1.endpointslice.endpoint missed.
image

The convertion in apiserver emit the field Topology in v1beta1.endpointslice and not convert to field NodeName in v1.endpointslice.

And the kube-proxy on 1.22 only use the NodeName field to judge whether the endpoint is Local. So kube-proxy on each node removed the endpoint from NodePort. Then LoadBalancer&NodePort network broken.

What did you expect to happen?

The LoadBalancer&NodePort network should not broken duration upgrade.

How can we reproduce it (as minimally and precisely as possible)?

  1. Create 1.20 cluster.
  2. Craete LoadBalancer Service with ExterernalTrafficPolicy setting to Local
  3. Upgrade the cluster.
  4. Observe the cluster's LoadBalancer networking.

Anything else we need to know?

No response

Kubernetes version

Details
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.7", GitCommit:"1dd5338295409edcfff11505e7bb246f0d325d15", GitTreeState:"clean", BuildDate:"2021-01-13T13:23:52Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"22+", GitVersion:"v1.22.3-aliyun.1", GitCommit:"7a509a37c6f3b8f82175df3fb149974999882a54", GitTreeState:"clean", BuildDate:"2022-05-24T08:59:55Z", GoVersion:"go1.16.9", Compiler:"gc", Platform:"linux/amd64"}

Cloud provider

Details alibabacloud

OS version

Details
# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here

# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here

Install tools

Details

Container runtime (CRI) and version (if applicable)

Details

Related plugins (CNI, CSI, ...) and versions (if applicable)

Details

Metadata

Metadata

Assignees

Labels

kind/bugCategorizes issue or PR as related to a bug.lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.sig/networkCategorizes an issue or PR as relevant to SIG Network.triage/acceptedIndicates an issue or PR is ready to be actively worked on.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions