What are reasons to prefer an ingress over using `expose` in k8s? If one uses expose in k8s then it is possible to assign an IP to an app so it could be accessed on the www.

It is also possible to configure an ingress. This is basically a rproxy. 

What are reasons to use an ingress over expose?
As @Tensibai indicated:


  With an ingress you can have multiples names on same port, no possible
  by exposing a port tied to only one service