Skip to content

Note

Kubernetes Ingress Finally Made Sense When I Understood This

Ingress is much easier to understand when you stop treating it as a Kubernetes-specific concept.

1 min read
  • Kubernetes
  • Networking

The reframe

Ingress confused me until I stopped thinking about Kubernetes and started thinking about the underlying HTTP request path.

At its core, an Ingress is a routing table. It answers one question: given this request, which backend should receive it? Everything else is a naming convention on top of that idea.

The same request path, with the Kubernetes vocabulary alongside it.

text
Client
↓
DNS          → resolves a hostname
↓
Load Balancer → accepts the connection
↓
Ingress      → chooses a backend
↓
Service      → a stable set of endpoints
↓
Pods         → the processes that answer

Once I could draw that path, the resources stopped being magic. Ingress is the routing decision. Service is a stable name for a changing set of pods. IngressClass and the controller are simply who performs the routing.

Related