Tengo 2 clústeres de kubernetes
clúster 2: nginx de loadblancer expuesto con IP regionalIP_PRIVATE
service 1 - website `/website`
service 2 - blog `blog`
service 3 - api `api`
clúster 1: gce de loadblancer expuesto con IP globalIP_PUBLIC
Quiero implementar este comportamiento.
IP_PUBLIC/api -> service 2 response
IP_PUBLIC/* -> cdn -> service 1 response
Para implementar esto, he creado una capa de servicio cdn en el clúster 1 como se define aquí https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#expandable-1
Ahora mi dominio se asignará a IP_PUBLIC, por lo tanto, cualquier solicitud llegará primero al clúster 1, luego debe pasar la solicitud al clúster 2 y obtener la respuesta.
Nota: tengo que crear 2 clústeres porque
Quiero pasar la solicitud exacta (dominio, encabezados, etc.) del clúster 1 al clúster 2 como si la solicitud llegara directamente al clúster 2.
¿Cuál es la forma correcta de hacer esto? En caso de que haya alguna solución alternativa para lograr lo anterior con cambios mínimos, sugiérala.
Solución del problema
No estoy seguro de qué ingreso está ejecutando en segundo plano, sin embargo, puede cambiar la configuración usando la anotación.
Puede habilitar el paso de los encabezados en Nginx usando esta anotación para que reenvíe todos los encabezados personalizados y los detalles del dominio.
enable-underscores-in-headers: true
con
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header My-Custom-Header $http_my_custom_header;
Pero no estoy seguro de una parte cuando dices:
Ahora mi dominio se asignará a IP_PUBLIC, por lo tanto, cualquier solicitud llegará primero al clúster 1, luego debe pasar la solicitud al clúster 2 y obtener la respuesta.
Una vez que su solicitud llegue al tráfico del dominio, tal vez fluya como
Request > domain > cluster 1 > cluster 1's service > IP or Domain of cluster 2 > cluster 2's ingress controller > cluster 2's service
en este caso, debe pasar los encabezados para solicitar y habilitar la configuración de ingreso en el controlador de cluster2 para que reenvíe los detalles al servicio de back-end que se ejecuta en cluster2.
Tampoco estoy seguro de cómo su tráfico de salida sale del clúster utilizando la puerta de enlace NAT o directamente desde el nodo, considerando que tiene un clúster público, su servicio llamará directamente al dominio de cluster2 en ese caso, debe agregar los encabezados con la solicitud.
Simplemente configure la anotación adecuada para ingresar y sus servicios de back-end obtendrán los encabezados con los detalles del dominio.
No hay comentarios.:
Publicar un comentario