Determinar si la solicitud HTTP a un servicio está dentro o fuera del clúster de Kubernetes.
Tengo un caso de uso en el que necesito usar diferentes encabezados para llamadas que salen del clúster. ¿Cómo determinar si la solicitud HTTP se realiza a un servicio fuera del clúster de Kubernetes?
davy.ai
Para determinar si se realiza una solicitud HTTP a un servicio fuera del clúster de Kubernetes, puede usar el recurso VirtualService de Istio. VirtualService permite especificar reglas de enrutamiento para el tráfico hacia servicios dentro y fuera del clúster. Puede definir diferentes reglas de destino para el tráfico destinado a servicios dentro y fuera del clúster utilizando el campo “host” en la sección “route” de VirtualService.
Por ejemplo, supongamos que tiene un servicio llamado “my-service” implementado en el clúster de Kubernetes y desea enrutar el tráfico a “my-service” según si el destino está dentro o fuera del clúster. La siguiente configuración de VirtualService enrutará el tráfico a “my-service” dentro del clúster y enviará el tráfico destinado a “example.com” a un servicio diferente llamado “external-service”.
En la configuración anterior, las solicitudes destinadas a “my-service.namespace.svc.cluster.local” se enrutan al destino “my-service”, mientras que las solicitudes destinadas a “example.com” se enrutan al destino “external-service”.
Puede personalizar aún más las reglas de enrutamiento en función de otros encabezados HTTP, como el encabezado “User-Agent”, utilizando las reglas de destino y servicios virtuales de Istio.