That is my current solution:
LoadBalancer Instance with cloud -> Cluster NodePort Service -> Ingress Controller Service -> Ingress Controller Pod.
is it necessary to deploy the Ingress Controller using DaemonSet?
In a reasonably large cluster deploying ingress as deployment with multiple replicas is suitable compared to daemonset. When you are using deployment just make sure that replicas gets deployed in different nodes.You don't need a high number of NGINX instances to handle high volumes of traffic and most importantly, you need to keep in mind that each instance of the ingress controller needs to reach the kubernetes API server. This means if you have lots of replicas, you are putting (unnecessary) pressure. Using a deployment with an anti-affinity rule to avoid multiple replicas in the same node is, in most of the cases, more than enough