<p>How to balance requests between each pod using <a href="https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#proxy-next-upstream" rel="nofollow noreferrer">proxy-next-upstream</a> setting on Nginx ingress.
Nginx ingress should try all pods available before returning an error to client.</p>

<p>If I understand correctly ingress is going to load balance between services not pods. So if there is one service <code>proxy-next-upstream</code> is useless? Should I create separate service for each pod or there are better solutions?</p>

<p>The ingress in your case will have a <code>service</code> type object as backend.
The service itself then has multiple pods as backends to it.
This way in a micro service architecture one ingress can have multiple services as backends for example for multiple different URL contexts that are served by different applications.</p>

<p>You can read all about the different kind of services that exist <a href="https://kubernetes.io/docs/concepts/services-networking/service/" rel="nofollow noreferrer">here</a></p>
