linode / linode/linode-cloud-controller-manager

CCM-linode shows error when installing Ingress Nginx

Offen
#252 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Go
Sterne
94
Forks
75
Ø Merge
11 Std. 19 Min.
Gemergte PRs (30 T.)
20

Beschreibung

## 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](../../pulls) for the same bug/feature/question?

----

This is a follow up to this earlier ticket: https://github.com/linode/linode-cloud-controller-manager/issues/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 80/TCP 8m37s
hello-two ClusterIP 10.101.70.107 80/TCP 8m37s
ingress-nginx-controller LoadBalancer 10.106.208.134 80:32595/TCP,443:30397/TCP 10m
ingress-nginx-controller-admission ClusterIP 10.107.157.208 443/TCP 10m
kubernetes ClusterIP 10.96.0.1 443/TCP 16m
```

Notice the `ccm-linode-9s4fz` gives an error. And my `ingress-nginx-controller` EXTERNAL-IP is always stuck in ``.

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)

1. Create 2 new linodes with Ubuntu 22.04 (i also tried Ubuntu 24.04 and it gave the same issue). I called them `kube1` and `kube2`.
2. I ran the file `./install-k8-and-start.sh` on kube1 (for this *.sh, replace the IPs on line 6 with your machine IPs)
3. I ran the file `./install-k8.sh` on kube2 (for this *.sh, replace the IPs on line 6 with your machine IPs).
4. Make kube2 join kube1.
5. I set the `--cloud-provider=external` and did a `systemctl restart kubelet` on both kube1 and kube2.
6. I ran `./install-helm-and-ccm.sh` on kube1. (make sure to replace the api token and region with yours)
7. 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](https://github.com/user-attachments/files/18025968/install-helm-and-ccm.txt)
[install-k8.txt](https://github.com/user-attachments/files/18025969/install-k8.txt)
[install-k8-and-start.txt](https://github.com/user-attachments/files/18025970/install-k8-and-start.txt)

### Environment Specifications
Ubuntu 22.04 and Ubuntu 24.04

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit den ccm-linode-Logs, insbesondere mit controller.go:298, und prüfe die angehängten Skripte install-helm-and-ccm.txt, install-k8.txt und install-k8-and-start.txt. Reproduziere das in der Issue beschriebene ingress-nginx-LoadBalancer-Setup und verfolge, wie die Node-Adressen an den Load Balancer übergeben werden. Erledigt ist die Aufgabe, wenn der Controller den Validierungsfehler für address:port nicht mehr meldet und ingress-nginx-controller eine externe IP erhält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
go, helm, kubernetes, nginx
Bereich
cloud, infrastructure, networking
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.