<p>I want to set up an ingress controller on AWS EKS for several microservices that are accessed from an external system.</p>

<p>The microservices are accessed via virtual host-names like <code>svc1.acme.com</code>, <code>svc2.acme.com</code>, ...</p>

<p>I set up the nginx ingress controller with a helm chart: <a href="https://github.com/helm/charts/tree/master/stable/nginx-ingress" rel="nofollow noreferrer">https://github.com/helm/charts/tree/master/stable/nginx-ingress</a></p>

<p>My idea was to reserve an Elastic IP Address and bind the nginx-controller to that IP  by setting the variable externalIP.</p>

<p>This way I should be able to access the services with a stable wildcard DNS entry <code>*.acme.com --&gt; 54.72.43.19</code></p>

<p>I can see that the ingress controller service get the externalIP,  but the IP is not accessible.</p>

<pre><code>NAME                                    TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-ingress-controller        LoadBalancer   10.100.45.119    54.72.43.19   80:32104/TCP,443:31771/TCP   1m
</code></pre>

<p>Any idea why?</p>

<p>Update:</p>

<p>I installed the ingress controller with this command:</p>

<p><code>
helm install --name ingress -f values.yaml stable/nginx-ingress
</code></p>

<p>Here is the gist for values, the only thing changed from the default is</p>

<p><code>
externalIPs: ["54.72.43.19"]
</code></p>

<p><a href="https://gist.github.com/christianwoehrle/3b136023b1e0085b028a67ca6a0959b7" rel="nofollow noreferrer">https://gist.github.com/christianwoehrle/3b136023b1e0085b028a67ca6a0959b7</a></p>

christian
<p>Maybe you can achieve that by using a Network Load Balancer (<a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html" rel="noreferrer">https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html</a>), that supports fixed IPs, as the backing for your Nginx ingress, eg (<a href="https://aws.amazon.com/blogs/opensource/network-load-balancer-support-in-kubernetes-1-9/" rel="noreferrer">https://aws.amazon.com/blogs/opensource/network-load-balancer-support-in-kubernetes-1-9/</a>):</p>

<pre><code>apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
  labels:
    app: nginx
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
spec:
  externalTrafficPolicy: Local
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
type: LoadBalancer
</code></pre>
