<p>I'm trying to deploy a SpringBoot app in local with Kubernetes and Traefik, with local url.</p>

<p>I already checked the pod, and the logs are OK, it seems the app is waiting for my calls.</p>

<p>But when I use Postman to call: </p>

<pre><code>GET http://sge-api.local/points/12345/search
</code></pre>

<p>I get: </p>

<pre><code>502 Bad Gateway
</code></pre>

<p>Here is my config:</p>

<p>Service: </p>

<pre><code>➜  sge git:(master) ✗ kubectl get service -n sge
NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
sge-api-local   ClusterIP   10.109.84.138   &lt;none&gt;        8888/TCP   75m
</code></pre>

<p>Ingress: </p>

<pre><code>➜  sge git:(master) ✗  kubectl get ingress -n sge
NAME             HOSTS           ADDRESS   PORTS   AGE
my-ingress   sge-api.local             80      75m
</code></pre>

<p>Pod: </p>

<pre><code>➜  sge git:(master) ✗ kubectl get logs -n sge sge-api-local-66d77d54ff-6fwc5

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.0.RELEASE)

2019-10-25 14:51:39.508  INFO 1 --- [           main] com.xxx.sge.MainApplication         : Starting MainApplication on sge-api-local-66d77d54ff-6fwc5 with PID 1 (/myapp.jar started by root in /)
2019-10-25 14:51:39.705  INFO 1 --- [           main] com.xxx.sge.MainApplication         : No active profile set, falling back to default profiles: default
2019-10-25 14:53:09.205  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ws.config.annotation.DelegatingWsConfiguration' of type [org.springframework.ws.config.annotation.DelegatingWsConfiguration$$EnhancerBySpringCGLIB$$5ed484ef] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-10-25 14:53:10.704  INFO 1 --- [           main] .w.s.a.s.AnnotationActionEndpointMapping : Supporting [WS-Addressing August 2004, WS-Addressing 1.0]
2019-10-25 14:53:39.002  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8081 (https)
2019-10-25 14:53:41.107  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-10-25 14:53:41.203  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.27]
2019-10-25 14:53:50.004  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-10-25 14:53:50.004  INFO 1 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 125302 ms
2019-10-25 14:54:47.609  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-10-25 14:55:47.302  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8081 (https) with context path ''
2019-10-25 14:55:47.902  INFO 1 --- [           main] com.xxx.sge.MainApplication         : Started MainApplication in 280.601 seconds (JVM running for 326.759)
</code></pre>

<p>My app also appears OK in traefik dashboard.</p>

<p>I have others app that also run in .local url </p>

<p>I also have set an entry in <code>/etc/hosts</code> with <code>sge-api.local</code> to 127.0.0.1</p>

<p>Here is my ingress:</p>

<pre><code>kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: sge-ingress
  namespace: sge
  annotations:
    kubernetes.io/ingress.class: traefik
spec:
  rules:
  - host: sge-api.local
    http:
      paths:
      - backend:
         serviceName: sge-api-local
         servicePort: 8888
</code></pre>

<p>My service :</p>

<pre><code>apiVersion: v1
kind: Service
metadata:
  labels:
    app: sge-api-local
  name: sge-api-local
  namespace: sge
spec:
  ports:
  - name: "8888"
    port: 8888
    targetPort: 8888
  selector:
    app: sge-api-local
</code></pre>

<p>My deployment: </p>

<pre><code>apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    reloader.stakater.com/auto: "true"
  labels:
    app: sge-api-local
  name: sge-api-local
  namespace: sge
spec:
  selector:
    matchLabels:
      app: sge-api-local
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: sge-api-local
    spec:
      containers:
      - image: sge_api:local
        name: sge-api-local
</code></pre>

<p>What should I do to debug this ?</p>

Juliatzin
<p>You have the spring application running with listening port 8081, this will not work.</p>

<pre><code>2019-10-25 14:53:39.002  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8081 (https)
</code></pre>

<p>Adjust your service to use target port 8081 instead of 8888</p>
