title: Exposing a service on EKS using NGINX ingress and issues with load balancer
body: <p>I am trying to set up a service and expose it externally on EKS. I have already done it on GKE pretty easily but now AWS is giving me a hard time.</p>
  <p>My NGINX yaml looks something like that:</p>
  <pre><code>apiVersion: extensions/v1beta1
  kind: Ingress
  metadata:
    name: myapp-ingress
    annotations:
      kubernetes.io/ingress.class: &quot;nginx&quot;
      cert-manager.io/cluster-issuer: &quot;letsencrypt-prod&quot;
  
  spec:
    tls:
    - hosts:
      - app.mydomain.com
      secretName: myapp-tls
    rules:
    - host: app.mydomain.com
      http:
        paths:
        - path: /
          backend:
            serviceName: myapp-service
            servicePort: 80
  </code></pre>
  <p>And then I have my domain <code>app.mydomain.com</code> on Google Domains pointing at the ingress external address. There is also a cert-manager service running in order to support HTTPS.</p>
  <p>However, while basically the same setup worked completely out of the box on GKE, EKS gives me a hard time.</p>
  <p>From what I understand it has something to do with EKS default LoadBalancer being layer 4 in comparison to Google's layer 7 (Which explains HTTPS not working) but there is also issues with redirections of the domain as it just resolves as the ingress address instead of my desired address and thus my app doesn't show up.</p>
  <p>The domain is registered over Google Domains and I'm creating Synthetic Records (for my subdomain) that points to my ingress external address on EKS. The same scheme works perfectly fine on GKE but here it resolves the address as the ingress address instead of my domain which results in 404 on the ingress side.</p>
  <p>I was wondering if someone could please point me to how to properly set it up? Should I give up on nginx ingress on EKS and move onto ALB? and how to properly associate the domain?</p>
  <p>Thank you very much in advance!</p>
  <hr />
  <h3>Edit:</h3>
  <p>output of <code>kubectl describe ingress myapp-ingress</code>:</p>
  <pre><code>Name:             myapp-ingress
  Namespace:        default
  Address:          ********************************-****************.elb.eu-west-1.amazonaws.com
  Default backend:  default-http-backend:80 (&lt;error: endpoints &quot;default-http-backend&quot; not found&gt;)
  TLS:
    myapp-tls terminates app.mydomain.com
  Rules:
    Host                          Path  Backends
    ----                          ----  --------
    app.mydomain.com  
                                  /   myapp-service:80 (172.31.2.238:8000)
  Annotations:                    cert-manager.io/cluster-issuer: myapp-letsencrypt-prod
                                  kubernetes.io/ingress.class: nginx
  Events:                         &lt;none&gt;
  </code></pre>