<p>Let's say I have a Kubernetes cluster with 1 master node <code>Master</code> and 2 worker nodes <code>Worker 1</code> and <code>Worker 2</code>. All have publicly reachable IP addresses.</p>
<ul>
<li><code>Master</code> has the IP 1.1.1.1</li>
<li><code>Worker 1</code> has the IP 2.2.2.2</li>
<li><code>Worker 2</code> has the IP 3.3.3.3</li>
</ul>
<p>Additionally, let's assume my cluster exposes an nginx-webserver with a website on port 80 and I can reach it via any of the 3 nodes (e.g. <code>1.1.1.1:80</code> or <code>2.2.2.2:80</code> or <code>3.3.3.3:80</code> opens the same website).
However, remembering the IP addresses is &quot;difficult&quot; and I would much rather like to remember a domain name. So I choose <code>&quot;www.flying-circus.uk&quot;</code> as my domain. But there is a problem: A public domain name is only assigned to one IP address, multiple IPs cannot have the same FQDN.</p>
<p>How can I configure my cluster so that the website is reachable from any node via the FQDN?</p>

<blockquote>
<p>But there is a problem: A public domain name is only assigned to one IP address, multiple IPs cannot have the same FQDN</p>
</blockquote>
<p>First, this statement is not absolutely true. An FQDN can point to multiple IP addresses. Something preventing you from doing that could be that your domain provider doesn't allow you to have the same FQDN with multiple DNS A pointers.</p>
<p>For example, <code>yahoo.com</code>, <code>google.com</code> point to different IPs:</p>
<pre class="lang-sh prettyprint-override"><code>$ dig yahoo.com

; &lt;&lt;&gt;&gt; DiG 9.10.6 &lt;&lt;&gt;&gt; yahoo.com
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 27299
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;yahoo.com.         IN  A

;; ANSWER SECTION:
yahoo.com.      323 IN  A   98.138.219.231
yahoo.com.      323 IN  A   98.137.246.7
yahoo.com.      323 IN  A   98.138.219.232
yahoo.com.      323 IN  A   98.137.246.8
yahoo.com.      323 IN  A   72.30.35.10
yahoo.com.      323 IN  A   72.30.35.9

;; Query time: 51 msec
;; SERVER: 10.240.246.53#53(10.240.246.53)
;; WHEN: Tue Jun 23 18:41:03 PDT 2020
;; MSG SIZE  rcvd: 123

</code></pre>
<p>Secondly, Kubernetes has several tools/resources that can help you achieve your hypothetical case. For example, if you'd like to have a single externally available endpoint to pods running in any Kubernetes nodes you can use a <a href="https://kubernetes.io/docs/concepts/services-networking/service/" rel="nofollow noreferrer">Service</a> combined with an <a href="https://kubernetes.io/docs/concepts/services-networking/ingress/" rel="nofollow noreferrer">Ingress</a> and <a href="https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/" rel="nofollow noreferrer">Ingress Controller</a>.</p>
