Redakteur – Dieser Beitrag ist Teil einer 10-teiligen Serie:
- Reduzieren Sie die Komplexität mit produktionsreifem Kubernetes
- So verbessern Sie die Ausfallsicherheit in Kubernetes mit erweitertem Verkehrsmanagement
- So verbessern Sie die Sichtbarkeit in Kubernetes
- Sechs Möglichkeiten zur Sicherung von Kubernetes mit Traffic-Management-Tools
- Leitfaden zur Auswahl eines Ingress-Controllers, Teil 1: Identifizieren Sie Ihre Anforderungen
- Leitfaden zur Auswahl eines Ingress-Controllers, Teil 2: Risiken und Zukunftssicherheit
- Leitfaden zur Auswahl eines Ingress-Controllers, Teil 3: Open Source vs. Standard vs. Kommerziell
- Leitfaden zur Auswahl eines Ingress-Controllers, Teil 4: NGINX Ingress Controller-Optionen (dieser Beitrag)
- So wählen Sie ein Service Mesh aus
- Leistungstests für NGINX-Ingress-Controller in einer dynamischen Kubernetes-Cloud-Umgebung
Sie können den kompletten Blogsatz auch als kostenloses E-Book herunterladen: Kubernetes vom Test zur Produktion bringen .
Laut der Umfrage 2020 der Cloud Native Computing Foundation (CNCF) ist NGINX die am häufigsten verwendete Datenebene in Ingress-Controllern für Kubernetes – aber wussten Sie, dass es mehr als einen „NGINX Ingress Controller“ gibt?
Eine frühere Version dieses Blogs, die 2018 unter dem Titel „ Moment mal, welchen NGINX-Ingress-Controller für Kubernetes verwende ich?“ veröffentlicht wurde, entstand aufgrund eines Gesprächs mit einem Community-Mitglied über die Existenz zweier beliebter Ingress-Controller, die NGINX verwenden.

