Home > Blockchain >  Kuberntes ingress return 502
Kuberntes ingress return 502

Time:06-18

I have some problem with my Kubernetes ingress for only this service that always returns 502. I have tested the service and it's working fine, but when I expose it with ingress it doesn't work.

I use EKS and Nginx ingress controller

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: develop
  name: chatbot-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
    - http:
        paths:
          - backend:
              service:
                name: chatbot
                port:
                  number: 7070
            pathType: Prefix
            path: /
      host: api.example.com
---
apiVersion: v1
kind: Service
metadata:
  name: chatbot
  namespace: develop
spec:
  selector:
    app: chatbot
  ports:
    - port: 7070
      targetPort: 7070
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: chatbot
  namespace: develop
spec:
  selector:
    matchLabels:
      app: chatbot
  template:
    metadata:
      labels:
        app: chatbot
    spec:
      containers:
        - name: chatbot
          image: chatbot 
          imagePullPolicy: Always
          envFrom:
            - secretRef:
                name: chatbot-secret
          ports:
            - containerPort: 7070

Ingress log

2022/06/16 13:51:20 [error] 2069#2069: *9278411 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.49.139, server: api.example.com, request: "GET / HTTP/2.0", upstream: "http://192.168.8.148:7070/", host: "api.example.com"
2022/06/16 13:51:20 [error] 2069#2069: *9278411 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.49.139, server: api.example.com, request: "GET / HTTP/2.0", upstream: "http://192.168.8.148:7070/", host: "api.example.com"

CodePudding user response:

Should that host be updated from api.example.com to the relevant endpoint of the service to connect to?

spec:
  rules:
    - http:
        paths:
          - backend:
              service:
                name: chatbot
                port:
                  number: 7070
            pathType: Prefix
            path: /
      host: api.example.com

Something that might help is using a service like Lumigo to do some tracing (they have a free tier)

CodePudding user response:

It turned out that the image that I run expose on localhost:7070 instead of 0.0.0.0:7070. However, I still don't know why my service was able to connect to the pod and I could test it by port forwarding but my ingress wasn't able to connect with that working service.

  • Related