Skip to main content

Ingress Controllers

Why Ingress Was Born

Picture a bustling airport. Thousands of passengers arrive daily, but without customs and immigration counters, chaos would erupt - no one would know which gate to enter or which route to follow. Kubernetes faced the same challenge: once services were exposed, how do you manage external traffic, route requests to the right workloads, and enforce rules like SSL termination or path‑based routing?

Ingress was born as the customs and routing system of Kubernetes, ensuring external traffic enters the cluster in an organized, secure, and controlled way.


The Ingress Abstraction

  • Definition: Ingress is a Kubernetes resource that manages external access to services, typically HTTP/HTTPS.
  • Routing Rules: Define how requests are directed based on hostnames or paths.
  • TLS Termination: Handle SSL certificates at the edge, securing communication.
  • Load Balancing: Distribute traffic across multiple backend services.

Analogy: Ingress is like the airport customs desk - deciding who enters, where they go, and under what rules.


Ingress – The Gatekeepers

Ingress resources don’t work alone - they need Ingress Controllers to implement routing. Popular controllers include:

  • NGINX Ingress Controller: Widely used, flexible, and community‑driven.
  • HAProxy Ingress: High‑performance routing for demanding workloads.
  • Traefik: Lightweight, dynamic, and great for microservices.
  • Cloud Provider Controllers: AWS ALB Ingress, GCP Load Balancer, Azure Application Gateway.

Controllers are the gatekeepers, enforcing the rules defined in Ingress resources.


Global Context

  • Enterprises: Use Ingress for complex routing - multi‑tenant apps, path‑based APIs, and SSL termination.
  • Cloud Providers: Managed Kubernetes services integrate Ingress with native load balancers.
  • Community: Ingress remains one of the most powerful abstractions, bridging Kubernetes with the outside world.

Hands‑On Exercise

  1. Reflect: How does the Ingress Controller enforce routing rules, and how does this differ from basic Services?

Create an Ingress resource:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web-ingress
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web
            port:
              number: 80
kubectl apply -f ingress.yaml
kubectl get ingress

Deploy an NGINX Ingress Controller (using Helm or manifests).

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml

The Hacker’s Notebook

  • Ingress is customs - controlling how external traffic enters the cluster.
  • Controllers are gatekeepers - enforcing routing, SSL, and load balancing.
  • Lesson for engineers: Services expose workloads, but Ingress organizes and secures external access.
  • Hacker’s mindset: Treat Ingress as your traffic architect. With it, you can design secure, scalable entry points for global applications.

Tips, Tricks, Roadmaps, Resources, Networking, Motivation, Guidance, and Cool Stuff ♥

Updated on Dec 29, 2025