networking - ¿Cómo conecto Cloud Composer Airflow DAG a una VPN?

CorePress2024-05-09  4

How do I connect Cloud Composer Airflow DAG to a VPN

¿Cómo permito que un DAG de flujo de aire de Cloud Composer se conecte a una API REST a través de una puerta de enlace VPN? El clúster está conectado a la VPC correspondiente.

El kube-proxy puede llegar a la API, pero los contenedores no.

Conecté SSH al kube-proxy y a los contenedores y probé un traceroute. La ruta de seguimiento de los contenedores termina con kube-proxy. El kube-proxy tiene 4 saltos antes de llegar al destino.

He desechado los iptables del kube-proxy, no especifican nada con respecto a la conexión NAT de la subred de VPC con los contenedores.

La subred de VPC tampoco aparece en los contenedores, lo cual es por diseño.

Algo de material de lectura:

EDITAR1: Más información: Supongamos que la VPN conecta la VPC a la red remota 10.200.0.0. La VPC tiene varias subredes. El rango principal es, p.e. 10.10.0.0/20. Por cada cluster de Kubernetes tenemos dos subredes más, una para cada pod (10.16.0.0/14) y otra para servicios (10.20.0.0/20). La puerta de enlace es 10.10.0.1. Cada pod nuevamente tiene su propio rango, donde pod_1 es 10.16.0.0/14, pod_2 es ​​10.16.1.0/14, pod_3 10.16.3.0/14 y así sucesivamente. Uno de los kube-proxies tiene varios adaptadores de red. Reside en la red 10.10.0.0 con eth0 y tiene un puente cbr0 hacia 10.16.0.0. A través de dicho kube-proxy a través del puente, los trabajadores de Airflow son coconectándose a la red. Un trabajador, p.e. 10.16.0.1 tiene solo un adaptador de red.

El kube-proxy puede llegar a la red 10.200.0.0. Los trabajadores de Airflow no pueden.

¿Cómo conseguimos que el trabajador acceda a la red 10.200.0.0? ¿Necesitamos cambiar las iptables del kube-proxy?



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

¿La VPN se implementa en la VPC actual? ¿O realiza un emparejamiento para alcanzarlo?

-----

@guillaumeblaquiere está implementado en la VPC actual con Google Cloud Classic VPN.

-----

¿Ve que la solicitud llegó al otro lado del ¿VPN? La mayoría de las veces, cuando configuro una VPN, olvido el camino de regreso...

-----

Hola @guillaumeblaquiere, edité mi publicación inicial para explicar un poco más la red. Nuestra VPN funciona según lo previsto y desde cualquier otra máquina virtual a la que podemos acceder y trabajar con la API. Ahora queremos implementar nuestro código en un DAG para que se ejecute automáticamente.

-----

Hmm, si su conexión funciona, si no tiene reglas de firewall especiales, si las subredes están en la misma VPC, debería funcionar ... ¿Tienes NAT configurado?

-----

Una de las posibles soluciones sería reenviar los paquetes desde la interfaz virtual de kube a la interfaz real del nodo. P.ej. agregando las siguientes reglas a las tablas de 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