EasyHAProxy is an Ingress and Auto Discover service based on HAProxy.
HAProxy is an open-source, high-performance load balancer and reverse proxy designed for TCP and HTTP-based applications. Renowned for its stability, reliability, and performance, it is widely adopted in production environments.
EasyHAProxy combines HAProxy’s robustness with seamless service discovery and exposure within Kubernetes clusters. It offers a straightforward method to configure Ingress rules for services.
Key Features
Package | Version | License |
---|---|---|
haproxy | 2.6.15 | GPL2 |
Click the Deploy to DigitalOcean button to install a Kubernetes 1-Click Application. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account.
In addition to creating EasyHAProxy Ingress Controller using the control panel, you can also use the DigitalOcean API. As an example, to create a 3 node DigitalOcean Kubernetes cluster made up of Basic Droplets in the SFO2 region, you can use the following doctl
command. You need to authenticate with doctl
with your API access token) and replace the $CLUSTER_NAME
variable with the chosen name for your cluster in the command below.
doctl kubernetes clusters create --size s-4vcpu-8gb $CLUSTER_NAME --1-clicks easyhaproxy
After enabling EasyHAProxy you need to MANUALLY create a load balancing pointing to your Kubernetes Cluster. EasyHAProxy doesn’t create it manually. Here are the instructions.
You need to add to your application ingress annotations to expose your service to the EasyHaProxy service.
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: easyhaproxy-ingress
.
.
.
You can install the “Static Http Server” and define the domain you want to validate as the example below:
helm repo add byjg https://opensource.byjg.com/helm
helm repo update
helm upgrade --install mysite byjg/static-httpserver \
--namespace default \
--set "ingress.hosts={www.example.org,example.org}" \
--set parameters.title=Welcome
Due to limitations in the HAProxy community edition, EasyHAProxy functions solely as a standalone service, regardless of the number of nodes present.
If the node hosting EasyHAProxy experiences downtime, the service will remain unavailable until the node is operational again.
To restore connectivity, you have the option to deploy or upgrade the EasyHAProxy service.