After some further reading and testing, I did find a few benefits. I also realized that using the NGINX controller would still provision a load balancer... thereby not avoiding the ~$20/mo cost.

Differences

  • The GCE controller causes an HTTP(S) load balancer to be provisioned
  • The NGINX controller requires a service to be designated as type: LoadBalancer
    • Doing this causes a network load balancer to be provisioned

HTTP(S) load balancer

Network load balancer

Benefits:

  • As shown in the diagrams above, the HTTP(S) load balancer can load balance across regions, whereas the network load balancer can only load balance across zones in the same region
  • The GCE controller is built specifically for Google's Cloud Platform, so I assume it works more reliably
  • The default GCE controller requires no extra effort compared to maintaining and specifying the YAML files required for the NGINX controller to function