I am trying to decide which would be good for my cluster. An nginx service(which routes requests to their corresponding services) or an ingress(which encapsulates other services) for load-balancing. What are the pros and cons?
You can use nginx with kubernetes ingress feature, which is available from v1.1+. It accepts a configMap where you can pass all your nginx related custom configuration.
When you use type: LoadBalancer
in the config, a load balancer (with external ip in case GCE) will be created.
For more info checkout their official repo https://github.com/kubernetes/ingress-nginx