Skip to content

CCM-linode shows error when installing Ingress Nginx #252

@johnlai2004

Description

@johnlai2004

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)

  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
install-k8.txt
install-k8-and-start.txt

Environment Specifications

Ubuntu 22.04 and Ubuntu 24.04

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions