BLOG | NGINX

Leitfaden zur Auswahl eines Ingress-Controllers, Teil 3: Open Source vs. Standard vs. Kommerziell

NGINX-Teil-von-F5-horiz-schwarz-Typ-RGB
Jenn Gile Miniaturbild
Jenn Gile
Veröffentlicht am 20. September 2021

Redakteur – Dieser Beitrag ist Teil einer 10-teiligen Serie:

  1. Reduzieren Sie die Komplexität mit produktionsreifem Kubernetes
  2. So verbessern Sie die Ausfallsicherheit in Kubernetes mit erweitertem Verkehrsmanagement
  3. So verbessern Sie die Sichtbarkeit in Kubernetes
  4. Sechs Möglichkeiten zur Sicherung von Kubernetes mit Traffic-Management-Tools
  5. Leitfaden zur Auswahl eines Ingress-Controllers, Teil 1: Identifizieren Sie Ihre Anforderungen
  6. Leitfaden zur Auswahl eines Ingress-Controllers, Teil 2: Risiken und Zukunftssicherheit
  7. Leitfaden zur Auswahl eines Ingress-Controllers, Teil 3: Open Source vs. Standard vs. Werbung (dieser Beitrag)
  8. Leitfaden zur Auswahl eines Ingress-Controllers, Teil 4: Optionen für den NGINX Ingress Controller
  9. So wählen Sie ein Service Mesh aus
  10. 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 .

Glückwunsch! Nachdem Sie die ersten beiden Teile unseres Leitfadens zur Auswahl eines Ingress-Controllers gelesen haben, sind Sie fast bereit, einen auszuwählen. Lassen Sie uns zusammenfassen, was wir bisher erreicht haben:

  • In Teil 1 besprechen wir, wie Sie Ihre Anforderungen ermitteln, einschließlich Leistung, Budget, Anwendungsfälle, Architektur und Eigentum.
  • In Teil 2 sprechen wir über die Risiken, die durch die Auswahl des falschen Ingress-Controllers entstehen können, und skizzieren wichtige Bereiche, in denen Sie Ihre Auswahl zukunftssicher machen können.

Ingress-Controller fallen in drei Kategorien: Open Source, Standard und kommerziell. Für jedes gibt es Anwendungsfälle und es ist wichtig, dass Sie sich über Ihre kurz- und langfristigen Anforderungen im Klaren sind, bevor Sie eine Auswahl treffen. In diesem Blog behandeln wir die Vor- und Nachteile jeder Kategorie.

Open Source Ingress-Controller

Viele Open-Source-Ingress-Controller werden von einer Community aus Benutzern und freiwilligen Entwicklern gepflegt, einige verfügen jedoch auch über eigene Engineering-Teams. Zwei der beliebtesten Open-Source-Ingress-Controller basieren auf NGINX – einer wird von der Kubernetes-Community gepflegt und der andere wird vom NGINX-Kernentwicklungsteam geleitet und ist Open Source. Einen weiteren Vergleich von NGINX‑basierten Ingress Controllern finden Sie in Teil 4 unserer Serie.

  • Vorteile:
    • Kostenlos und von der Community getragen – Viele Menschen und Organisationen entscheiden sich für Open-Source-Projekte nicht nur wegen des unschlagbaren Preises (kostenlos!), sondern auch, weil sie von der Community entwickelte Technologie bevorzugen.
    • Funktionsgeschwindigkeit – Diese Ingress-Controller sind mit größerer Wahrscheinlichkeit auf dem neuesten Stand der Funktionsinnovation.
  • Nachteile (die mit Open-Source-Projekten im Allgemeinen gemeint sind) :
    • Kosten (Zeit) – Es fehlen sofort einsatzbereite Tools für eine einfache Einrichtung und Skalierbarkeit, sodass Sie letztendlich Zeit mit Anpassungen und Workarounds für Ihre spezifischen Anforderungen verbringen müssen.
    • Riskant – Es kann Probleme hinsichtlich Stabilität, Sicherheit und Zuverlässigkeit geben (aufgrund der Betonung der Funktionsgeschwindigkeit und der freiwilligen Tätigkeit der Mitwirkenden). Patches für Common Vulnerabilities and Exposures (CVEs) werden möglicherweise nie oder erst Monate nach der Veröffentlichung der CVE veröffentlicht, sodass Hackern jede Menge Zeit bleibt, Ihren Ingress-Controller anzugreifen.
    • Minimaler oder kein Support – Die meisten Probleme lassen sich selbst lösen … nur Sie und die Dokumente sind nötig. Wenn Sie auf Probleme stoßen, die Sie nicht selbst lösen können, kann es schwierig (oder unmöglich) sein, Hilfe zu bekommen. Ihre einzige Möglichkeit besteht darin, Ihr Problem in Community-Foren zu posten und zu hoffen, dass andere Community-Mitglieder (a) sich die Mühe machen, zu antworten und (b) eine Lösung kennen.
  • Zusammenfassung: Wenn Unternehmen zum ersten Mal mit Kubernetes experimentieren, entscheiden sie sich häufig aus Bequemlichkeit oder weil die Dokumentation eine kostenlose, schnelle und einsatzbereite Lösung verspricht, für einen Open-Source-Ingress-Controller. Dies kann wunderbar funktionieren, wenn Sie gerade erst anfangen, Tests durchführen oder eine Produktion mit kleinem Volumen durchführen.

