<p>So, instead of explaining the architecture I draw you a picture today :) <em>I know, it's 1/10.</em></p>
<p><em>Forgot to paint this as well, it is a <strong>single node cluster</strong></em></p>
<p>Hope this will save you some time.
Probably it's also easier to see where my struggles are, as I expose the lack of understandings.</p>
<p>So, in a nutshell:</p>
<blockquote>
<p><strong>What is working:</strong></p>
<ul>
<li><p>I can curl each ingress via virtual hosts from <em>inside</em> of the server using <code>curl -vH 'host: host.com' http://192.168.1.240/articleservice/system/ipaddr</code></p>
</li>
<li><p>I can access the server</p>
</li>
</ul>
</blockquote>
<hr />
<blockquote>
<p><strong>What's not working:</strong></p>
<ul>
<li>I can <em>not</em> access the cluster from <em>outside</em>.</li>
</ul>
</blockquote>
<p>Somehow I am not able to solve this myself, even tho I read quite a lot and had lots of help. As I am having issues with this for a period of time now explicit answers are really appreciated.</p>
<p><a href="https://i.stack.imgur.com/NsX1r.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/NsX1r.png" alt="architecture" /></a></p>

<p>Generally you cannot access your cluster from outside without exposing a service.
You should change your "Ingress Controller" service type to <code>NodePort</code> and let kubernetes assign a port to that service.<br>
you can see ports assigned to a service using <code>kubectl get service ServiceName</code>.<br>
now it's possible to access that service from out side on <code>http://ServerIP:NodePort</code> but if you need to use standard HTTP and HTTPS ports you should use a reverse proxy outside of your cluster to flow traffic from port 80 to <code>NodePort</code> assigned to Ingress Controller Service.<br>
If you don't like to add reverse proxy, it is possible to add <code>externalIPs</code> to Ingress controller service but in this way you lose <code>RemoteAddr</code> in your Endpoints and you get ingress controller pod IP instead.
<code>externalIPs</code> can be list of your public IPs</p>

<p>you can find useful information about services and ingress in following links:<br>
<a href="https://kubernetes.io/docs/concepts/services-networking/service/" rel="nofollow noreferrer">Kubernetes Services</a></p>

<p><a href="https://kubernetes.github.io/ingress-nginx/deploy/baremetal/" rel="nofollow noreferrer">Nginx Ingress - Bare-metal considerations</a></p>
