Skip to content

EKS Cluster and Ingress-NGINX

Ingress Nginx

Ingress-NGINX is a popular reverse proxy and load balancer. In this example, I demonstrate a complete EKS cluster with an ingress controller and a sample app to verify the installation.

🖥 EKS with Ingress-NGINX contains everything required to spin up a new cluster and expose an application via the Ingress-NGINX controller. Sample app.

Why do we need the AWS Load Balancer controller?

Without the LB controller, Ingress-NGINX provisions a load balancer using NodePort as the target type. VPC CNI and the LB controller enable target type ip, allowing traffic to flow directly to the pod's IP and port.

EKS design document

Advantages of Ingress-NGINX over the ALB controller
Services can be configured using ClusterIP — not exposed on the local network
Traffic routed directly from the ingress controller to the pod and its port
Ingress metrics (Prometheus) available within the cluster
No IAM permissions required (LB controller requires IAM)
Cert-Manager can be used for SSL certificate management

Resources

  • VPC with 2 private and 2 public subnets
  • VPC CNI add-on with prefix delegation
  • AWS Load Balancer controller
  • Ingress-NGINX controller