NGINX vs. GCE Kubernetes ingress classes
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 astype: 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