Es ist leicht zu erkennen, warum es zu Verwirrung kam (und immer noch kommt). Beide Ingress-Controller sind:
- Genannt „NGINX Ingress Controller“
- Open Source
- Gehostet auf GitHub mit sehr ähnlichen Repo-Namen
- Das Ergebnis von Projekten, die etwa zur gleichen Zeit begannen
Und die größte Gemeinsamkeit besteht natürlich darin, dass sie dieselbe Funktion implementieren.
NGINX im Vergleich Kubernetes Community Ingress Controller
Der Übersichtlichkeit halber unterscheiden wir die beiden Versionen wie folgt:
- Community-Version – Der Community-Ingress-Controller befindet sich im Repository „kubernetes/ingress-nginx“ auf GitHub und basiert auf NGINX Open Source mit Dokumentationen auf Kubernetes.io . Es wird von der Kubernetes-Community gepflegt.
- NGINX-Version – Zu finden im Repository nginxinc/kubernetes-ingress auf GitHub. NGINX Ingress Controller wird von F5 NGINX entwickelt und gepflegt. Dokumentationen finden Sie auf docs.nginx.com . Es ist in zwei Ausgaben erhältlich:
Es gibt auch eine Reihe anderer Ingress-Controller auf Basis von NGINX, wie beispielsweise Kong, aber glücklicherweise lassen sich ihre Namen leicht unterscheiden. Wenn Sie nicht sicher sind, welchen NGINX Ingress Controller Sie verwenden, überprüfen Sie das Container-Image des laufenden Ingress-Controllers und vergleichen Sie dann den Namen des Docker-Images mit den oben aufgeführten Repos.
Ziele und Prioritäten des NGINX Ingress Controllers
Ein wesentlicher Unterschied zwischen dem NGINX Ingress Controller und dem Community Ingress Controller (sowie anderen Ingress Controllern basierend auf NGINX Open Source) sind ihre Entwicklungs- und Bereitstellungsmodelle, die wiederum auf unterschiedlichen Zielen und Prioritäten basieren.
- Entwicklungsphilosophie – Unsere oberste Priorität für alle NGINX-Projekte und -Produkte ist die Bereitstellung eines schnellen, leichtgewichtigen Tools mit langfristiger Stabilität und Konsistenz. Wir unternehmen alle möglichen Anstrengungen, um Verhaltensänderungen zwischen Versionen zu vermeiden, insbesondere solche, die die Abwärtskompatibilität beeinträchtigen. Wir versprechen, dass Sie beim Upgrade keine unerwarteten Überraschungen erleben werden. Wir glauben auch an die Auswahl, daher können alle unsere Lösungen auf jeder Plattform bereitgestellt werden, einschließlich Bare Metal, Containern, VMs und öffentlichen, privaten und Hybrid-Clouds.
- Integrierte Codebasis – NGINX Ingress Controller verwendet eine 100 % reine NGINX Open Source- oder NGINX Plus-Instanz zum Lastenausgleich und wendet eine Best-Practice-Konfiguration ausschließlich unter Verwendung nativer NGINX-Funktionen an. Es basiert nicht auf Modulen von Drittanbietern oder Lua-Code, die nicht von unseren Interoperabilitätstests profitiert haben. Wir stellen unseren Ingress-Controller nicht aus zahlreichen Drittanbieter-Repos zusammen, sondern entwickeln und pflegen die Load Balancer- (NGINX und NGINX Plus) und Ingress-Controller-Software (eine Go-Anwendung) selbst. Wir sind die einzige Autorität für alle Komponenten unseres Ingress-Controllers.
- Erweitertes Verkehrsmanagement – Eine der Einschränkungen der Standard-Kubernetes-Ingress-Ressource besteht darin, dass Sie Zusatzfunktionen wie Annotation, ConfigMaps und Kundenvorlagen verwenden müssen, um sie mit erweiterten Funktionen anzupassen. NGINX Ingress-Ressourcen bieten einen nativen, typsicheren und eingerückten Konfigurationsstil, der die Implementierung von Ingress-Lastausgleichsfunktionen vereinfacht, einschließlich TCP/UDP, Circuit Breaking, A/B-Tests, Blue-Green-Bereitstellungen, Header-Manipulation, gegenseitige TLS-Authentifizierung (mTLS) und Web Application Firewall (WAF).
- Kontinuierliche Produktionsbereitschaft – Jede Version wird gemäß einem unterstützbaren Produktionsstandard erstellt und gepflegt. Sie profitieren von diesem „Enterprise-Grade“-Fokus gleichermaßen, unabhängig davon, ob Sie die auf Open Source oder NGINX Plus basierende Edition von NGINX verwenden. Benutzer von NGINX Open Source können ihre Fragen auf GitHub von unserem Engineering-Team beantworten lassen, während Abonnenten von NGINX Plus erstklassigen Support erhalten. So oder so ist es, als hätten Sie einen NGINX-Entwickler in Ihrem DevOps-Team!
NGINX Open Source vs. NGINX Plus – Warum auf unsere Commercial Edition upgraden?
Und wenn wir schon dabei sind, lassen Sie uns auch einige der wichtigsten Vorteile durchgehen, die Sie vom NGINX Plus-basierten NGINX Ingress Controller erhalten. Wie wir in „So wählen Sie einen Kubernetes-Ingress-Controller aus, Teil 3“ besprochen haben: Open Source vs. Standard vs. Kommerziell : Es gibt erhebliche Unterschiede zwischen Open Source und kommerziellen Ingress-Controllern. Wenn Sie große Kubernetes-Bereitstellungen und komplexe Apps in der Produktion planen, werden Sie feststellen, dass unser kommerzieller Ingress-Controller Ihnen in einigen wichtigen Bereichen Zeit und Geld spart.
Sicherheit und Compliance
Einer der Hauptgründe, warum viele Unternehmen Kubernetes-Apps nicht in die Produktion bringen, ist die Schwierigkeit, ihre Sicherheit und Konformität zu gewährleisten. Der auf NGINX Plus basierende NGINX Ingress Controller erschließt fünf Anwendungsfälle, die für die Sicherheit Ihrer Apps und Kunden von entscheidender Bedeutung sind.

