0

I have a problem reaching backend from frontend through ingress in minikube. Getting 502 Bad gateway. Frontend part works fine.

For example: POST from "http://127.0.0.1/login" to "http://127.0.0.1/api/v1/login". enter image description here

Frontend on React, Backend on Spring Boot

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: custom-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/service-upstream: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/enable-cors: "true"
    nginx.ingress.kubernetes.io/cors-allow-origin: "http://localhost"
    nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS, DELETE"
    nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,X-CustomHeader,X-LANG,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Api-Key,X-Device-Id,Access-Control-Allow-Origin"
spec:
  rules:
  - http:
      paths:
        - path: /?(.*)
          pathType: Prefix
          backend:
            service:
              name: frontend
              port:
                number: 3000
        - path: /api/?(.*)
          pathType: Prefix
          backend:
            service:
              name: backend-service
              port:
                number: 8080

backend.yaml

apiVersion: v1
kind: Service
metadata:
  name: backend-service
spec:
  selector:
    app: milk
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
  type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: backend
  namespace: default
  labels:
    project: milk
spec:
  replicas: 1
  selector:
    matchLabels:
      project: milk
  template:
    metadata:
      labels:
        project: milk
    spec:
      containers:
        - name: backend-container
          image: 'some-image'
          imagePullPolicy: Always

Dockerfile

FROM eclipse-temurin:17-jre-alpine

COPY *.jar /app.jar

CMD ["sh", "-c", "java ${JAVA_OPTS} -jar /app.jar ${@}"]

What can be wrong?

UPDATE: if I left only backend path in ingress, it works.

TomLott
  • 41
  • 6

0 Answers0