<p>For in-mesh networking (no ingress or egress in my simple example), it seems like the common practice to have the "host" of a virtual service match an existing kubernetes service:</p>

<pre><code>hosts:
- reviews.default.svc.cluster.local
</code></pre>

<p>But is this <em>required</em>? If I wanted to create a virtual service for an entirely different host name, is that possible? For example:</p>

<pre><code>hosts:
- review-service.my-servicemesh
</code></pre>

<p>And then call the service at <a href="http://review-service.my-servicemesh" rel="nofollow noreferrer">http://review-service.my-servicemesh</a> instead of <a href="http://reviews" rel="nofollow noreferrer">http://reviews</a> (or <a href="http://reviews.default" rel="nofollow noreferrer">http://reviews.default</a>) ?</p>

<p>Or to ask this another way: can I have my namespace of istio (virtual) services be entirely decoupled from the namespace of kubernetes services/namespaces?</p>

bsmedberg
<p>Yes this can be acheived using istio <a href="https://www.google.com/url?client=internal-element-cse&amp;cx=013699703217164175118:veyyqmfmpj4&amp;q=https://istio.io/docs/reference/config/networking/service-entry/&amp;sa=U&amp;ved=2ahUKEwjElff8p5nmAhXs6XMBHXeVCLcQFjAFegQIAhAB&amp;usg=AOvVaw0yjuqFqbiwP3M9p8LbEmrT" rel="nofollow noreferrer">Service Entry</a>. You can create something like this</p>

<pre><code>apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: review-servicemesh
spec:
  hosts:
  - "review-service.my-servicemesh"
  location: MESH_EXTERNAL
  ports:
  - number: 80
    name: http
    protocol: HTTP
  resolution: STATIC [or even DNS]
  endpoints:
  - address: &lt;your_endpoint_address&gt;
</code></pre>
