-
Notifications
You must be signed in to change notification settings - Fork 268
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
ServiceLB is broken when rke2-cloud-provider is on 1.29 but k8s version is <=1.28 #5882
Comments
Yeah, the problem is that it's not set explicitly by RKE2, so it uses the default for the Kubernetes version the CCM is built against - and the K3s CCM is built against 1.29 (as you noted). The best current work-around is to set this in your config.yaml: kube-cloud-controller-manager-arg:
- 'feature-gates=PodHostIPs=false' |
I'm not sure this has changed at all in these releases. Is this meant to be in Working status still, not To Test? @brandond I checked on release-1.28 branch commitid
Also I will note that I'm not able to reproduce the issue exactly other than this. For my steps, I need to include |
No sorry, I think I moved this over on accident. This can go back to next up until July. |
Note that the CCM versions are now in sync with the Kubernetes minor versions across all branches, which should address the mismatch in default feature-gate states. |
Currently releases do not reproduce this original issue. $ kg pod/cloud-controller-manager-ip -n kube-system -o yaml | grep -i image:
$ k version
$ rke2 -v
$ k version
$ kg svc # note pending service external-ip is expected here
$ kgp -n default
$ get_figs
|
Environmental Info:
RKE2 Version: v1.28.9+rke2r1
Node(s) CPU architecture, OS, and Version: Linux dev 4.18.0-552.el8.x86_64 #1 SMP Sun Apr 7 19:39:51 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux, CentOS 8
Cluster Configuration:
1 server, 0 agents
Describe the bug:
ServiceLB fails to come up
Steps To Reproduce:
Expected behavior:
ServiceLB Load Balancer comes up
Actual behavior:
LoadBalancer Service is stuck pending, with the following in events:
Additional context / logs:
This is caused by version mismatch of rke2-cloud-provider and kubernetes apiserver.
rke2-cloud-provider
decides whether to use HostIPs ref based on what's enabled by default on the k8s version cloud-provider is compiled with. If the version is 1.29, rke2-cloud-provider believes that PodHostIPs is available, but if k8s version is actually 1.28, it's not enabled by default, so it breaks.3 weeks ago, cloud-provider was bumped to 1.29 on 1.28 and 1.27 release branches, see e.g. this. Indeed:
To fix,
rke2-cloud-provider
should obtain the actual feature gate state, instead of whatever's default for the given k8s version.The text was updated successfully, but these errors were encountered: