<p>I see guides like <a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes" rel="nofollow noreferrer">this</a> where setting up an Nginx Ingress (with ssl) requires you enter the host, i.e. <code>echo1.example.com</code>. I don't understand how you would be able to use the host specified if you didn't have the IP address (in your DNS, how would you know where to piont <code>echo.example.com</code>?).</p>

<p>When I set up an ingress like this, <code>echo.example.com</code> would show up as the ingress <code>ADDRESS</code>, so I don't know the IP. If I don't specify it, the <code>ADDRESS</code> is just empty. With this, how am I suppose to know what IP I'm suppose to point my domain name?</p>

<p>I'm running on GKE.</p>

<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: echo-ingress
  annotations:  
    kubernetes.io/ingress.class: nginx
    certmanager.k8s.io/cluster-issuer: letsencrypt-staging
spec:
  tls:
  - hosts:
    - echo1.example.com
    - echo2.example.com
    secretName: letsencrypt-staging
  rules:
  - host: echo1.example.com
    http:
      paths:
      - backend:
          serviceName: echo1
          servicePort: 80
  - host: echo2.example.com
    http:
      paths:
      - backend:
          serviceName: echo2
          servicePort: 80
</code></pre>

<p>The IPs of your Kubernetes nodes should be considered ephemeral.  Do not point hostnames at them for purposes of hosting websites and services.  </p>

<ol>
<li><a href="https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address" rel="nofollow noreferrer">Reserve an external static IP address</a></li>
<li>Create a load balancer on ports 80 and 443.  Use <a href="https://cloud.google.com/load-balancing/docs/https/setting-up-https" rel="nofollow noreferrer">HTTPS</a> if you want the load balancer to handle TLS.  Use <a href="https://cloud.google.com/load-balancing/docs/tcp/setting-up-tcp" rel="nofollow noreferrer">TCP</a> if you want nginx to handle TLS</li>
<li><a href="https://cloud.google.com/load-balancing/docs/target-pools" rel="nofollow noreferrer">Configure Target Pools</a> on the load balancer to point to your K8s node pools on the correct nginx ingress port</li>
<li>Point all hostnames served by the cluster at the external static IP address</li>
</ol>
