<p>we have k8s cluster and I’ve application which is running there.
Now I try to add <a href="https://prometheus.io/" rel="nofollow noreferrer">https://prometheus.io/</a>
and I use the command </p>

<p><code>helm install stable/prometheus --version 6.7.4 --name my-prometheus</code></p>

<p>this command works and I got this</p>

<p><code>NAME:   my-prometheus
LAST DEPLOYED: Tue Feb  5 15:21:46 2019
NAMESPACE: default
STATUS: DEPLOYED
...
</code>
when I run command </p>

<p><code>kubectl get services</code></p>

<p>I got this </p>

<pre><code>kubernetes                         ClusterIP   100.64.0.1       &lt;none&gt;        443/TCP    2d4h
my-prometheus-alertmanager         ClusterIP   100.75.244.55   &lt;none&gt;        80/TCP     8m44s
my-prometheus-kube-state-metrics   ClusterIP   None             &lt;none&gt;        80/TCP     8m43s
my-prometheus-node-exporter        ClusterIP   None             &lt;none&gt;        9100/TCP   8m43s
my-prometheus-pushgateway          ClusterIP   100.75.24.67     &lt;none&gt;        9091/TCP   8m43s
my-prometheus-server               ClusterIP   100.33.26.206   &lt;none&gt;        80/TCP     8m43s
</code></pre>

<p>I didnt get any externalIP</p>

<p>Does someone knows how to add it ?  via service? any example for this</p>

<p><strong>update</strong></p>

<p>i’ve added the following yml</p>

<pre><code>apiVersion: v1
kind: Service
metadata:
  name: prometheus-service
spec:
  selector:
    app: prometheus-server
  type: LoadBalancer
  ports:
    - port: 8080
      targetPort: 9090
      nodePort: 30001
</code></pre>

<p>which created successfully </p>

<p>now I see the external ip like when running kubectl get services</p>

<pre><code>my-prometheus-server               LoadBalancer   100.33.26.206   8080:30001/TCP     80/TCP     8m43s
</code></pre>

<p>And I use in the browser 100.33.26.206:30001 and nothing happen, any idea? </p>

<p>I think what you are trying to do is to create a service with a type LoadBalancer, those have an internal and external IP.</p>
<p>You can create one like any other service but you should precise those two fields:</p>
<pre><code>externalTrafficPolicy: Local
type: LoadBalancer
</code></pre>
<p><strong>Updated</strong>:</p>
<p>There seems to be some confusion, you don't need an external ip to monitor your apps, it will only be used to access prometheus UI.</p>
<p>The UI is accessible on port 9090 but prometheus is never accessed by the exporter as it will be prometheus wich will be <strong>scraping</strong> the exporters.</p>
<p>Now to access a service from the internet you should have a google ip, but it seems that what you have is still an internal IP, it's in the same subnet as the other clusterIP, and it should not. For now in place of an external ip it's showing a port redirect wich is also wrong as the prometheus UI is on port 9090 (if you didn't modify your configuration it should still be). You should try to remove the &quot;nodePort&quot; and leave the port redirect to kubernetes.</p>
