<p>I have an eks cluster and my deployment , service and loadBalancer all work fine.each service creates its own LoadBalancer and all services are up and running .I have one front end service and 2 backend services
here is the my deployment and ingress file</p>

<pre><code>---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: apache-kubernetes
spec:
  replicas: 2
  selector:
    matchLabels:
      app: apache-kubernetes
  template:
    metadata:
      labels:
        app: apache-kubernetes
    spec:
      containers:
      - name: apache-kubernetes
        image: httpd
        ports:
        - containerPort: 80
        env:
        - name: MESSAGE
          value: Hello Kubernetes!
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hello-apache-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"

spec:
  rules:
  - host: apache.example.com
  - http:
      paths:
      - path: /
        backend:
          serviceName: apache-kubernetes
          servicePort: 80
</code></pre>

<p>I have a similar deployment and service yaml file which deploys and creates a nginx web server .I also ran the following commands 
The following Mandatory Command is required for all deployments.</p>

<pre><code>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
</code></pre>

<p>and </p>

<pre><code>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud-generic.yaml
</code></pre>

<p>as documented in this url <a href="https://kubernetes.github.io/ingress-nginx/deploy/#aws" rel="nofollow noreferrer">https://kubernetes.github.io/ingress-nginx/deploy/#aws</a></p>

<p>I then run these two commands
<code>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/aws/service-l4.yaml</code>
<code>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/aws/patch-configmap-l4.yaml</code></p>

<p>I run <code>kubectl get all</code>, I see my pods , replicatsets and deployments are running fine , </p>

<pre><code>kubectl get ingress shows 
hosts                 ADDRESS
apache.example.com   216990309c-1626238635.us-east-2.elb.amazonaws.com
nginx.example.com    216990309c-1626238635.us-east-2.elb.amazonaws.com
</code></pre>

<p>I was expecting that when I hit <code>apache.example.com</code> -- it should show "it works"
and Nginx.example.com should show "welcome Nginx"</p>

<p>Am I doing this right </p>

<p>browser ==>ALB==>ingresscontroller==>ekscluster</p>

<p>update 1</p>

<p>when I hit the url I get 503 but the pods are running</p>

<p>kubectl -n ingress-nginx logs nginx-ingress-controller-db5f9d7b5-cwwh2</p>

<p>gives me</p>

<pre><code>6 controller.go:781] Error obtaining Endpoints for Service "default/hello-kubernetes": no object matching key "default/hello-kubernetes" in local store
W0911 23:43:02.505451       6 controller.go:781] Error obtaining Endpoints for Service "default/nginx-kubernetes": no object matching key "default/nginx-kubernetes" in local store
W0911 23:43:20.846517       6 controller.go:781] Error obtaining Endpoints for Service "default/hello-kubernetes": no object matching key "default/hello-kubernetes" in local store
W0911 23:43:20.846540       6 controller.go:781] Error obtaining Endpoints for Service "default/nginx-kubernetes": no object matching key "default/nginx-kubernetes" in local store
</code></pre>

user17970
<p>So just a thought (and I might have missed read your question) but the ingress-controller doesn't route directly to your deployment, it needs a service to route with, so in your case you would have to create a service like this:</p>

<pre><code>apiVersion: v1
kind: Service
metadata:
  name: apache-kubernetes
spec:
  selector:
    app: apache-kubernetes
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
</code></pre>

<p>This will then configure the nginx ingress with endpoints to route to, where in your ingress you specify:</p>

<pre><code>...
paths:
      - path: /
        backend:
          serviceName: apache-kubernetes
          servicePort: 80
</code></pre>

<p>this will point to a service not a deployment</p>

<p>The flow (logically as nginx ingress doess some magic for less hops):</p>

<p>browser ==>ALB==>ekscluster==>ingresscontroller==>service==>pod</p>
