Tenemos una aplicación alojada en un clúster de Azure Aks Kubernetes. Es básicamente una aplicación web que utiliza un back-end java con un contenedor nginx configurado como proxy inverso para dirigir el tráfico http. La mayoría del tráfico se enruta a los servicios de back-end, pero dirigimos un par de puntos finales a nuestra instancia local de la aplicación (usando un dominio público).
Esta configuración funcionó muy bien durante aproximadamente una semana con una carga de tráfico bastante sólida, luego, de repente, dejó de enviar tráfico por proxy a nuestros recursos locales. Inicialmente pensamos que alguien había cambiado la configuración de un firewall, pero las pruebas posteriores revelaron que el problema estaba aislado en el único nodo que albergaba el proxy nginx.
Pude ingresar al nodo y los intentos de llegar a nuestro servidor local usando la dirección http pública fallaron. Sin embargo, puedo acceder a cualquier otro sitio en Internet, incluidos los sitios que alojamos en otras direcciones IP. Si hago ssh a otro nodo, puedo llegar a nuestros sitios alojados en las instalaciones sin problemas. Parece que nuestro nodo está bloqueando o está siendo bloqueado para acceder a nuestro sitio, pero no podemos encontrar ningún mecanismo responsable. No se han producido cambios en el firewall o la configuración. La documentación de Azure aks dice que no hay límites predeterminados en la salida del tráfico http. ¿Alguien se ha encontrado con este problema?
Aquí hay un bloque de nuestra configuración nginx que envía solicitudes a nuestra instancia local:
location /civix/content/oic { proxy_pass $on_prem_site; proxy_set_header Host $server_name; proxy_set_header X-Forwarded-For $remote_addr; proxy_intercept_errors on; }Dado que puede conectarse a otros sitios desde el nodo que se comporta mal, supondré que esto no es un problema para resolver el nombre de DNS y que simplemente no puede conectarse a la aplicación local después de una búsqueda de DNS exitosa. Cualquier detalle adicional sobre la imposibilidad de acceder a la aplicación local sería útil.
Para obtener comentarios inmediatos, intente desactivar la configuración de proxy_intercept_errors en nginx para ver si eso le brinda más información útil.
Compruebe si la aplicación local está limitando/bloqueando la velocidad de la dirección IP asociada con la salida del nodo que falla. Si no tiene acceso a la aplicación local, intente mover el servicio de proxy ngingx a un nuevo nodo (utilice la afinidad de nodos para apuntar a un nodo "bueno": https://docs.microsoft.com/en-us/ azure/aks/operator-best-practices-advanced-scheduler#control-pod-scheduling-using-node-selectors-and-affinity ).
Es probable que el tráfico comience a fluir nuevamente, lo que validará la teoría mientras soluciona los problemas que bloquean el lado de su aplicación local.