I am new to kubernetes and I am trying to expose an application publicly. I am using Scaleway as the cloud provider (if it matters).
From what I understand, there are multiple ways of doing this.
Create an Ingress Controller
By doing this, the ingress exposes a nodes IP address and port and forwards all requests to the attached service.
I pointed the DNS record to the publicly exposed IP.
SSL certificate is created using cert-manager and it seems to work great with the ingress controller meaning that the certificate is automatically created and attached to the ingress resource.
How do you manage DNS records when the cluster has multiple nodes which can be deleted / created automatically?
Create a Load Balancer type service
This creates a cloud provided Load Balancer which internally is configured to route all traffic to all nodes from the cluster.
With this approach I can point the DNS records to the Load Balancer IP which in turn can be configured to preserve the public IP, meaning that cluster nodes can be attached / removed and it will not affect the DNS records.
But I do not know how to add a SSL certificate using this approach. Any thoughts?
Which of the two approaches is best suited for exposing an application keeping in mind the DNS management and SSL certificates?