What is the difference between Nginx ingress controller and HAProxy load balancer in kubernetes?
First, let's have a quick overview of what an Ingress Controller
is in Kubernetes.
Ingress
rules and changes its internal configuration accordinglySo, both the HAProxy ingress controller and the Nginx ingress controller will listen for these Ingress
configuration changes and configure their own running server instances to route traffic as specified in the targeted Ingress
rules. The main differences come down to the specific differences in use cases between Nginx and HAProxy themselves.
For the most part, Nginx comes with more batteries included for serving web content, such as configurable content caching, serving local files, etc. HAProxy is more stripped down, and better equipped for high-performance network workloads.
The available configurations for HAProxy can be found here and the available configuration methods for Nginx ingress controller are here.
The differences go deeper than this, however, and these issues go into more detail on them: