-
Notifications
You must be signed in to change notification settings - Fork 68
Description
General:
- [ yes] Have you removed all sensitive information, including but not limited to access keys and passwords?
- [ yes] Have you checked to ensure there aren't other open or closed Pull Requests for the same bug/feature/question?
This is a follow up to this earlier ticket: #250
Even though the earlier ticket is resolved, the CCM is still not publishing an external IP that can be used by an Ingress Nginx Controller. Here's my question:
I am trying to get ingress-nginx-controller to work in an unmanaged kubernetes system. I followed these guides:
https://www.linode.com/docs/guides/deploy-kubernetes-cluster-using-kubeadm/
https://github.com/linode/linode-cloud-controller-manager?tab=readme-ov-file#to-deploy-ccm-linode-run-the-following-command
https://www.linode.com/docs/guides/deploy-nginx-ingress-on-lke/
But the end result is always this:
$ kubectl logs ccm-linode-9s4fz -n kube-system
E1205 04:09:27.805891 1 controller.go:298] error processing service default/ingress-nginx-controller (retrying with exponential backoff): failed to ensure load balancer: [400] [configs[0].nodes[0].address] Must be in address:port format; [configs[1].nodes[0].address] Must be in address:port format
I1205 04:09:27.806132 1 event.go:376] "Event occurred" object="default/ingress-nginx-controller" fieldPath="" kind="Service" apiVersion="v1" type="Warning" reason="SyncLoadBalancerFailed" message="Error syncing load balancer: failed to ensure load balancer: [400] [configs[0].nodes[0].address] Must be in address:port format; [configs[1].nodes[0].address] Must be in address:port format"
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-one ClusterIP 10.100.159.160 <none> 80/TCP 8m37s
hello-two ClusterIP 10.101.70.107 <none> 80/TCP 8m37s
ingress-nginx-controller LoadBalancer 10.106.208.134 <pending> 80:32595/TCP,443:30397/TCP 10m
ingress-nginx-controller-admission ClusterIP 10.107.157.208 <none> 443/TCP 10m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 16m
Notice the ccm-linode-9s4fz
gives an error. And my ingress-nginx-controller
EXTERNAL-IP is always stuck in <pending>
.
I made an 8 minute video showing and explaining step by step what I was doing:
https://www.youtube.com/watch?v=D-dTveBpDuY
To summarize what I did in the video, i performed these steps: (all *.sh files are attached here as *.txt files, so you can rename the extensions)
- Create 2 new linodes with Ubuntu 22.04 (i also tried Ubuntu 24.04 and it gave the same issue). I called them
kube1
andkube2
. - I ran the file
./install-k8-and-start.sh
on kube1 (for this *.sh, replace the IPs on line 6 with your machine IPs) - I ran the file
./install-k8.sh
on kube2 (for this *.sh, replace the IPs on line 6 with your machine IPs). - Make kube2 join kube1.
- I set the
--cloud-provider=external
and did asystemctl restart kubelet
on both kube1 and kube2. - I ran
./install-helm-and-ccm.sh
on kube1. (make sure to replace the api token and region with yours) - I ran
helm install ingress-nginx ingress-nginx/ingress-nginx;
on kube1.
Then I get the issues above where the ccm-linode-9s4fz
pod gives an error, and the ingress-nginx-controller
never gets an IP address.
EXPECTED BEHAVIOUR
the ingress-nginx-controller should get an external ip
install-helm-and-ccm.txt
install-k8.txt
install-k8-and-start.txt
Environment Specifications
Ubuntu 22.04 and Ubuntu 24.04