<p>I'm trying to expose a Kubernetes pod on a single node bare metal cluster without a domain. 
In my understanding I've the these options:</p>

<ol>
<li>Expose using NodePort</li>
<li>Expose using an Ingress controller</li>
<li>Expose using ClusterIP and manually set an external IP</li>
</ol>

<p>As I mentioned already, I only have a single node cluster. This means that the master is master and node at the same time directlly running on a fedora host system.</p>

<p>The simplest solution is to use a NodePort. But the limitation here is (if I'm right), that the service port will be automatically selected from a given port range.</p>

<p>The next better solution is to use an ingress controller. But for this I need a public domain which I haven't. So the ingress controller also doesn't fit to me.</p>

<p>What for other options do I have? I just want to expose my service directly on port 9090.</p>

<p>Why not Option 3 ？ you can setup externalIPs to your node ip.</p>

<pre><code>apiVersion: v1
kind: Service
...
spec:
  externalIPs:
  - your node ip
</code></pre>

<p>Also with NodePort, the service port can be specified.</p>
