<p>MY istio destintion rules are not working, getting below error in kiali</p>

<p><a href="https://i.stack.imgur.com/ZmJJ6.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ZmJJ6.png" alt="enter image description here"></a>
VirtualService and destination rule for echo service:</p>

<p>My calling <code>echo-svc:8080</code> and <code>echo-svc:8080/v1</code> from my another virtualservices , I'm not able to do route in specific version.</p>

<p>When making request from another virtualservice: <code>echo-svc:8080/v1</code> or <code>echo-svc:8080</code>, I'm getting response from both the subsets. </p>

<pre><code>---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: echo-vsvc
spec:
  hosts:
  - "echo-svc.default.svc.cluster.local"
  http:
  - match:
    - uri:
        prefix: "/v1"
    route:
    - destination:
        host: echo-svc.default.svc.cluster.local
        subset: v1
  - route:
    - destination:
        host: echo-svc.default.svc.cluster.local
        subset: v2
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: echo-destination
spec:
  host: echo-svc.default.svc.cluster.local
  subsets:
  - name: v1
    labels:
      version: v0.1
  - name: v2
    labels:
      version: v0.2
</code></pre>

<p>If I'm attaching my echo-service to gateway and then making service to <code>v1</code> endpoint via istio-ingress, my all requests are routed to required k8s service, but if it's internal(echo service not attached to gateway) envoy is not routing the requests to required k8s service..</p>

<p>Update:</p>

<pre><code> $ &gt; k get pods --show-labels
NAME                              READY   STATUS    RESTARTS   AGE     LABELS
echo-deploy-v1-bdf758994-8f54b    2/2     Running   0          2m56s   app=echo-app,pod-template-hash=bdf758994,version=v0.1
echo-deploy-v2-68bb64684d-9gg2r   2/2     Running   0          2m51s   app=echo-app,pod-template-hash=68bb64684d,version=v0.2
frontend-v2-569c89dbd8-wfnc4      2/2     Running   2          12h     app=frontend,pod-template-hash=569c89dbd8,version=v2
</code></pre>

<p>Found my mistake, for istio destination rules to work be very careful about these: <a href="https://istio.io/docs/setup/kubernetes/spec-requirements/" rel="nofollow noreferrer">https://istio.io/docs/setup/kubernetes/spec-requirements/</a>.</p>

<p>My mistake was of <strong>named port</strong> for service. Updating it from "web" to "http-web" worked for me.  It should be of form : <code>&lt;protocol&gt;[-&lt;suffix&gt;]</code></p>

<pre><code>---
apiVersion: v1
kind: Service
metadata:
  name: echo-svc
  labels:
    app: echo-app
spec:
  ports:
  - port: 80
    targetPort: 8080
    name: http-web
  selector:
    app: echo-app
---
</code></pre>
