What is meant by “one definition” and which “name” is this paragraph referring to ?
I have multiple deployments with version labels like
live
demo
I have a VirtualService / DestinationRule for each version, routing traffic depending on a prefix match
This seems to be a problem… but combining the configs (which i tried manually to get it to work) is a problem too, because deployment-wise those are two distinct deployments
I will post the yaml stuff later, after i did a clean deploy.
istioctl x describe pod gesellschafter-demo-5b858dd48d-7vpzs -n neo
Pod: gesellschafter-demo-5b858dd48d-7vpzs
Pod Ports: 8888 (gesellschafter-demo), 15090 (istio-proxy)
--------------------
Service: gesellschafter
Port: http 8888/HTTP targets pod port 8888
DestinationRule: gesellschafter-demo-destinationrule for "gesellschafter"
Matching subsets: demo
No Traffic Policy
Pod is PERMISSIVE, client protocol unspecified
Exposed on Ingress Gateway http://172.26.1.86
VirtualService: gesellschafter-live
/demo/*, /demo*
1 additional destination(s) that will not reach this pod
~ $ istioctl x describe pod gesellschafter-live-d9f5c4b5b-fzp5n -n neo
Pod: gesellschafter-live-d9f5c4b5b-fzp5n
Pod Ports: 8888 (gesellschafter-live), 15090 (istio-proxy)
--------------------
Service: gesellschafter
Port: http 8888/HTTP targets pod port 8888
DestinationRule: gesellschafter-demo-destinationrule for "gesellschafter"
WARNING POD DOES NOT MATCH ANY SUBSETS. (Non matching subsets demo)
Matching subsets:
(Non-matching subsets demo)
No Traffic Policy
Pod is PERMISSIVE, client protocol unspecified
Exposed on Ingress Gateway http://172.26.1.86
VirtualService: gesellschafter-live
WARNING: No destinations match pod subsets (checked 2 HTTP routes)
Warning: Route to UNKNOWN subset live; check DestinationRule gesellschafter-demo-destinationrule
Route to non-matching subset demo for (/demo/*, /demo*)
As soon as i combine my DestinationRules it works… but that is not very deployment friendly…
I worked around there isses a little, but it still would be nice to have both DestinationRule and VirtualService merging in both Gateways and Sidecars
Related issue on GitHub
Any approaches you guys use to solve this are welcome !
Did you found any workaround for this issue? I’m stuck with the same issue. I´m getting the same error, the 2nd subset appears to be missing but for some reason is working but I´m not sure.
The first one is used when the service is accessed from outside the cluster via the ingress gateway and different versions of the service are selected by the destinationrule using prefixes like /v1.0.0 or /live or /demo.
The second one contains the version in the name, so no host merging is necessary. But a drawback is the resulting url looks like this http://gesellschafter-v1-0-0.neo.svc.expert-k8s.local/v1.0.0
which is a bit redundand, but works for now.
Support for host merging in sidecars when using the mesh-gateway would be way nicer though…
Thanks for your reply. Unfortunately that approach will no work for our scenario. We have a multibranch staging environment and we want keep each service talking with the same branch name unaware of endpoint config for each version just using sourceLabel match.