<p>The <code>User Microservice</code> is deployed on kubernetes. </p>

<p>The <code>Order Microservice</code> is not deployed on kubernetes,  but registered with Eureka.</p>

<p><strong><em>My questions:</em></strong></p>

<p>How can <code>Order Microservice</code> discover and access <code>User Microservice</code> through the Eureka??</p>

<p>First lets take a look at the problem itself: 
If you use an overlay network as Kubernetes CNI, the problem is that it creates an isolated Network thats not reachable from the outside (e.g. Flannel). If you have a network like that one solution would be to move the eureka server into kubernetes so eureka can reach the service in Kubernetes and the service outside of Kubernetes.</p>

<p>Another solution would be to tell eureka where it can find the service instead of auto discovery but for that you also need to make the service externally available with a <em>Service</em> of type NodePort, HostPort or LoadBalancer or with an <em>ingress</em> and I'm not sure its possible, but 11.2 in the following doc could be worth a look <a href="https://cloud.spring.io/spring-cloud-static/Edgware.SR3/multi/multi__service_discovery_eureka_clients.html" rel="nofollow noreferrer">Eureka Client Discovery</a>.</p>

<p>The third solution would be to use a CNI thats not using an overlay network like <a href="https://github.com/romana/romana" rel="nofollow noreferrer">Romana</a> which will make the service external routable by default.</p>
