<p>I created an ingress on GKE for kibana, and the browser returns 404 (although it works with the original service), and I guess it's because I need to route to the <code>/app/kibana</code> endpoint. How can I do that?</p>
<p>This is my ingress:</p>
<pre><code>kind: Ingress
metadata:
  name: my-ingress
  namespace: default
  annotations:
    ingress.kubernetes.io/affinity: cookie
    kubernetes.io/ingress.class: gce
    kubernetes.io/ingress.global-static-ip-name: my-proxy
    ingress.kubernetes.io/affinity: cookie
    ingress.kubernetes.io/session-cookie-hash: sha1
    ingress.kubernetes.io/session-cookie-name: route
    nginx.ingress.kubernetes.io/affinity: cookie
    kubernetes.io/ingress.class: gce
    kubernetes.io/ingress.allow-http: &quot;false&quot;
  annotations:
spec:
  tls:
  - secretName: my-tls
  rules:
  - http:
      paths:
      - path: /kibana
        backend:
          serviceName: kibana-nodeport
          servicePort: 5601 
</code></pre>
<p>my nodeport service:</p>
<pre><code>apiVersion: v1
kind: Service
metadata:
  name: kibana-nodeport
  namespace: default
spec:
  ports:
  - port: 5601
    protocol: TCP
    targetPort: 5601
  selector:
    k8s-app: kibana
  sessionAffinity: None
  type: NodePort
</code></pre>
<p>the kibana orginial service:</p>
<pre><code>apiVersion: v1
kind: Service
metadata:
  labels:
    component: kibana
  name: kibana-ext
  namespace: default
spec:
  externalTrafficPolicy: Cluster
  loadBalancerSourceRanges:
    - x.x.x.x/32
  ports:
  - name: http
    port: 5601
    protocol: TCP
    targetPort: 5601
  selector:
    k8s-app: kibana
  sessionAffinity: None
  type: LoadBalancer
</code></pre>
<p><strong>UPDATE:</strong></p>
<p>When I set Kibana's path to &quot;/*&quot;, it works. Otherwise I get 404.</p>

Idan
<p>You should add the /* so subpaths will work</p>
<pre><code>  rules:
  - http:
      paths:
      - path: /kibana/*
        backend:
          serviceName: kibana-nodeport
          servicePort: 5601 
</code></pre>
