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.
Branchen-Newsletter
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.
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.
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.
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 (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 sind Softwarekomponenten, die Konfigurationsregeln lesen und anwenden und als Reverse-Proxys mit erweiterten Funktionen zur Datenverkehrsverwaltung fungieren.
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:
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.
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.
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.
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.
Moderne Kubernetes-Ingress-Controller verfügen über ausgefeilte SSL/TLS-Verwaltungsfunktionen, wie TLS-Terminierung, automatische Zertifikatsbereitstellung, Erneuerung und Durchsetzung sicherer Kommunikation.
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.
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.
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.
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 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.
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.
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:
Red Hat OpenShift on IBM Cloud ist eine vollständig verwaltete OpenShift Container Platform (OCP).
Container-Lösungen führen Container-Workload aus und skalieren sie mit Sicherheit, Open-Source-Innovation und schneller Bereitstellung.
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.