<p>So, I have an ingress controller routing traffic to three different services, but only one is working, all others are returning 503.
<strong>INGRESS YAML</strong></p>

<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  namespace: dev
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
spec:
  rules:
  - host: localhost
    http:
      paths:
      - path: /equip
        backend:
            serviceName: web-equip-svc-2
            servicePort: 18001
      - path: /hello
        backend:
            serviceName: hello-service
            servicePort: 80
      - path: /equip-ws
        backend:
            serviceName: web-equip-svc-2
            servicePort: 18000
</code></pre>

<p><strong>WORKING SVC YAML</strong></p>

<pre><code>apiVersion: v1
kind: Service
metadata:
  name: hello-service
  namespace: linkerd-test
  labels:
    app: hello
spec:
  type: ClusterIP
  selector:
    app: hello
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP
</code></pre>

<p><strong>NOT WORKING SVC YAML</strong></p>

<pre><code>---
apiVersion: v1
kind: Service
metadata:
  name: web-equip-svc-2
  namespace: dev
  labels:
    app: equipment-service
spec:
  type: ClusterIP
  selector:
    app: equipment-service
  ports:
  - name: "http"
    port: 18001
    targetPort: 8080
    protocol: TCP
  - name: "websocket"
    port: 18000
    targetPort: 8080
    protocol: TCP
</code></pre>

<p>So, I've already tried to change annotations from ingress, change svc from clusterIP to loadBalancer... and nothing worked, any help would be welcomed</p>

Thiago Casa Nova
<p>You should keep your services as ClusterIP if you can. The point of the Ingress Controller is to have one centralised ingress into your cluster.</p>

<p><strong>First thing to try</strong></p>

<p>Test your services independently first. (The two that are not working). Exec into another pod that is running, and do:</p>

<p><code>curl http://web-equip-svc-2:18001</code> and see if you get a response back going directly to the service rather than via your ingress. If that works fine, then you know its a problem with your ingress rule configuration and/or controller.</p>

<p>If it doesn't work, then you know its just your actual container/pod that is running those two services, and you can focus there and fix the problem there first.</p>

<p><strong>Second thing to try</strong></p>

<p>Simplify your ingress rule. Remove the path for <code>/equip-ws</code> as a start, and have just your paths for <code>/hello</code> and for <code>/equip</code>.</p>

<pre><code>      - path: /equip-ws
        backend:
            serviceName: web-equip-svc-2
            servicePort: 18000
</code></pre>

<p>Then test <code>http://localhost/hello</code> and <code>http://localhost/equip</code> again with the simplified ingress rule changed.</p>

<p>If this works then you know that your two equip paths in your ingress rule are causing issues and you can fix the conflict/issue there.</p>
