networking - Wie verbinde ich Cloud Composer Airflow DAG mit einem VPN?

CorePress2024-05-09  4

How do I connect Cloud Composer Airflow DAG to a VPN

Wie erlaube ich einem Cloud Composer Airflow DAG, sich über ein VPN-Gateway mit einer REST-API zu verbinden? Der Cluster ist mit der entsprechenden VPC verbunden.

Der Kube-Proxy kann die API erreichen, die Container jedoch nicht.

Ich habe eine SSH-Verbindung zum Kube-Proxy und den Containern hergestellt und eine Traceroute ausprobiert. Die Traceroute der Container endet mit dem Kube-Proxy. Der Kube-Proxy hat 4 Hops, bevor er das Ziel erreicht.

Ich habe die iptables vom Kube-Proxy gelöscht. Sie geben keine Angaben zum NATing des VPC-Subnetzes mit den Containern.

Das VPC-Subnetz wird auch nicht in den Containern angezeigt, was beabsichtigt ist.

Ein wenig Lesestoff:

EDIT1: Weitere Informationen: Nehmen wir an, das VPN verbindet die VPC mit dem Remote-Netzwerk 10.200.0.0. Die VPC verfügt über mehrere Subnetze. Der Hauptbereich ist z.B. 10.10.0.0/20. Für jeden Kubernetes-Cluster haben wir zwei weitere Subnetze, eines für jeden Pod (10.16.0.0/14) und eines für Dienste (10.20.0.0/20). Das Gateway ist 10.10.0.1. Jeder Pod hat wiederum seinen eigenen Bereich, wobei pod_1 10.16.0.0/14, pod_2 10.16.1.0/14, pod_3 10.16.3.0/14 usw. ist. Einer der Kube-Proxys verfügt über mehrere Netzwerkadapter. Es befindet sich im 10.10.0.0-Netzwerk mit eth0 und verfügt über eine cbr0-Brücke zu 10.16.0.0. Durch besagten Kube-Proxy über die Brücke werden die Worker für Airflow coHerstellen einer Verbindung zum Netzwerk. Ein Arbeiter z.B. 10.16.0.1 hat nur einen Netzwerkadapter.

Der Kube-Proxy kann das Netzwerk 10.200.0.0 erreichen. Die Airflow-Mitarbeiter können das nicht.

Wie bringen wir den Arbeiter dazu, auf das Netzwerk 10.200.0.0 zuzugreifen? Müssen wir die iptables des Kube-Proxys ändern?



-----------------------------------

Wird das VPN in der aktuellen VPC bereitgestellt? Oder führen Sie ein Peering durch, um es zu erreichen?

-----

@guillaumeblaquiere es wird in der aktuellen VPC mit Google Cloud Classic VPN bereitgestellt.

-----

Sehen Sie, dass die Anfrage auf der anderen Seite angekommen ist? VPN? Wenn ich ein VPN einrichte, vergesse ich meistens den Rückweg...

-----

Hallo @guillaumeblaquiere, ich habe meinen ersten Beitrag bearbeitet, um das Netzwerk etwas genauer zu erklären. Unser VPN funktioniert wie vorgesehen und von jeder anderen VM aus können wir auf die API zugreifen und mit ihr arbeiten. Jetzt möchten wir unseren Code in einem DAG bereitstellen, damit er automatisch ausgeführt wird.

-----

Hmm, wenn Ihre Verbindung funktioniert, wenn Sie keine speziellen Firewall-Regeln haben und wenn sich die Subnetze in derselben VPC befinden, sollte es funktionieren ... Haben Sie NAT konfiguriert?

-----

Eine der möglichen Lösungen wäre, die Pakete von der virtuellen Kube-Schnittstelle an die reale Schnittstelle des Knotens weiterzuleiten. Z.B. Hinzufügen der folgenden Regeln zu IP-Tabellen:

iptables -A FORWARD -i cbr0 -o eth0 -d 10.200.0.0/25 -j ACCEPT
iptables -A FORWARD -i eth0 -o cbr0 -s 10.200.0.0/25 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


-----------------------------------

Your guide to a better future - quark24
Your guide to a better future - quark24