Was ist ein Kubernetes Ingress Controller?

Blick von oben auf ein kreisförmiges Gebäude

Autoren

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Was ist ein Kubernetes Ingress Controller?

Ein Kubernetes-Ingress-Controller ist eine spezialisierte Softwarekomponente, die den eingehenden Datenverkehr zu Anwendungen verwaltet, die in Kubernetes-Umgebungen ausgeführt werden, und als Brücke zwischen externen Benutzern und containerisierten Diensten dient.

Moderne Unternehmen sind in hohem Maße auf verteilte Anwendungen und Workloads angewiesen, die aus Dutzenden oder Hunderten von Microservices bestehen. Ohne eine angemessene Orchestrierung des Traffics würde jeder Dienst einen eigenen öffentlichen Endpunkt erfordern, was erhebliche Verwaltungs- und Sicherheitsprobleme mit sich bringen würde.

Beispielsweise könnte eine Gesundheitsplattform separate Zugangspunkte für Patientenportale, Anbieter-Dashboards, Abrechnungssysteme und Compliance-Berichte erfordern – ein Ansatz, der kostspielig und betrieblich komplex ist.

Ein Kubernetes-Ingress-Controller löst dieses Problem, indem er als Lastenausgleich und intelligenter Datenverkehrsrouter am Anwendungseinstiegspunkt fungiert. Es richtet eine zentralisierte Verkehrsroute für externe Benutzer ein, um auf interne Dienste zuzugreifen.

Das Kubernetes-Ökosystem bietet verschiedene Ingress-Controller, darunter Open-Source-Tools (z. B. NGINX, Traefik), die auf Plattformen wie GitHub verfügbar sind, sowie proprietäre Lösungen, die auf die spezifischen Anforderungen von Unternehmen zugeschnitten sind.

Die neuesten Tech-News – von Experten bestätigt

Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und mehr auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.

Vielen Dank! Sie haben sich angemeldet.

Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.

Was ist Kubernetes?

Kubernetes wurde ursprünglich von Google entwickelt und 2015 an die Cloud Native Computing Foundation (CNCF) gespendet. Heute bildet Kubernetes die unverzichtbare IT-Infrastruktur der meisten Fortune-500-Unternehmen und macht die Verwaltung von Ingress-Controllern für den Unternehmensbetrieb zu einem entscheidenden Faktor. Laut einer Umfrage aus dem Jahr 2022 nutzen 96 % der Unternehmen Kubernetes oder evaluieren diese Technologie für Produktionsumgebungen.1

Vor Kubernetes wurden Anwendungen in der Regel auf dedizierten Servern oder virtuellen Maschinen (VMs) ausgeführt, was die Skalierung teuer und zeitaufwändig machte. Kubernetes führte Container ein – leichte, portable Einheiten, die Anwendungen mit all ihren Abhängigkeiten verpacken.

Kubernetes hat die DevOps-Workflow und die Anwendungsbereitstellung durch die Einführung der Container-Orchestrierung in großem Maßstab revolutioniert. Diese Open-Source-Plattform automatisiert die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen in verteilten Infrastrukturen und ermöglicht eine nahtlose Zusammenarbeit zwischen Entwicklungs- und Betriebsteams.

Kubernetes organisiert Anwendungen in Pods – die kleinsten einsetzbaren Einheiten, die aus einem oder mehreren Containern (in der Regel Docker-Containern) bestehen. Diese Pods laufen über Worker-Knoten innerhalb von Clustern, während eine Steuerungsebene alle Cluster-Operationen koordiniert. Dienste bieten stabile Netzwerkidentitäten für Gruppen von Pods und ermöglichen so zuverlässige Kommunikationsmuster.

Ingress-Controller werden in der Regel als spezialisierte Pods eingesetzt, die den Cluster-Status über die Kubernetes-API überwachen. Diese Controller verfolgen Änderungen an Ingress-Ressourcen – Konfigurationsobjekten, die Regeln für das Traffic-Routing definieren – und aktualisieren automatisch ihre Routing-Tabellen, um neue Anwendungsbereitstellungen oder Konfigurationsaktualisierungen widerzuspiegeln.

IBM Cloud

Red Hat OpenShift AI on IBM Cloud: KI-Workloads bereitstellen

Nutzen Sie KI-Funktionen mit Red Hat OpenShift on IBM Cloud. In diesem Video erfahren Sie, wie Sie mit einer skalierbaren Plattform für maschinelles Lernen KI-Workloads effizient erstellen, bereitstellen und verwalten können.

Was ist Kubernetes Ingress?

Um zu verstehen, wie Ingress-Controller funktionieren, muss man Kubernetes Ingress kennen – die API-Ressource (oder das Ingress-Objekt), die Routing-Regeln definiert, die den externen Datenverkehr zu Diensten innerhalb eines Kubernetes-Clusters leiten.

Kubernetes Ingress unterscheidet sich vom allgemeinen Begriff „Ingress“, der sich auf den Fluss des eingehenden Netzwerkverkehrs in eine cloudnativ, containerisierte Anwendungsumgebung bezieht. In Kubernetes bezieht sich Ingress speziell auf die Regeln und Konfigurationen, die festlegen, wie eingehender Datenverkehr an verschiedene Dienste weitergeleitet wird. Im Gegensatz dazu bezieht sich „Ingress“ im weiteren Sinne einfach auf jeglichen Datenverkehr, der in ein System eintritt (im Gegensatz zu „Egress“, der sich auf den Datenverkehr bezieht, der aus dem System austritt).

Mehr dazu über Ingress versus Egress in Kubernetes.

Kubernetes Ingress bietet einen deklarativen Ansatz für die Verwaltung des externen Zugriffs auf Dienste innerhalb eines Kubernetes-Clusters. Anstatt einzelne Dienste (z. B. NodePort-, LoadBalancer-Dienste) direkt dem Internet auszusetzen, erstellt Ingress eine kontrollierte Zugriffsebene, die Anfragen auf der Grundlage mehrerer Kriterien intelligent weiterleitet. Diese Funktion ermöglicht die effiziente Verwaltung des externen Datenverkehrs zu Diensten, die in der Regel mithilfe von ClusterIP innerhalb des Kubernetes-Clusters bereitgestellt werden.

Kubernetes Ingress arbeitet mit zwei sich ergänzenden Komponenten.

Ingress-Ressourcen

Ingress-Ressourcen (auch als Kubernetes-Ressourcen oder Kubernetes-API-Objekte bezeichnet) definieren Routing-Regeln. Sie werden in YAML oder JSON definiert und legen Eingangsregeln, SSL-Zertifikate, Authentifizierungsanforderungen und Datenverkehrrichtlinien fest.

Benutzer können beispielsweise das Feld „ingressClassName“ verwenden, um festzulegen, welcher Ingress-Controller die Ressource verwalten soll, sodass der Datenverkehr an einen bestimmten Controller weitergeleitet werden kann, wenn mehrere Controller in einem Cluster vorhanden sind.

Ingress-Controller

Ingress-Controller sind Softwarekomponenten, die Konfigurationsregeln lesen und anwenden und als Reverse-Proxys mit erweiterten Funktionen zur Datenverkehrsverwaltung fungieren.

Wie funktioniert ein Kubernetes-Ingress-Controller?

Herkömmliche Layer-4-Load-Balancer, wie beispielsweise solche für TCP-, UDP- und HTTP/HTTPS-Routen, verteilen den Datenverkehr ausschließlich auf der Grundlage von IP-Adressen und Ports. Im Gegensatz dazu arbeitet ein Kubernetes-Ingress-Controller auf Layer 7 (der Anwendungsschicht) und ermöglicht so ein komplexeres Routing.

Unter Verwendung der Kubernetes-Ingress-API und Funktionen wie HTTPRoute trifft der Ingress-Controller Routing-Entscheidungen auf der Grundlage detaillierter HTTP-spezifischer Attribute, wie zum Beispiel:

  • URL-Pfade und Hostnamen
  • HTTP-Header und -Methoden
  • Anfordern von Inhalten und Cookies
  • Authentifizierungstoken und Benutzerkontext

