Da die Welten von DevOps und NetOps aufeinanderprallen und Containerumgebungen Definitionen umfassen, die traditionell im Netzwerk verwendet werden, erscheint es sinnvoll, die Verwendung des oft verwirrenden Begriffs „Ingress“ in Bezug auf den Datenpfad und die Containerumgebungen zu untersuchen.
Die Begriffe „Ingress“ und „Egress“ werden traditionell verwendet, um die Richtung des Datenverkehrs im Netzwerk aus der Perspektive des Rechenzentrums zu beschreiben. Der Eingang ist eingehend, der Ausgang ist ausgehend.
Mit der Weiterentwicklung der Containerumgebungen hat sich für den Begriff „Ingress“ eine sehr spezifische, anwendungsbezogene Definition etabliert.
Eindringen. Ein API-Objekt, das den externen Zugriff auf die Dienste in einem Cluster verwaltet, normalerweise HTTP. Ingress kann Lastausgleich, SSL-Terminierung und namensbasiertes virtuelles Hosting bereitstellen.
Es ist wichtig, innezuhalten und zu beachten, dass eine Ingress-Ressource, wie sie in einer Kubernetes-Umgebung definiert ist, Funktionen beschreibt, von denen angenommen wird, dass sie innerhalb des Container-Perimeter selbst ausgeführt werden.
Jeder Ingress ist ein Reverse-Proxy, der externe Anfragen akzeptiert und diese Anfragen basierend auf den von der Kubernetes-Ingress-Ressource angegebenen Regeln an den richtigen Kubernetes-Dienst weiterleitet. Der Dienst wiederum verteilt die Last der Anfragen auf eine Reihe verknüpfter Container, normalerweise mithilfe nativer Lastausgleichsalgorithmen der Schicht 4 (TCP). Dies ist eine der Möglichkeiten, der Außenwelt eine einheitliche API präsentiert zu werden. Der Ingress analysiert die API-Aufrufe (den URI-Pfad) und verteilt sie an die entsprechenden, im Container gehosteten Microservices innerhalb des Container-Clusters.
F5 bietet dieselben Funktionen wie ein klassischer Kubernetes-Ingress, fügt jedoch zusätzliche Funktionen in Form von SNI-Routing und Layer 4 (TCP)-Lastausgleich hinzu. Die Möglichkeit, SNI-Routing (Server Name Indicator) durchzuführen, ist ein Vorteil für diejenigen, die eine durchgängige TLS-Verschlüsselung des Nachrichtenaustauschs wünschen, da F5 dadurch Anfragen basierend auf den Informationen in den Headern richtig weiterleiten kann, ohne die eigentliche Nutzlast/Nachricht zu entschlüsseln. Dadurch wird zwar der Funktionsumfang eingeschränkt, der auf die Anfrage angewendet werden kann – sie kann beispielsweise nicht auf schädliche Inhalte geprüft werden –, es bietet jedoch die notwendige Unterstützung für Architekturen, in denen Inhalte aus rechtlichen oder betrieblichen Gründen verschlüsselt bleiben müssen. Die Lastverteilung auf Layer 4 (TCP) wird häufig außerhalb einer Containerumgebung verwendet, um Ingress-Dienste im Kubernetes-Stil zu skalieren.
F5 wird normalerweise außerhalb der Containerumgebung bereitgestellt. Es wird häufig als Lastausgleichslösung verwendet, um Cluster extern verfügbar zu machen, d. h. öffentlichen Zugriff auf Dienste zu ermöglichen, die aus einem Containercluster bestehen. Eine CNCF-Umfrage ergab, dass 67 % der Befragten eine Load Balancer-Option wählen, um Cluster-Dienste extern verfügbar zu machen, während weitere 33 % Ingress-Funktionen (L7) nutzen.
Damit wir dieselben Funktionen wie ein Kubernetes-Ingress bereitstellen können, wird ein containernativer „Connector“ verwendet, um Aktualisierungen der Richtlinien zu ermöglichen, die Verkehrsrichtlinien definieren. Dieser Connector befindet sich im Container-Orchestrator (normalerweise Kubernetes, aber auch Red Hat OpenShift ist beliebt) und ist in diesen integriert. Die Kommunikation mit F5 Ingress erfolgt über die API. Zu den Updates gehören Änderungen an Ingress-Ressourcendefinitionen (HTTP-Routingrichtlinien) sowie Konfigurationsänderungen wie das Starten oder Entfernen einer Containerinstanz, die sich auf eine aktuelle Servicedefinition auswirkt.
Der Vorteil der Verwendung von F5 gegenüber einfachen Ingress-Diensten besteht in der Möglichkeit, erweiterte Funktionen auf eingehenden und ausgehenden Datenverkehr anzuwenden. Sicherheit, Header-Anreicherung und kundenspezifische Leistungsoptimierungen können bei der Verwendung von F5 angewendet werden, ohne die Containerumgebung oder -architektur oder die Anwendung selbst zu ändern.
Weitere Ressourcen: