Sie lesen die Dokumentation zu Apigee X.
Apigee Edge-Dokumentation aufrufen
Hintergrund
Die Apigee-Laufzeit verwendet VPC-Netzwerk-Peering, um Traffic an Back-End-Dienste weiterzuleiten. Diese Interaktion wird im vereinfachten Diagramm unten dargestellt:
Bei der Erstellung einer Apigee-Organisation müssen Kunden ein Netzwerk angeben, mit dem sich Peering verbinden kann:
curl -H "$AUTH" -X POST \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \ -d '{ "name":"'"$PROJECT_ID"'", "analyticsRegion":"'"$ANALYTICS_REGION"'", "runtimeType":"CLOUD", "authorizedNetwork":"NETWORK_NAME", "runtimeDatabaseEncryptionKeyName":"DATABASE_KEY_NAME" }'
Da sich die Ziel-/Back-End-Anwendungen im Peering-Netzwerk befinden, kann Apigee auf jede IP-Adresse zugreifen und Traffic an sie weiterleiten.
Viele Unternehmen haben mehrere Netzwerke, in denen Anwendungen bereitgestellt werden. Apigee unterstützt jedoch das Peering mit nur einem Netzwerk. In diesem Dokument wird eine Strategie für Kunden erläutert, die Apigee bitten, Traffic an mehrere Netzwerke zu senden.
Vorschlag
Apigee schlägt vor, ein neues Netzwerk zu erstellen oder ein vorhandenes noch einmal als Transitnetzwerk zu nutzen. Das Transitnetzwerk dient als Hub für alle anderen Netzwerke. Apigee ist eine der Spokes in diesem Hub.
Dies wird in der folgenden Abbildung veranschaulicht:
In diesem Beispiel verfügt das Unternehmen über Arbeitslasten in network 1
und network
2
(auf Google Cloud) und in network 3
(lokal).
Der Kunde erstellt oder verwendet ein Netzwerk mit dem Namen transit
. Alle Netzwerke, die mit diesem Netzwerk verbunden sind, einschließlich des für Apigee reservierten Netzwerks.
Es kann vorkommen, dass ein Kunde das Netzwerk-Peering von Apigee nicht direkt mit dem Netzwerk transit
wünschen. In solchen Fällen stellt der Kunde ein neues Netzwerk mit dem Namen apim
bereit und verbindet dieses Netzwerk mit Apigee. Das apim
-Netzwerk wird dann mit dem Netzwerk transit
verbunden.
Dies wird in der folgenden Abbildung veranschaulicht:
Traffic zur Transit-VPC abrufen
Wenn das Apigee-Netzwerk nicht direkt mit dem transit
-Netzwerk verbunden ist, richten Sie eine von Compute Engine verwaltete Instanzgruppe mit iptable
-Regeln ein, um den gesamten Traffic an das Transitnetzwerk zu leiten, wie in der folgenden Abbildung dargestellt:
Im weiteren Verlauf dieses Dokuments werden Strategien untersucht, wie Apigee Traffic über das transit
-Netzwerk an Arbeitslasten senden kann, die in network 1
, network 2
usw. ausgeführt werden.
iptables
Traffic mit iptables
weiterleiten
Diese Option verwendet iptable
-Regeln in Compute Engine, um Traffic an verschiedene Back-Ends weiterzuleiten. Im Apigee API-Proxy enthält der Zielendpunkt ILB_IP1:Port1
oder ILB_IP1:Port2
und so weiter. Jeder Port identifiziert einen anderen Back-End-Dienst eindeutig.
Auf der virtuellen Maschine (VM) von Compute Engine würden Kunden iptable
-Regeln einrichten, um Port1
an DESTINATION_IP1:DestPort
(im RFC 1918-Netzwerk) usw. weiterzuleiten. Jedes Mal, wenn ein neues Ziel hinzugefügt wird, müssen iptable
-Regeln aktualisiert werden.
Beispiel:
In diesem Beispiel werden API-Aufrufe an Port1
an DESTINATION_IP1:DestPort
weitergeleitet:
sysctl -w net.ipv4.ip_forward=1 # change source IP to (NAT) VM IP iptables -t nat -A POSTROUTING -j MASQUERADE # change the destination IP to the real target ip and port iptables -t nat -A PREROUTING -p tcp --dport Port1 -j DNAT --to-destination DESTINATION_IP1:DestPort
L7 ILB
Internen Load-Balancer zum Weiterleiten von Traffic verwenden
Diese Option verwendet den internen Load-Balancer (L7) von Compute Engine, um Anfragen an verschiedene Back-Ends weiterzuleiten. Das interne Load-Balancer (ILB) unterstützt pfad- oder hostname- und pfadbasiertes Routing. Ein url-map
-Beispiel sieht so aus:
- hosts: - '*' pathMatcher: path-matcher-1 id: '3331829996983273293' kind: compute#urlMap name: apigee-l7-ilb pathMatchers: - defaultService: https://www.googleapis.com/compute/v1/projects/apigee-product-demo/regions/us-west1/backendServices/service-products name: path-matcher-1 pathRules: - paths: - /products/* service: https://www.googleapis.com/compute/v1/projects/apigee-product-demo/regions/us-west1/backendServices/service-products - paths: - /catalog/* service: https://www.googleapis.com/compute/v1/projects/apigee-product-demo/regions/us-west1/backendServices/service-catalog
Im Apigee API-Proxy enthält der Zielendpunkt ILB_IP
und Port
(wahrscheinlich 443), wenn das Projekt direkt mit dem Transitnetzwerk verbunden ist.
Der ILB im Projekt transit
leitet Traffic an verschiedene Netzwerke weiter, basierend auf der URL-Pfadweiterleitung (oder dem Hostnamen und dem pfadbasierten Routing). Eine Compute Engine- MIG mit iptables
wird noch einmal verwendet, um den Traffic an verschiedene Netzwerke zu leiten.