Diese Entscheidungen basieren auf Konfigurationsregeln, die die Routing-Richtlinien und andere Anforderungen festlegen. Ingress-Controller überwachen kontinuierlich Änderungen an diesen Konfigurationen und aktualisieren das Routing-Verhalten automatisch ohne manuelles Eingreifen, wodurch eine nahtlose Verkehrsverteilung und Sicherheitsverwaltung gewährleistet wird.

Kubernetes-Cluster können mehrere Ingress-Controller gleichzeitig ausführen, wobei jeder verschiedene Typen oder Anwendungen verarbeitet. Jeder Controller arbeitet ereignisgesteuert und reagiert auf Änderungen an Ingress-Ressourcen, indem er Spezifikationen, Anmerkungen und Metadaten liest und diese dann in ausführbare Routing-Anweisungen umwandelt.

Schlüsselfunktionen eines Kubernetes-Ingress-Controllers

Bearbeitung von Anfragen

Kubernetes-Ingress-Controller prüfen eingehende Anfragen und treffen Routing-Entscheidungen auf der Grundlage vordefinierter Regeln, wie z. B. Hostnamen und DNS-Namen. Sie verarbeiten HTTP- und HTTPS-Datenverkehr, führen SSL-Terminierung durch und treffen intelligente Entscheidungen zur Lastverteilung über mehrere Service-Instanzen hinweg.

Konfigurationsmanagement

Kubernetes-Ingress-Controller überwachen kontinuierlich die Kubernetes-API auf Änderungen an Ingress-Ressourcen über Namespaces hinweg. Unabhängig davon, ob diese Änderungen über kubectl, CI/CD-Pipelines oder andere Tools (z. B. Helm, Terraform) vorgenommen werden, aktualisiert der Controller die Routing-Regeln automatisch, ohne dass manuelle Eingriffe oder Neustarts des Dienstes erforderlich sind.

Lastausgleich

Die in den meisten Kubernetes-Ingress-Controllern integrierte Lastenausgleichsfunktion verteilt eingehende Anfragen auf mehrere Instanzen desselben Dienstes, wodurch eine optimale Leistung gewährleistet und eine Überlastung einzelner Instanzen verhindert wird.

TLS-Verwaltung

Moderne Kubernetes-Ingress-Controller verfügen über ausgefeilte SSL/TLS-Verwaltungsfunktionen, wie TLS-Terminierung, automatische Zertifikatsbereitstellung, Erneuerung und Durchsetzung sicherer Kommunikation.

Zustandsprüfung

Fortgeschrittene Kubernetes-Ingress-Controller überwachen kontinuierlich den Zustand der Backend-Dienste und leiten den Datenverkehr automatisch von fehlerhaften Instanzen weg, um eine hohe Verfügbarkeit und ein verbessertes Benutzererlebnis zu gewährleisten.

Anwendungsfall für Kubernetes Ingress Controller

Anwendungskonsolidierung

Große Unternehmen setzen Ingress-Controller ein, um Hunderte von internen Anwendungen hinter einheitlichen Zugangspunkten zu konsolidieren. Dieser Ansatz senkt die Infrastrukturkosten und verbessert gleichzeitig die Sicherheit durch die zentralisierte Durchsetzung von Richtlinien. Ein globales Fertigungsunternehmen kann Anfragen über eine einzige Ingress-Controller-Bereitstellung an verschiedene regionale ERP-Systeme, Lieferkettenanwendungen und Kundenportale weiterleiten.

Entwicklungs- und Staging-Umgebungen

Entwicklungsteams nutzen Ingress-Controller, um separate Umgebungen für das Testen neuer Funktionen zu erstellen. Teams können automatisch neue Testumgebungen einrichten und den entsprechenden Datenverkehr basierend auf der zu entwickelnden Funktion an die jeweilige Umgebung weiterleiten.

Partner- und Lieferantenintegration

Unternehmen verwenden Ingress-Controller, um interne APIs sicher mit Partnern und Anbietern zu teilen. Jede Organisation kann unterschiedliche Zugriffsberechtigungen und Nutzungsbeschränkungen haben, die alle über ein einziges System verwaltet werden, ohne dass eine separate Infrastruktur aufgebaut werden muss.

Globale Datenverkehrsverteilung

Globale Unternehmen implementieren Ingress-Controller als Teil ihrer globalen Traffic-Management-Strategien, um Nutzer zu geografisch optimalen Rechenzentren weiterzuleiten und gleichzeitig einheitliche Sicherheits- und Überwachungsrichtlinien aufrechtzuerhalten.

Compliance- und Audit-Anforderungen

Regulierte Branchen verwenden Ingress-Controller, um die erforderliche Protokollierung, Zugriffskontrollen (bei Erstellung der Seite hinzufügen) und Data Governance zu implementieren. Alle externen Zugriffe können zentral über die Ingress-Schicht überwacht und geprüft werden.

Vorteile von Kubernetes Ingress-Controllern

  • Infrastrukturkonsolidierung: Herkömmliche Architekturen erfordern oft dedizierte Load Balancer für jede Anwendung, was erhebliche Hardware- und Betriebskosten verursacht. Ingress-Controller ermöglichen es Unternehmen, mehrere Anwendungen hinter einer gemeinsamen Infrastruktur zu konsolidieren, wodurch die Kosten für den Lastausgleich gesenkt und die Ressourcennutzung verbessert werden.
  • Beschleunigte Entwicklungszyklen: Entwicklungsteams können neue Funktionen bereitstellen und testen, ohne Netzwerkadministratoren einzubeziehen oder externe Lastausgleichsfunktionen zu konfigurieren. Ingress-Controller unterstützen GitOps-Workflows, bei denen Routing-Änderungen über Versionskontrolle und automatisierte Bereitstellungspipelines verwaltet werden.
  • Verbesserte Observability: Um die Observability zu verbessern, bieten moderne Ingress-Controller detaillierte Analysen zu Anwendungsnutzungsmustern, Benutzerverhalten und Leistungsengpässen. Diese Sichtbarkeit ermöglicht datengestützte Entscheidungen über Kapazitätsplanung, Einführung von Funktionen und Optimierung der Benutzererfahrung.
  • Automatisierte Sicherheitsdurchsetzung: Anstatt Sicherheitsrichtlinien über mehrere Systeme hinweg zu konfigurieren, können Unternehmen Authentifizierung, Autorisierung, Ratenbegrenzung, WAF-Regeln (Web Application Firewall) und DDoS-Schutz über Ingress-Controller-Richtlinien durchsetzen. Sicherheitsupdates können sofort auf alle Anwendungen bereitgestellt werden.
  • Cloud-Portabilität: Im Gegensatz zu cloudspezifischen Lastausgleichsdiensten bieten Ingress-Controller eine konsistente Funktionalität für verschiedene Cloud-Anbieter und On-Premises-Infrastrukturen. Anwendungen können ohne architektonische Änderungen zwischen Umgebungen migriert werden.
  • Dynamische Skalierungsfunktionen: Ingress-Controller können Routing-Muster automatisch anpassen, basierend auf Echtzeit-Verkehrsbedingungen, Backend-Kapazität und konfigurierten Richtlinien. Diese Funktion ermöglicht eine ausgeklügelte Traffic-Shaping-Lösung, die sich an veränderte Geschäftsbedingungen anpasst.

Herausforderungen von Ingress-Controllern

  • Überlegungen zur Leistung: Der gesamte externe Datenverkehr wird über Ingress-Controller geleitet, wodurch diese zu potenziellen Engpässen in Produktionsumgebungen werden können. Unternehmen müssen ihre Kapazitäten sorgfältig planen, eine angemessene Überwachung implementieren und Redundanzstrategien entwickeln, um eine hohe Verfügbarkeit sicherzustellen.
  • Lernkurve und betrieblicher Aufwand: Teams müssen Fachwissen in den Bereichen Kubernetes-Netzwerkkonzepte, YAML-Konfigurationsmanagement und Fehlerbehebung in verteilten Systemen entwickeln, was einen erheblichen Schulungs- und Anpassungsaufwand erfordern kann.

Optionen für Kubernetes Ingress-Controller

Die Wahl des richtigen Kubernetes-Ingress-Controllers hängt von den Anforderungen des Unternehmens, der vorhandenen Infrastruktur und den Fähigkeiten des Teams ab. Jede Implementierung bietet eindeutige Vorteile für bestimmte Anwendungsfälle:

  • NGINX Ingress Controller: Die am weitesten verbreitete Option, der NGINX Ingress Controller (ingress-nginx), bietet Performance der Unternehmensklasse und umfangreiche Anpassungsmöglichkeiten. Das ausgereifte Ökosystem von NGINX bietet umfassende Dokumentation, kommerzielle Support-Optionen und bewährte Skalierbarkeit.
  • Traefik Ingress Controller: Traefik wurde für moderne cloudnative Umgebungen entwickelt, wobei der Schwerpunkt auf automatischer Serviceerkennung und Benutzerfreundlichkeit liegt. Traefik zeichnet sich in dynamischen Umgebungen aus, in denen sich Kubernetes-Dienste häufig ändern, und bietet eine integrierte Integration mit Service Meshes und Container-Registrys.
  • HAProxy Ingress Controller: Der HAProxy Ingress Controller basiert auf dem branchenüblichen HAProxy-Load Balancer und bietet eine robuste Leistung für Szenarien mit hohem Datenverkehr. Dieser Controller ermöglicht fortschrittliche Lastausgleichsalgorithmen, detaillierte Statistiken und eine präzise Verkehrssteuerung.
  • Istio Gateway: Als Teil der umfassenden Istio Service Mesh-Plattform bietet Istio Gateway erweiterte Funktionen für Traffic-Management, Sicherheit und Observability. Istio Gateway unterstützt auch komplexe Funktionen wie Traffic Splitting, Fehlerinjektion und verteiltes Tracing.
  • Cloud-Provider-Lösungen: große Cloud-Provider bieten optimierte Ingress-Controller an, die sich eng in ihre Plattformen integrieren lassen. AWS Load Balancer-Controller, Google Cloud Load Balancer, Azure Application Gateway Ingress-Controller und IBM Cloud Application Load Balancer bieten nahtlose Integration mit cloudnativen Diensten, automatische Skalierung und vereinfachte Abrechnung.
  • Envoy-basierte Controller: Ingress-Controller, die auf dem Envoy-Proxy aufbauen, einschließlich Ambassador und Emissary-Ingress, bieten ein leistungsstarkes Verkehrsmanagement mit erweiterten Observability-Funktionen. Diese Lösungen umfassen häufig integrierte Authentifizierungs-, Ratenbegrenzungs- und API-Gateway-Funktionen, wodurch sie sich für Unternehmen eignen, die umfassende API-Managementstrategien entwickeln.
Weiterführende Lösungen
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud ist eine vollständig verwaltete OpenShift Container Platform (OCP).

Red Hat OpenShift erkunden
Container-Lösungen

Container-Lösungen führen Container-Workload aus und skalieren sie mit Sicherheit, Open-Source-Innovation und schneller Bereitstellung.

Container erkunden
Cloud-Beratungsleistungen 

Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.

Cloud-Services
Machen Sie den nächsten Schritt

Machen Sie erste Schritte mit einer vollständig verwalteten Red Hat OpenShift-Plattform oder erkunden Sie die Flexibilität des IBM Cloud Kubernetes Ökosystems. Beschleunigen Sie Ihren Entwicklungs- und Bereitstellungsprozess mit skalierbaren, sicheren Lösungen, die auf Ihre Bedürfnisse zugeschnitten sind.

Red Hat OpenShift erkunden Kubernetes kennenlernen