- Sichern Sie den Rand – In einer gut konzipierten Kubernetes-Bereitstellung ist der Ingress-Controller der einzige Eintrittspunkt für Datenverkehr auf Datenebene, der zu Diensten fließt, die in Kubernetes ausgeführt werden, und ist daher ein idealer Standort für eine Web Application Firewall (WAF). NGINX App Protect lässt sich in den NGINX Ingress Controller<.htmla> integrieren, um Ihre Kubernetes-Apps vor den OWASP Top 10 und vielen anderen Schwachstellen zu schützen, gewährleistet die PCI DSS-Konformität und übertrifft ModSecurity .
- Zentralisieren Sie Authentifizierung und Autorisierung – Sie können mit OpenID Connect (OIDC) – basierend auf dem OAuth 2.0-Framework – und JSON Web Token (JWT)-Authentifizierung eine Authentifizierungs- und Single Sign-On (SSO)-Ebene am Eintrittspunkt implementieren.
- Implementieren Sie eine End-to-End- Verschlüsselung : Wenn Sie den Datenverkehr zwischen Diensten sichern müssen, suchen Sie wahrscheinlich nach einem Service Mesh. Das stets kostenlose NGINX Service Mesh lässt sich nahtlos in den NGINX Ingress Controller integrieren, sodass Sie sowohl eingehenden als auch ausgehenden mTLS-Verkehr effizient und mit minimal weniger Latenz als bei anderen Meshes steuern können.
- Erhalten Sie zeitnahe und proaktive Patch-Benachrichtigungen – Wenn CVEs gemeldet werden, werden Abonnenten proaktiv informiert und erhalten schnell Patches. Sie können die Patches sofort anwenden und so das Risiko einer Ausnutzung verringern, anstatt in GitHub nach Updates Ausschau halten oder wochenlang (sogar monatelang) auf die Veröffentlichung eines Patches warten zu müssen.
- Seien Sie FIPS-konform – Sie können den FIPS-Modus aktivieren, um sicherzustellen, dass Clients, die mit NGINX Plus kommunizieren, eine starke Verschlüsselung mit einer vertrauenswürdigen Implementierung verwenden.
Erfahren Sie, wie der deutsche Automobilgigant Audi seine Red Hat OpenShift-Apps gesichert hat, indem er in „Audi Future‑Proofs Tech Vision and App Innovation with NGINX“ nachgeforscht hat .
Anwendungsleistung und Ausfallsicherheit
Betriebszeit und App-Geschwindigkeit sind häufig wichtige Leistungsindikatoren (KPIs) für Entwickler und Platform-Ops-Teams. Der auf NGINX Plus basierende NGINX Ingress Controller ermöglicht fünf Anwendungsfälle, die Ihnen helfen, die Versprechen von Kubernetes einzulösen.

- Erhalten Sie Live-Überwachung – Das NGINX Plus-Dashboard zeigt Hunderte wichtiger Last- und Leistungsmetriken an, sodass Sie die Ursache für langsame (oder ausgefallene!) Apps schnell beheben können.
- Erkennen und beheben Sie Fehler schneller – Implementieren Sie einen Leistungsschalter mit aktiven Integritätsprüfungen, der die Integrität Ihrer TCP- und UDP-Upstreamserver proaktiv überwacht.
- Neukonfiguration ohne Neustarts – Eine schnellere, unterbrechungsfreie Neukonfiguration gewährleistet, dass Sie Anwendungen mit gleichbleibender Leistung und Ressourcennutzung sowie geringerer Latenz als die Open Source-Alternativen bereitstellen können.
- Testen Sie neue Funktionen und Bereitstellungen gründlich – Erleichtern Sie die Durchführung von A/B-Tests und Blue-Green-Bereitstellungen, indem Sie den Schlüssel-Wert-Speicher nutzen, um die Prozentsätze zu ändern, ohne dass Neuladen erforderlich ist.
- Support-Anforderungen schnell lösen – Vertraulicher, kommerzieller Support ist für Organisationen von entscheidender Bedeutung, die nicht auf die Beantwortung von Fragen durch die Community warten können oder die Offenlegung vertraulicher Daten nicht riskieren können. Der NGINX-Support ist entsprechend Ihren Anforderungen in mehreren Stufen verfügbar und umfasst Unterstützung bei Installation, Bereitstellung, Fehlerbehebung und Fehlerkorrektur. Sie können sogar Hilfe bekommen, wenn etwas einfach nicht „richtig“ erscheint.
Erfahren Sie, wie das SMS-Unternehmen Zipwhip mit NGINX eine Verfügbarkeit von 99,99 % für seine SaaS-Apps erreichte und so die Sicherheit und Verkehrstransparenz auf Amazon EKS stärkte .
Nächster Schritt: Testen Sie NGINX Ingress Controller
Wenn Sie sich für einen Open-Source-Ingress-Controller als richtige Wahl für Ihre Apps entschieden haben, können Sie in unserem GitHub-Repo schnell loslegen.
Wir hoffen, dass Sie für große Produktionsbereitstellungen unseren kommerziellen Ingress-Controller auf Basis von NGINX Plus ausprobieren. Es ist als 30-tägige kostenlose Testversion verfügbar, die NGINX App Protect umfasst.