networking - Como conecto o Cloud Composer Airflow DAG a uma VPN

CorePress2024-05-09  6

How do I connect Cloud Composer Airflow DAG to a VPN

Como posso permitir que um DAG do Cloud Composer Airflow se conecte a uma API REST por meio de um gateway VPN? O cluster está conectado à VPC correspondente.

O kube-proxy consegue acessar a API, mas os contêineres não.

Eu fiz SSH no kube-proxy e nos contêineres e tentei um traceroute. O traceroute dos contêineres termina com o proxy kube. O kube-proxy tem 4 saltos antes de chegar ao destino.

Eu descartei os iptables do kube-proxy, eles não especificam nada em relação ao NAT da sub-rede VPCs com os contêineres.

A sub-rede VPC também não aparece nos contêineres, o que é intencional.

Algum material de leitura:

EDIT1: Mais informações: Vamos supor que a VPN conecte o VPC à rede 10.200.0.0 remota. A VPC possui várias sub-redes. O intervalo primário é, e. 10.10.0.0/20. Para cada cluster Kubernetes temos mais duas sub-redes, uma para cada pod (10.16.0.0/14) e outra para serviços (10.20.0.0/20). O gateway é 10.10.0.1. Cada pod novamente tem seu próprio intervalo, onde pod_1 é 10.16.0.0/14, pod_2 é 10.16.1.0/14, pod_3 10.16.3.0/14 e assim por diante. Um dos proxies kube possui vários adaptadores de rede. Ele reside na rede 10.10.0.0 com eth0 e possui uma ponte cbr0 para 10.16.0.0. Através do referido kube-proxy através da ponte, os trabalhadores do Airflow são coconectando-se à rede. Um trabalhador, por ex. 10.16.0.1 possui apenas um adaptador de rede.

O kube-proxy pode alcançar a rede 10.200.0.0. Os trabalhadores do Airflow não podem.

Como fazemos para que o trabalhador acesse a rede 10.200.0.0? Precisamos alterar o iptables do kube-proxy?



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

A VPN é implantada na VPC atual? Ou você realiza um peering para alcançá-lo?

-----

@guillaumeblaquiere ele é implantado na VPC atual com Google Cloud Classic VPN.

-----

Você vê que a solicitação chegou do outro lado do VPN? Na maioria das vezes, quando configuro uma VPN, esqueci o caminho de volta...

-----

Olá @guillaumeblaquiere, editei meu post inicial para explicar um pouco mais a rede. Nossa VPN funciona conforme planejado e de qualquer outra VM podemos acessar e trabalhar com a API. Agora queremos implantar nosso código em um DAG para que ele seja executado automaticamente.

-----

Hmm, se sua conexão funcionar, se você não tiver regras especiais de firewall, se as sub-redes estiverem na mesma VPC, deve funcionar ... Você tem o NAT configurado?

-----

Uma das soluções possíveis seria encaminhar os pacotes da interface virtual do kube para a interface real do nó. Por exemplo. adicionando as seguintes regras às tabelas 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