<p><strong>Problem</strong> </p>

<ul>
<li>Trying to use Spring boot admin to do a deep monitoring of spring boot micro services running in Kubernetes.</li>
<li>Spring boot admin listing the micro services but pointing to the internal IPs.</li>
</ul>

<blockquote>
  <p>Spring boot admin application listing page showing the internal IP</p>
</blockquote>

<p><a href="https://i.stack.imgur.com/bYDce.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/bYDce.png" alt="Spring boot admin application listing page showing the internal IP"></a></p>

<blockquote>
  <p>The application details page has almost zero info</p>
</blockquote>

<p><a href="https://i.stack.imgur.com/1Gq3B.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/1Gq3B.png" alt="The application details page almost zero info"></a></p>

<p><strong>Details</strong></p>

<ul>
<li>Kubernetes 1.15</li>
<li>Spring boot applications are getting discovered by Spring boot admin using Spring cloud discovery</li>
<li>spring-cloud-kubernetes version 1.1.0.RELEASE</li>
<li>The problem is that the IPs are of internal pod network and would not be accessible to the users in any real world scenario.</li>
</ul>

<blockquote>
  <p>Any hints on how to approach this scenario ? Any alternatives ?</p>
</blockquote>

<p>Also I was wondering how spring boot admin would behave in case of pods with more than one replica. I think it is close to impossible to point to a unique pod replica through ingress or node port.</p>

<blockquote>
  <p>Hack I am working on</p>
</blockquote>

<p>If I can start another pod which exposes the Linux desktop to the end user. From a browser of this desktop, user may be able to access the pod network ips. It is just a wild thought as a hack.</p>

<p>Spring Boot Admin register each application/client based on its name by below property.</p>

<pre><code>spring.boot.admin.client.instance.name=${spring.application.name}
</code></pre>

<p>If all your pods have same name it can register based on individual ips by enabling <em>perfer-ip</em> property (which is false by default): </p>

<pre><code>spring.boot.admin.client.instance.prefer-ip=true
</code></pre>

<p><strong>In your case</strong>, you want to SBA to register based on the Kubernetes load balanced url, then <em>service-base-url</em> property should be set the corresponding application's url.</p>

<pre><code>spring.boot.admin.client.instance.service-base-url=http://myapp.com
</code></pre>
