networking - Comment connecter le DAG Cloud Composer Airflow à un VPN

CorePress2024-05-09  6

How do I connect Cloud Composer Airflow DAG to a VPN

Comment autoriser un DAG Cloud Composer Airflow à se connecter à une API REST via une passerelle VPN ? Le cluster est connecté au VPC correspondant.

Le proxy Kube est capable d'atteindre l'API, mais pas les conteneurs.

J'ai connecté SSH au proxy Kube et aux conteneurs et j'ai essayé un traceroute. Le traceroute des conteneurs se termine par le proxy kube. Le proxy Kube a 4 sauts avant d'atteindre sa destination.

J'ai vidé les iptables du proxy kube, ils ne spécifient rien concernant le NAT du sous-réseau VPC avec les conteneurs.

Le sous-réseau VPC n'apparaît pas non plus dans les conteneurs, ce qui est intentionnel.

Quelques lectures :

EDIT1 : Plus d'informations : Supposons que le VPN connecte le VPC au réseau distant 10.200.0.0. Le VPC possède plusieurs sous-réseaux. La plage principale est par ex. 10.10.0.0/20. Pour chaque cluster Kubernetes, nous avons deux sous-réseaux supplémentaires, un pour chaque pod (10.16.0.0/14) et un autre pour les services (10.20.0.0/20). La passerelle est 10.10.0.1. Chaque pod a à nouveau sa propre plage, où pod_1 est 10.16.0.0/14, pod_2 est 10.16.1.0/14, pod_3 10.16.3.0/14 et ainsi de suite. L'un des proxys Kube dispose de plusieurs cartes réseau. Il réside dans le réseau 10.10.0.0 avec eth0 et dispose d'un pont cbr0 vers 10.16.0.0. Grâce audit proxy kube via le pont, les travailleurs d'Airflow sont coconnexion au réseau. Un travailleur, par ex. 10.16.0.1 n'a qu'une seule carte réseau.

Le kube-proxy peut atteindre le réseau 10.200.0.0. Les travailleurs d'Airflow ne le peuvent pas.

Comment faire en sorte que le travailleur accède au réseau 10.200.0.0 ? Devons-nous changer les iptables du proxy kube ?



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

Le VPN se déploie-t-il dans le VPC actuel ? Ou effectuez-vous un peering pour l'atteindre ?

-----

@guillaumeblaquiere il est déployé dans le VPC actuel avec Google Cloud Classic VPN.

-----

Voyez-vous que la requête est arrivée de l'autre côté du Un VPN ? La plupart du temps, lorsque je connectais un VPN, j'oubliais le chemin du retour...

-----

Bonjour @guillaumeblaquiere, j'ai édité mon message initial pour expliquer un peu plus le réseau. Notre VPN fonctionne comme prévu et à partir de toute autre machine virtuelle à laquelle nous pouvons accéder et travailler avec l'API. Nous voulons maintenant déployer notre code dans un DAG pour qu'il s'exécute automatiquement.

-----

Hmm, si votre connexion fonctionne, si vous n'avez pas de règles de pare-feu spéciales, si les sous-réseaux sont dans le même VPC, cela devrait fonctionner ... Avez-vous configuré NAT ?

-----

L'une des solutions possibles serait de transférer les packages de l'interface virtuelle de Kube vers l'interface réelle du nœud. Par exemple. ajout des règles suivantes aux tables ip :

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