Wissen von A bis Z

Ingress Controller

Ein Ingress Controller ist die Empfangsdame deines Kubernetes-Clusters: Sie prüft, wer anklopft, und schickt die Besucher in das richtige Büro.

Ein Ingress Controller ist die konkrete Implementierung der Ingress-Ressource in Kubernetes — also der Komponente, die externen HTTP- und HTTPS-Verkehr in einen Cluster lenkt. Während die Ingress-Ressource selbst nur eine deklarative Beschreibung von Routen, Hosts, Pfaden und TLS-Konfigurationen ist, muss ein Controller diese Beschreibung in eine konkrete Datenebene übersetzen — typischerweise einen reverse Proxy (Nginx, HAProxy, Envoy, Traefik) oder eine Cloud-Provider-spezifische Layer-7-Load-Balancer-Konfiguration (Azure Application Gateway, AWS Application Load Balancer, Google Cloud Load Balancer).

Eingesetzt wird ein Ingress Controller in nahezu jedem produktiven Kubernetes-Cluster, in dem Web-Anwendungen oder APIs aus dem Internet oder dem internen Unternehmensnetz erreichbar sein sollen. Klassische Open-Source-Implementierungen sind ingress-nginx (das offizielle, von der Kubernetes-Community gepflegte Projekt auf Nginx-Basis), HAProxy Ingress, Traefik, Contour (auf Envoy-Basis) und der Istio-Gateway. Cloud-Provider liefern eigene Controller — der AKS Application Gateway Ingress Controller (AGIC) und der AWS ALB Ingress Controller sind verbreitete Beispiele.

Der Einsatzzweck und das gelöste Problem ergeben sich aus den Grenzen einfacher LoadBalancer- und NodePort-Services. Diese sind nur für Layer-4-Lastverteilung gedacht und erlauben weder Host- noch Pfad-basiertes Routing, keine TLS-Terminierung mit zentraler Zertifikatsverwaltung und keine erweiterten HTTP-Funktionen wie Header-Manipulation, Rate Limiting oder Authentifizierung. Ein Ingress Controller liefert genau diese Layer-7-Fähigkeiten und konsolidiert sie in einer zentralen Komponente, die sich gemeinsam mit Cert-Manager-Stacks und externen DNS-Lösungen automatisiert konfigurieren lässt.

Historisch wurde das Ingress-API in Kubernetes 1.1 (2015) als Beta eingeführt und in 1.19 (2020) zu "stable" erklärt — ungewöhnlich spät für ein so prominentes Feature. Parallel hat sich die Erkenntnis verbreitet, dass das ursprüngliche Ingress-API für moderne Anforderungen (Traffic-Splitting, Header-basiertes Routing, Querschnittspolicy) zu eng ist. Aus dieser Lücke entstand das Gateway-API-Projekt, das seit 2023 in der GA-Phase ist und das klassische Ingress-API langfristig ablösen soll. Viele Ingress Controller — Nginx, Envoy, Istio, Cilium — implementieren das Gateway API parallel zum klassischen Ingress.

Prägende Maintainer des nginx-Ingress-Controllers waren unter anderem Michael Goldsmith und Manuel de Brito Fontes. ingress-nginx und das von Nginx Inc. (heute F5) gepflegte "nginx-ingress" sind zwei eigenständige Projekte mit demselben Backend (Nginx), aber unterschiedlichem Featureset und unterschiedlicher Konfigurations-Syntax. Diese Namenshomonymie hat in der Vergangenheit zu vielen Missverständnissen geführt — beispielsweise bei Sicherheits-Advisories, die nur eines der beiden Projekte betrafen, in der Praxis aber häufig beide gleichermaßen zugeschrieben wurden.

Zurück