Ingress to Virtual Service

Hi there!.

In my local cluster, I don’t have an EXTERNAL-IP, it gets “pending” forever. But we have configured DNS to access it, via Ingress controller. So, I need to make load balancing with virtual service directly after accessing the cluster via ingress and then the service, but Istio dont do it.

  • If I go from a pod to a svc with a virtual service and routing rules configured, it works fine. It does balancing with destination and subset attributes

POD => SVC => POD_V1 (OK)

  • If I go from a ingress-gateway service and routing rules configured, it works fine too, but this only can be accessed from an IP, not from a DNS

INGRESS-GATEWAY => SVC => POD_V2 (OK)

  • If I access my application from DNS, it goes to the ingress configuration, into the backend and serviceName, who should also work as the previous cases, but, it doesnt take the confiuration of the virtual service at all, so, this case make balance 50/50 always, and is not posible to make a canary deploy with an Ingress access for example.

INGRESS-CONTROLLER => SVC (50/50) => [POD_V1 ^ POD_V2]

Please, could you help me with this?.. Currently I’m working with istio v1.2.2 and istio v1.4, but in both cases ocurrs the same.

Thanks!

Its seems not to be possible as mention in https://istio.io/v1.0/docs/tasks/traffic-management/ingress/#configuring-ingress-using-an-istio-gateway.

Note that in this configuration, internal requests from other services in the mesh are not subject to these rules but instead will default to round-robin routing. To apply these or other rules to internal calls, you can add the special value mesh to the list of gateways .