HAProxy vs Kubernetes: What are the differences?
Developers describe HAProxy as "The Reliable, High Performance TCP/HTTP Load Balancer". HAProxy (High Availability Proxy) is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. On the other hand, Kubernetes is detailed as "Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops". Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.
HAProxy and Kubernetes are primarily classified as "Load Balancer / Reverse Proxy" and "Container" tools respectively.
"Load balancer", "High performance" and "Very fast" are the key factors why developers consider HAProxy; whereas "Leading docker container management solution", "Simple and powerful" and "Open source" are the primary reasons why Kubernetes is favored.
Kubernetes is an open source tool with 55.1K GitHub stars and 19.1K GitHub forks. Here's a link to Kubernetes's open source repository on GitHub.
According to the StackShare community, Kubernetes has a broader approval, being mentioned in 1046 company stacks & 1096 developers stacks; compared to HAProxy, which is listed in 457 company stacks and 211 developer stacks.
What is HAProxy?
What is Kubernetes?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
It's a little bit complex to onboard, but once you grasp all the different concepts the platform is really powerful, and infrastructure stops being an issue.
Service discovery, auto-recovery, scaling and orchestration are just a few of the features you get.
Just tinkering with it for personal use at this stage based on positive experience using it at work. Plan to use it for high traffic distributed systems if not using a managed hosting service like Heroku, AWS Lambda, or Google Cloud Functions. Reasons for using instead of these alternatives would be cheaper cost at higher scale.
We use HAProxy to load balance between our webservers. It balances TCP between the machines round robin and leaves everything else to Node.js, leaving the connections open with a reasonably long time to live to support WebSockets and re-use of a TCP connection for AJAX polling.
Good existential question. Kubernetes is painful in the extreme - especially when combined with Ansible. The layers of indirection are truly mind altering. But hey - containers are kewl!
HAProxy manages internal and origin load balancing using KeepaliveD. Two small servers host the entire site, never moving about 15% load even during the largest load spikes.
Our developer experience system is on Kubernetes (Google Kubernetes Engine at the moment). We would like to expand our Kubernetes clusters over other Kubernetes engine.
We use HAProxy to balance traffic at various points in our stack, includgin nginx nodes on different physical machines, and api nodes on the backend.
I use HAproxy primarily for application routing and SSL termination. I also use its logs and statistics to visualize incoming traffic in Kibana.
Kubernetes is used for managing microclusters within our AWS infrastructure. This allows us to deploy new infrastructure in seconds.
We use HAProxy to load balance web requests for our web application, but also for some internal load balancing of microservices.