Me pregunto si alguien puede ayudar con mi problema, aquí está la configuración:
Aquí está el problema: cuando estoy conectado a través de SSH en un nodo de GKE en el clúster 2, puedo ejecutar correctamente una solicitud curl para acceder a https://service1.domain.com que se ejecuta en el clúster 1 y obtener la respuesta esperada, por lo que el tráfico definitivamente está enrutando desde el clúster 2 > clúster 1. Sin embargo, cuando ejecuto el mismo comando curl desde un POD, ejecutándolo en un nodo GKE, la misma solicitud curl se agota.
He ejecutado la mayor cantidad de solución de problemas que he podido, incluidos telnet, traceroute, etc. y estoy realmente atascado por qué podría ser esto. Si alguien puede arrojar luz sobre la diferencia aquí, sería genial.
Me preguntaba si la red de pods de alguna manera está reenviando el tráfico a través de la IP pública de los clústeres en lugar de a través de la conexión de interconexión de VPC.
Como se mencionó en una de las respuestas , los alias de IP (nativos de VPC) deberían funcionar de forma inmediata. Si usa un clúster de GKE basado en rutas en lugar de nativo de VPC, necesitará usar rutas personalizadas.
Según este documento
De forma predeterminada, se admite el intercambio de tráfico entre redes de VPC con GKE cuando se usa con alias de IP. Si no usa alias de IP, puede exportar rutas personalizadas para que los contenedores de GKE sean accesibles desde redes emparejadas.
Esto también se explica en este documento.
Si tiene clústeres de GKE sin direccionamiento nativo de VPC, es posible que tenga varias rutas estáticas para dirigir el tráfico a las instancias de VM que alojan sus contenedores. Puede exportar estas rutas estáticas para que los contenedores sean accesibles desde redes emparejadas.
Entonces parece que no está utilizando un clúster "nativo de VPC" y lo que necesita es "enmascaramiento de IP".
De este documento: "Un clúster de GKE usa enmascaramiento de IP para que los destinos fuera del clúster solo reciban paquetes de direcciones IP de nodos en lugar de direcciones IP de pods. Esto es útil en entornos que esperan recibir paquetes solo de direcciones IP de nodos".
Puede usar ip-masq-agent o k8s-custom-iptables . Después de esto, funcionará, ya que será como si estuviera haciendo una llamada desde el nodo, no dentro del módulo.
El problema al que se enfrenta parece similar al mencionado en esta pregunta SO , ¿quizás sus pods están usando direcciones IP fuera del rango de VPC y, por ese motivo, no pueden acceder a la VPC interconectada?