Standard-Ingress-Controller

Obwohl viele standardmäßige Ingress-Controller auf Open-Source-Technologie basieren, kategorisieren wir sie separat, da sie von einem Unternehmen entwickelt und gepflegt werden, das eine vollständige Kubernetes-Plattform bereitstellt (und häufig auch Unterstützung bei der Verwaltung bietet). Beispiele aus dieser Kategorie sind öffentliche Cloud-Ingress-Controller, Rancher und Red Hat OpenShift-Router.

  • Vorteile:
    • Kostenlos oder kostengünstig – Der niedrige Preis ist ein überzeugender Grund, diese Produkte zu verwenden. Sie sind bereits in die Plattform integriert, was zu Beginn definitiv Zeitersparnis bedeutet.
    • Zuverlässig und unterstützt – Da sie von einem engagierten Entwicklungsteam gewartet werden, sind sie möglicherweise zuverlässiger als von der Community gewartete Ingress-Controller. Kommerzieller Support ist normalerweise im Lieferumfang enthalten oder gegen Aufpreis verfügbar.
  • Nachteile:
    • Infrastrukturbindung – Standard-Ingress-Controller sind nicht infrastrukturunabhängig, d. h. Sie können sie oder Ihre Konfigurationen nicht von einer Cloud in eine andere mitnehmen. Das bedeutet, dass Sie für jede Bereitstellungsumgebung unterschiedliche Ingress-Controller benötigen. Dies führt zu einer Vielzahl von Tools, erhöht den Lernaufwand für Ihre Teams und erschwert die Sicherung des Ingress-Controllers.
    • Grundlegende Funktionen – Normalerweise fehlen ihnen die erweiterten Verkehrsmanagement- und Sicherheitsfunktionen, die für groß angelegte Bereitstellungen erforderlich sind.
    • Unvorhersehbare Kosten (Zeit und Geld) – Während die anfänglichen Kosten gering oder gar nicht vorhanden sind, können sie mit dem Wachstum Ihrer Anwendung dramatisch und unvorhersehbar ansteigen. Dies kann sich in Form von Zeit äußern, die erforderlich ist, um Funktionen in Ihre App zu integrieren, die im minimalen Funktionsumfang des Ingress-Controllers fehlen – und natürlich müssen Sie diese Funktionen bei jeder Aktualisierung der App einem Regressionstest unterziehen. Ein weiterer Nachteil einiger Standardtools sind enorme Sprünge in Ihrer Cloud-Rechnung, wenn Ihre App beliebter wird, aufgrund von Durchsatzgebühren, die zunächst harmlos erscheinen.
  • Zusammenfassung: Ein Standard-Ingress-Controller ist eine beliebte Wahl für Teams, die mit Kubernetes noch nicht so vertraut sind und eine verwaltete Plattform wie Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), Microsoft Azure Kubernetes Service (AKS), Rancher und Red Hat OpenShift Container Platform verwenden . Wenn ihre Apps weiterentwickelt und ihre Teams größer werden, entscheiden sich Unternehmen häufig dafür, ihrem Stack einen Ingress-Controller der Enterprise-Klasse hinzuzufügen, anstatt das Standardtool zu ersetzen.

