Load balancer issue in rancher 2.5.1

I installed rancher 2.5.1 on a 2 node EKS cluster following the guide on https://rancher.com/docs/rancher/v2.5/en/installation/install-rancher-on-k8s/

I installed cert-manager.

In step 6 I decided to use the certificates generated by rancher. So I ran:

helm install rancher rancher-latest / rancher
–namespace cattle-system
–set hostname = rancher.smartraining.cl

For rancher.smartraining.cl I added a network load balancer in AWS EC2 specifying 2 target groups (one for TCP port 80 and one for TCP port 443) redirecting the traffic to the 2 cluster nodes instances.

But the targetss appear as “unhealthy”.

I don’t understand what I did wrong. Is it necessary to create an ingress-controller or something similar? Or maybe I misconfigured the load balancer.

All I see is:

$ kubectl -n cattle-system describe ingress
Name:             rancher
Namespace:        cattle-system
Address:
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
TLS:
  tls-rancher-ingress terminates rancher.smartraining.cl
Rules:
  Host                     Path  Backends
  ----                     ----  --------
  rancher.smartraining.cl
                              rancher:80 (192.168.47.246:80,192.168.5.81:80,192.168.7.58:80)
Annotations:               cert-manager.io/issuer: rancher
                           cert-manager.io/issuer-kind: Issuer
                           meta.helm.sh/release-name: rancher
                           meta.helm.sh/release-namespace: cattle-system
                           nginx.ingress.kubernetes.io/proxy-connect-timeout: 30
                           nginx.ingress.kubernetes.io/proxy-read-timeout: 1800
                           nginx.ingress.kubernetes.io/proxy-send-timeout: 1800
Events:                    <none>

Could someone help me diagnose what I did wrong?

AFAIK, to make an ingress resourcea work in kubernetes, an ingress controller needs to be running in the cluster. Rancher’s documentation does not mention any ingress controller. Following the installation guide, no controller is installed.

I deployed nginx ingress-controller:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm install ingress-nginx ingress-nginx/ingress-nginx

And it worked. No need to manually create a load balancer in AWS. It’s deployed automatically.