Welcome to the Linux Foundation Forum!

Ingress not working

Ingress is not working and I am not sure why.

Details:

I have two deployments running four pods:

i@cp:~$ k get pods -n prod
NAME                          READY   STATUS    RESTARTS   AGE
hello-dep-58d75f88f-75j9w     1/1     Running   0          6m47s
hello-dep-58d75f88f-tsjq6     1/1     Running   0          2d4h
hello2-dep-6df5f875d6-fjlgx   1/1     Running   0          2d4h
hello2-dep-6df5f875d6-rg8xf   1/1     Running   0          6m47s

And their respective services:

i@cp:~$ k get svc -n prod
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
hello-srv    ClusterIP   10.107.219.251   <none>        80/TCP    2d4h
hello2-srv   ClusterIP   10.110.36.35     <none>        80/TCP    2d4h

I have created an ingress:

i@cp:~$ k get ing -n prod
NAME            CLASS   HOSTS       ADDRESS   PORTS   AGE
hello-ingress   nginx   hello.com             80      2d4h

i@cp:~$ k describe ing -n prod
Name:             hello-ingress
Labels:           <none>
Namespace:        prod
Address:
Ingress Class:    nginx
Default backend:  <default>
Rules:
  Host        Path  Backends
  ----        ----  --------
  hello.com
              /v1   hello-srv:80 (192.168.0.121:8080,192.168.0.144:8080)
              /v2   hello2-srv:80 (192.168.0.244:8080,192.168.0.49:8080)
Annotations:  <none>
Events:
  Type    Reason  Age    From                      Message
  ----    ------  ----   ----                      -------
  Normal  Sync    3m48s  nginx-ingress-controller  Scheduled for sync

Curling any of the addresses works just fine:

i@cp:~$ curl 192.168.0.121:8080
Hello, world!
Version: 1.0.0
Hostname: hello-dep-58d75f88f-tsjq6

But the port 80 is closed:

i@cp:~$ curl hello.com
curl: (7) Failed to connect to hello.com port 80 after 0 ms: Connection refused

i@cp:~$ curl hello.com/v1
curl: (7) Failed to connect to hello.com port 80 after 0 ms: Connection refused

i@cp:~$ curl localhost
curl: (7) Failed to connect to localhost port 80 after 0 ms: Connection refused

i@cp:~$ ping hello.com
PING hello.com (192.168.138.129) 56(84) bytes of data.
64 bytes from k8scp (192.168.138.129): icmp_seq=1 ttl=64 time=0.083 ms

i@cp:~$ curl k8scp
curl: (7) Failed to connect to k8scp port 80 after 0 ms: Connection refused

i@cp:~$ curl 192.168.138.129
curl: (7) Failed to connect to 192.168.138.129 port 80 after 0 ms: Connection refused

I thought it was a problem of a lack of an Ingress Controller, so I installed one:

i@cp:~$ helm list
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
myingress       default         1               2024-09-23 22:03:56.346203937 +0000 UTC deployed        ingress-nginx-4.11.2    1.11.2

i@cp:~$ k get pods
NAME                                       READY   STATUS    RESTARTS        AGE
myingress-ingress-nginx-controller-bxwpv   1/1     Running   0               47h
myingress-ingress-nginx-controller-xrlxc   1/1     Running   2 (8m59s ago)   47h

But the result is the same.

What can be happening? Do I have to link the ingress Controller to my ingress somehow?

Thanks.

Comments

  • curl -H "Host: hello.com" $CLUSTER_IP/v1

  • ilmx
    ilmx Posts: 13

    The cluster IPs work. What I need is to access the ingress.
    I have "hello.com" configured to point to the control plane.

  • chrispokorni
    chrispokorni Posts: 2,301

    Hi @ilmx,

    For external access, either use a NodePort Service for the ingress controller, or enable the hostPort on the myingress ingress controller Pods.

    Regards,
    -Chris

  • ilmx
    ilmx Posts: 13

    Thanks @chrispokorni What does it mean "enable the hostPort on the myingress ingress controller Pods"? How can I do that?
    In other clusters I have used (already installed), ingress used to work automatically so probably I am missing some step

Categories

Upcoming Training