Eingangssteuerung in Azure Kubernetes Service (AKS)
Die Eingangssteuerung in AKS ist eine Kubernetes-Ressource, die den Zugriff des externen HTTP-ähnlichen Datenverkehrs auf Dienste innerhalb eines Clusters verwaltet. Die AKS-Eingangssteuerung kann Dienste wie Lastenausgleich, SSL-Beendigung und namensbasiertes virtuelles Hosting bereitstellen. Weitere Informationen über die Kubernetes-Eingangssteuerung finden Sie in der Dokumentation zur Kubernetes-Eingangssteuerung.
Eingangsdatencontroller
Beim Verwalten von Anwendungsdatenverkehr bieten Eingangscontroller erweiterte Funktionen, indem sie auf Ebene 7 arbeiten. Sie können HTTP-Datenverkehr basierend auf der eingehenden URL an verschiedene Anwendungen weiterleiten, sodass intelligentere und flexiblere Datenverkehrsverteilungsregeln möglich sind. Beispielsweise kann ein Eingangscontroller abhängig vom URL-Pfad den Datenverkehr an verschiedene Microservices leiten und so die Effizienz und Organisation Ihrer Dienste verbessern.
Wird dagegen ein Dienst des Typs „LoadBalancer“ (Lastenausgleich) erstellt, wird eine zugrunde liegende Azure Load Balancer-Ressource eingerichtet. Dieser Lastenausgleich funktioniert auf Ebene 4 und verteilt Datenverkehr an die Pods in Ihrem Dienst auf einem angegebenen Port. Dienste der Ebene 4 haben jedoch keine Kenntnis der tatsächlichen Anwendungen und können diese Arten von komplexen Routingregeln nicht implementieren.
Ein Verständnis des Unterschieds zwischen diesen beiden Ansätzen hilft bei der Auswahl des richtigen Tools für Ihre Anforderungen an die Datenverkehrsverwaltung.
Vergleichen von Eingangsoptionen
In der folgenden Tabelle sind die Funktionsunterschiede zwischen den verschiedenen Eingangscontrolleroptionen aufgeführt:
Funktion | Anwendungsrouting-Add-On | Application Gateway für Container | Azure Service Mesh/Istio-basiertes Dienstnetz |
---|---|---|---|
Eingangs-/Gatewaycontroller | NGINX-Eingangscontroller | Azure Application Gateway für Containers | Istio Ingress Gateway |
API | Eingehende API | Ingress-API und Gateway-API | Istio Ingress-API |
Hosting | Im Cluster | In Azure gehostet | Im Cluster |
Skalieren | Automatische Skalierung | Automatische Skalierung | Automatische Skalierung |
Lastenausgleich | Intern/extern | Extern | Intern/extern |
SSL-Terminierung | Im Cluster | Ja: Offboarding und E2E SSL | Im Cluster |
mTLS | N/V | Ja zum Back-End | N/V |
Statische IP-Adresse | N/V | FQDN | N/V |
In Azure Key Vault gespeicherte SSL-Zertifikate | Ja | Ja | N/V |
Azure DNS-Integration für die DNS-Zonenverwaltung | Ja | Ja | N/V |
In der folgenden Tabelle sind die verschiedenen Szenarien aufgeführt, in denen Sie die einzelnen Eingangscontroller verwenden können:
Eingangsoptionen | Einsatzgebiete |
---|---|
Verwaltetes NGINX: Anwendungsrouting-Add-On | • Im Cluster gehostete, anpassbare und skalierbare NGINX-Eingangscontroller. • Grundlegende Lastenausgleichs- und Routingfunktionen. • Interne und externe Lastenausgleichskonfiguration. • Konfiguration der öffentlichen IP-Adresse. • Integration in Azure Key Vault für die Zertifikatverwaltung. • Integration in Azure DNS für die Verwaltung öffentlicher und privater Zone. • Unterstützt die Ingress-API. |
Application Gateway für Container | • Von Azure gehostetes Eingangsgateway. • Flexible Bereitstellungsstrategien, die vom Controller verwaltet werden oder Ihr eigenes Anwendungsgateway für Container. • Erweiterte Datenverkehrsverwaltungsfunktionen wie automatische Wiederholungen, Ausfallsicherheit der Verfügbarkeitszone, gegenseitige Authentifizierung (mTLS) zum Back-End-Ziel, Datenverkehrsaufteilung/gewichteter Roundrobin und automatische Skalierung. • Integration in Azure Key Vault für die Zertifikatverwaltung. • Integration in Azure DNS für die Verwaltung öffentlicher und privater Zone. • Unterstützt die Ingress- und Gateway-APIs. |
Istio Ingress Gateway | • Basierend auf Envoy, bei Verwendung mit Istio für ein Dienstnetz. • Erweiterte Datenverkehrsverwaltungsfunktionen wie Geschwindigkeitsbegrenzung und Verbindungsunterbrechung. • Unterstützung von mTLS |
Hinweis
Die Gateway-API für die Verwaltung von eingehendem Istio-Datenverkehr wird für das Istio-Add-On noch nicht unterstützt, befindet sich derzeit jedoch in der aktiven Entwicklung.
Erstellen einer Eingangsressource
Das Anwendungsrouting-Add-On ist die empfohlene Methode zum Konfigurieren eines Eingangsdatencontrollers in AKS. Das Anwendungsrouting-Add-On ist ein vollständig verwalteter Eingangsdatencontroller für Azure Kubernetes Service (AKS), der die folgenden Funktionen bereitstellt:
Einfache Konfiguration von verwalteten NGINX-Eingangsdatencontrollern basierend auf NGINX-Eingangsdatencontrollern für Kubernetes
Integration in Azure DNS für die Verwaltung öffentlicher und privater Zone.
SSL-Beendigung mit Zertifikaten, die in Azure Key Vault gespeichert sind
Weitere Informationen zum Anwendungsrouting-Add-On finden Sie unter Verwalteter NGINX-Eingang mit dem Anwendungsrouting-Add-On.
Beibehaltung der Clienquell-IP
Konfigurieren Sie den Eingangscontroller so, dass die Quell-IP des Clients bei Anforderungen an Container im AKS-Cluster beibehalten wird. Wenn der Eingangscontroller die Anforderung eines Clients an einen Container im AKS-Cluster weiterleitet, ist die ursprüngliche Quell-IP dieser Anforderung für den Zielcontainer nicht verfügbar. Wenn Sie die Beibehaltung der Clientquell-IP aktivieren, ist die Quell-IP für den Client im Anforderungsheader unter X-Forwarded-For verfügbar.
Wenn Sie die Beibehaltung der Clientquell-IP auf dem Eingangscontroller verwenden, können Sie kein TLS-Pass-Through verwenden. Die Beibehaltung der Clientquell-ID und TLS-Pass-Through-können mit anderen Diensten verwendet werden, z. B. dem LoadBalancer-Typ.
Weitere Informationen zur Beibehaltung der Clientquell-IP finden Sie unter Netzwerkkonzepte für Anwendungen in Azure Kubernetes Service (AKS).
Azure Kubernetes Service