Verwendung der Kubernetes Ingress-API

Kubernetes findet Akzeptanz in der gesamten Tech-Branche und ist auf dem Weg, die De-facto-Orchestrierungsplattform für die Bereitstellung moderner Cloud-Services zu werden. Kubernetes bietet nicht nur Grundelemente für die Bereitstellung von Microservices in der Cloud, sondern geht noch einen Schritt weiter und hilft Entwicklern dabei, Interaktionen zu definieren und den Lebenszyklus für ihre APIs zu verwalten. 

Mit der Ingress-API in Kubernetes können Sie Ihren Microservice der Außenwelt aussetzen und Routing-Richtlinien für Ihren Nord-Süd-Verkehr definieren, dh den Verkehr, der in Ihr virtuelles Rechenzentrum gelangt. 

Die Vorteile der Verwaltung von API-Lebenszyklen mithilfe von CI / CD-Pipelines (Continuous Integration and Continuous Delivery) mit Ingress sind zahlreich. Bevor wir uns jedoch damit befassen, beginnen wir mit einigen grundlegenden Kenntnissen.

Das Design und der Zweck der Ingress-Ressource

Die einfachste Beschreibung eines Kubernetes-Clusters wäre eine Reihe von verwalteten Knoten, auf denen Anwendungen in Containern ausgeführt werden. In den meisten Fällen sind die Knoten in einem Kubernetes-Cluster nicht direkt dem öffentlichen Internet ausgesetzt. Dies ist sinnvoll, da das Offenlegen aller Dienste auf einem Knoten ein unglaubliches Risiko darstellen würde. Um öffentlich zugänglichen Zugriff auf ausgewählte Dienste zu ermöglichen, stellt Kubernetes die Ingress-Ressource bereit.

Die Ingress-Ressource macht HTTP- und HTTPS-Routen von außerhalb des Clusters für ausgewählte Dienste innerhalb des Clusters verfügbar. Die Ingress-Ressource enthält auch Regeln zur Steuerung des Datenverkehrs. Dies macht die Ingress-Ressource zu einer großartigen Lösung für die Verwaltung der verschiedenen APIs, die von einer großen Anzahl einzelner Services bereitgestellt werden. Dazu wird ein einziger Einstiegspunkt für alle Clients bereitgestellt und anschließend Anforderungen an die Back-End-Services verarbeitet. Dies wird allgemein als Fanout-Konfiguration bezeichnet.

Kong

Die Ingress-Ressource kann auch für namenbasiertes virtuelles Hosting eingerichtet werden, bei dem Anforderungen basierend auf dem Host-Header weitergeleitet werden:

Kong

Damit die Ingress-Ressource funktioniert, muss ein Ingress-Controller im Kubernetes-Cluster installiert sein. Der Controller erstellt die Brücke zwischen dem Kubernetes-Cluster und den verschiedenen vorhandenen öffentlichen Schnittstellen. Beispielsweise bieten die meisten Cloud-Anbieter, die Kubernetes hosten, einen einzigartigen Ingress-Controller für die Schnittstelle zu ihren vorgeschriebenen öffentlich zugänglichen Methoden. Die verschiedenen Steuerungen arbeiten alle unterschiedlich und können unterschiedlich viele zusätzliche Funktionen bereitstellen.

Die Vorteile der Verwendung von Ingress zur Verwaltung des API-Lebenszyklus mithilfe von CI / CD-Pipelines

Die Ingress-Ressource wird durch eine deklarative Konfigurationsdatei definiert, die normalerweise in YAML beschrieben wird. Dies steht im Einklang mit allen Kubernetes-Ressourcen und ermöglicht eine einfache Integration in moderne Bereitstellungsmuster wie die kombinierte Praxis von CI / CD. Dies bedeutet, dass Ingress-Änderungen schnell, häufig und sicher bereitgestellt werden können. Auf diese Weise kann die Ingress-Ressource in dieselbe Art von Softwareentwicklungs-Lebenszyklusmustern wie die Anwendungen selbst integriert werden.

Wie Entwickler Ingress mit Kong for Kubernetes durchführen können

Ein beliebter Open Source und Cloud-unabhängiger Ingress-Controller ist Kong for Kubernetes . Der Kong for Kubernetes Ingress Controller wird als benutzerdefinierte Ressourcendefinitionen (CRDs) in Kubernetes erstellt. Dies schafft eine Kubernetes-native Erfahrung für diejenigen, die bereits daran gewöhnt sind, Ressourcen innerhalb dieser Plattform zu definieren.

Kong for Kubernetes kann wie Ihre Apps und Dienste über Manifest, Helm oder Kustomize installiert werden.

Der Kong for Kubernetes Ingress Controller erweitert die Funktionen der Ingress-Ressource durch die Bereitstellung einer umfangreichen Reihe von Plug-Ins, die eine breite Palette von Funktionen abdecken, darunter Authentifizierung, Analyse, Überwachung sowie Anforderungs- und Antworttransformationen, um nur einige zu nennen. Durch die Bereitstellung dieser allgemeinen (und manchmal nicht so häufigen) Anforderungen an den Ingress-Controller ermöglicht Kong for Kubernetes Entwicklern, sich stärker auf die Kernanforderungen der Dienste zu konzentrieren. Der Wert davon wird besonders deutlich, wenn eine Organisation von einer Handvoll monolithischer Anwendungen zu Hunderten, wenn nicht Tausenden von Mikrodiensten wechselt.

Eine Liste der gängigen Plug-Ins finden Sie unter //docs.konghq.com/hub/.

Kong-Plug-Ins werden als Kubernetes-Ressource definiert, wobei ein Konfigurationsabschnitt die Einstellungen der einzelnen Plug-Ins enthält.

Im Folgenden finden Sie ein Beispiel für ein Plug-In zur Ratenbegrenzung, mit dem der Datenverkehr auf fünf Anforderungen pro Minute begrenzt wird:

Kong

Das Hinzufügen eines Kong-Plug-Ins zu einer Kubernetes-Ressource erfolgt durch eine einfache Anmerkung im Metadatenabschnitt der Ressource. Dadurch können die Plug-Ins auf verschiedene Ebenen angewendet werden. Sie können beispielsweise ein Plug-In auf die gesamte Ingress-Ressource anwenden oder eines auf eine einzelne Serviceressource genauer anwenden.

Hier ist ein Beispiel für das obige Plug-In, das auf eine Ingress-Ressource angewendet wird:

Kong

Kong for Kubernetes kann auch in die gesamte Suite von Kong Enterprise-Produkten integriert werden, einschließlich Kong Studio, Kong Dev Portal, Kong Manager, Kong Brain und Kong Immunity. Dies ermöglicht noch fortschrittlichere Kong-Plug-Ins sowie eine vollständige API-Lebenszykluslösung. Diese Produktsuite umfasst das Erstellen und Veröffentlichen von API-Spezifikationen sowie die Verwaltung Ihrer Kong-Ressourcen und sogar die Analyse des Datenverkehrs.

Sie können bei der Entwicklung Ihrer APIs mit Kong Studio einen „Spec-First“ -Ansatz verfolgen. Dort finden Sie Tools zum Schreiben von Dokumentation in der OpenAPI-Standardspezifikation sowie Testtools für sofortiges Feedback. Kong Studio bietet auch Tools für die Arbeit mit GraphQL. Kong Studio wird direkt mit Git synchronisiert, sodass Ihre Spezifikationsdateien in einen CI / CD-Workflow integriert werden können, mit dem Updates für Kong Dev Portal automatisiert werden können.

Kong Dev Portal hostet Ihre API-Dokumentation (die privat oder öffentlich sein kann). Es ist äußerst anpassbar, sodass Sie es an den Stil und das Branding Ihres Unternehmens anpassen können. Eine gut dokumentierte API ist wichtig für die Produktivität. Ein gut verwalteter Fluss zwischen Kong Studio und dem Dev Portal kann dazu beitragen, dass die Dokumentation so aktuell wie möglich ist.

Kong Manager bietet eine grafische Oberfläche zum Beobachten und Verwalten der gesamten Kong-Produktsuite. Von hier aus können Sie die Beziehungen zwischen Ihren Routen, Diensten und Plug-Ins beobachten. Sie können den Verkehr in Echtzeit im Auge behalten und Ihre Kunden verfolgen.

Kong Brain analysiert den durch den Ingress kommenden Datenverkehr und erstellt eine visuelle Servicekarte der Abhängigkeiten zwischen den Services. Es hat auch die Möglichkeit, OpenAPI-Spezifikationsdokumente basierend auf den von ihm generierten Karten automatisch zu generieren. Dies ist eine wertvolle Funktion, da die bereitgestellten Dienste selbst mit den besten Absichten möglicherweise nicht ordnungsgemäß dokumentiert werden. 

Kong Immunity analysiert den gesamten Verkehr, der durch den Ingress kommt, und lernt Muster, um Anomalien zu identifizieren. Dies sind oft subtile Anforderungen, die nicht auffallen, aber von Interesse sein können, z. B. ein unbekannter Parameter, der immer wieder versucht, durchzukommen. Dies ist auch eine sehr wertvolle Funktion, da das Erkennen dieser Nadeln im Heuhaufen von Hunderttausenden von Protokolleinträgen nicht einfach ist.

Kong

Ingress optimal nutzen

Die Kubernetes Ingress-Ressource bietet einen einzigen Einstiegspunkt von außerhalb von Kubernetes für Back-End-Services innerhalb von Kubernetes. Durch die Nutzung deklarativer Definitionsdateien kann die Ingress-Ressource wie alle anderen Codeformen behandelt und in allgemeine Lebenszyklen der Softwareentwicklung integriert werden.

Um die Kommunikation außerhalb von Kubernetes zu überbrücken, ist ein Ingress-Controller erforderlich. Kong for Kubernetes ist ein Ingress-Controller, der benutzerdefinierte Ressourcendefinitionen verwendet, um die Funktionen der Ingress-Ressource durch die Bereitstellung einer großen Anzahl von Plug-Ins erheblich zu erweitern, sodass sich Entwickler auf den Kerngeschäftswert konzentrieren können. Kong verfügt über eine Reihe von Unternehmenstools, mit denen Sie die Produktivität und Sicherheit während Ihres gesamten API-Lebenszyklus erheblich verbessern können.

Marco Palladino, Erfinder, Softwareentwickler und Internetunternehmer mit Sitz in San Francisco, ist CTO und Mitbegründer von Kong Inc.

- -

Das New Tech Forum bietet einen Ort, an dem Sie neue Unternehmenstechnologien in beispielloser Tiefe und Breite erkunden und diskutieren können. Die Auswahl ist subjektiv, basierend auf unserer Auswahl der Technologien, die wir für wichtig und für die Leser von größtem Interesse halten. akzeptiert keine Marketingmaterialien zur Veröffentlichung und behält sich das Recht vor, alle eingebrachten Inhalte zu bearbeiten. Senden Sie alle Anfragen an [email protected]