I was facing the same error.
The nginix ingress controller uses hostPort to expose ports 80 and 443 directly from the host. However, even I'm using Flannel as an overlay network with CNI, and hostPort is unavailable when CNI is used.
I could use nodePort, but then I may as well just use a regular service anyway. I'll be using a standard load balancer in front of my ingress hosts that's not part of the Kubernetes system and it should work just fine.