diff --git a/docs/linux/haproxy.md b/docs/linux/haproxy.md new file mode 100644 index 0000000..dbad648 --- /dev/null +++ b/docs/linux/haproxy.md @@ -0,0 +1,64 @@ +# HAProxy snippets + +## HAProxy Load Balancer for k3s + +This guide assumes you have a HAProxy load balancer setup to proxy traffic to your k3s cluster nodes. The load balancer +will distribute incoming requests to the k3s API server across multiple master nodes, ensuring high availability. + +```bash +global + log /dev/log local0 + log /dev/log local1 notice + chroot /var/lib/haproxy + stats socket /run/haproxy/admin.sock mode 660 level admin + stats timeout 30s + user haproxy + group haproxy + daemon + +defaults + log global + mode tcp + option tcplog + option dontlognull + timeout connect 5000 + timeout client 50000 + timeout server 50000 + +frontend k3s-http + bind 192.168.10.230:80 + default_backend k3s-http + +frontend k3s-https + bind 192.168.10.230:443 + default_backend k3s-https + +frontend k3s-api + bind 192.168.10.230:6443 + default_backend k3s-nodes + +backend k3s-http + balance roundrobin + stick-table type ip size 200k expire 30m + stick on src + option tcp-check + server node01 192.168.10.231:80 check + server node02 192.168.10.232:80 check + server node03 192.168.10.233:80 check + +backend k3s-https + balance roundrobin + stick-table type ip size 200k expire 30m + stick on src + option tcp-check + server node01 192.168.10.231:443 check + server node02 192.168.10.232:443 check + server node03 192.168.10.233:443 check + +backend k3s-nodes + balance roundrobin + option tcp-check + server node01 192.168.10.231:6443 check + server node02 192.168.10.232:6443 check + server node03 192.168.10.233:6443 check +```