Kommerzielle Ingress-Controller

Diese Ingress-Controller sind lizenzierte Produkte, die zur Unterstützung großer Produktionsbereitstellungen entwickelt wurden. Ein Beispiel ist die auf NGINX Plus basierende Version des F5 NGINX Ingress Controller , die wir in Teil 4 näher besprechen.

  • Vorteile:
    • Großer Funktionsumfang – Kommerzielle Ingress-Controller umfassen robuste Funktionssätze, die erweitertes Verkehrsmanagement und Skalierbarkeit für große Bereitstellungen unterstützen. Möglicherweise sind Integrationen mit anderen produktionstauglichen Produkten wie einem WAF oder einem Service Mesh möglich.
    • Skalierbar – Unternehmen empfinden diese Optionen häufig als zeitsparend, da sie tendenziell über mehr sofort einsatzbereite Funktionen verfügen, die keine Anpassungen oder Workarounds erfordern. Sie können problemlos zu Automatisierungspipelines hinzugefügt werden, damit Ihre Infrastruktur nach Bedarf erweitert werden kann.
    • Zuverlässig und unterstützt – Einer der Hauptvorteile kommerzieller Produkte besteht darin, dass sie stabil sind. Dies bedeutet, dass sie bei jeder Veröffentlichung umfassend getestet werden und bei Bedarf regelmäßige Softwareupdates und Sicherheitspatches bereitgestellt werden. Vollständiger kommerzieller Support ist normalerweise in verschiedenen Stufen verfügbar, sodass Sie oft innerhalb von Minuten oder Stunden nach Auftreten eines kritischen Problems vertrauliche Hilfe erhalten.
  • Nachteile:
    • Langsamere Entwicklung – Da Stabilität für kommerzielle Ingress-Controller wichtig ist, hinkt ihre Funktionsgeschwindigkeit möglicherweise etwas hinter denen ihrer Open-Source-Gegenstücke hinterher.
    • Kosten (Geld) – Die Realität kommerzieller Produkte ist, dass sie Geld kosten. Für Unternehmen, die über mehr Entwicklerzyklen als Bargeld verfügen, können die Kosten ein Dealbreaker sein, bis sich diese Situation ändert.
  • Zusammenfassung: Mit der Skalierung von Organisationen wird die Wahl des Ingress-Controllers aufgrund der Komplexität ihrer Teams und Apps wichtiger. Sobald eine Organisation einen hohen Komplexitätsgrad erreicht, ist ein kommerzieller Ingress-Controller sinnvoll, da er die Verwaltungskomplexität verringern und die Markteinführungszeit für neue Produktfunktionen verkürzen kann.

Nächster Schritt: Bewerten Sie die Optionen

An diesem Punkt Ihrer Reise sind Sie bereit, sich auf einige Ingress-Controller zum Ausprobieren zu konzentrieren und Optionen auszuschließen, die Ihren Anforderungen nicht entsprechen. Ein guter Ausgangspunkt für Ihren umfassenden Funktionsvergleich ist learnk8s . Hier finden Sie eine kostenlose Vergleichstabelle der von learnk8s bewerteten Ingress-Controller.

Wenn Sie sich über Ingress-Controller informieren, werden Sie wahrscheinlich feststellen, dass viele Optionen auf NGINX basieren. Eine Übersicht über die NGINX-basierten Optionen finden Sie im letzten Blog dieser Reihe, Leitfaden zur Auswahl eines Ingress-Controllers, Teil 4: Optionen für den NGINX-Ingress-Controller , in Kürze verfügbar.


„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."