<p>I have this yaml for an Ingress:</p>

<pre><code>kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: app
  namespace: ingress-controller
... omitted for brevity ...
spec:
  rules:
    - host: ifs-alpha-kube-001.example.com
      http:
        paths:
          - path: /
            pathType: ImplementationSpecific
            backend:
              serviceName: service-nodeport
              servicePort: 80
          - path: /
            pathType: ImplementationSpecific
            backend:
              serviceName: service-nodeport
              servicePort: 443
status:
  loadBalancer:
    ingress:
      - {}
</code></pre>

<p>In the above I set ...</p>

<pre><code>    - host: ifs-alpha-kube-001.example.com
</code></pre>

<p>That host just happens to be one of my nodes.  I have three nodes.  I am pretty certain that this incorrect.  The ingress works but if I shutdown ifs-alpha-kube-001 the ingress stops working.  What should I set <code>host</code> if I want a high availability cluster?</p>

<p>Thanks</p>

Red Cricket
<blockquote>
  <p>What should I set host if I want a high availability cluster?</p>
</blockquote>

<p>The idea behind the Ingress resource is using the <em>brower's</em> <code>host:</code> HTTP header (which is sent for every request HTTP/1.1 and newer) for virtual hosting, so you can create <em>one</em> load balancer, but point all of your DNS records at the one host -- versus having to create a new load balancer for every <code>Service</code> in your cluster</p>

<p>Thus, the <code>host:</code> header would be whatever DNS name you wished for the outside world to be able to reach your <code>Service</code> as; for example, if you have a website and a reporting web-app in your cluster, one <code>host:</code> might be <code>www.example.com</code> and the other <code>host:</code> might be <code>reports.example.com</code> but both would be CNAME records for <code>my-k8s-lb.example.com</code></p>
