I would like to know what you are doing regarding the Ingress Controller.
It’s possible to run them outside the cluster or inside the cluster. Each case has its pros and cons.
For example, running them as Pods in the cluster ease the deployment and the scalabality. However it uses worker nodes resources.
What are you doing in your production env ? are you using dedicated servers/VMs for the ingress controller (like 2 or 3 hosts with vrrp or something like that) ?
This topic is more about talking about pros and cons of each solution, as needs are differents, rather than imposing a unique solution.
Regards all !