jcmoraisjr / haproxy-ingress

HAProxy Ingress
https://haproxy-ingress.github.io
Apache License 2.0
1.03k stars 269 forks source link

Any tips for performance tuning? #488

Open vitobotta opened 4 years ago

vitobotta commented 4 years ago

Hi, and merry Christmas!

I was wondering if there are any tips or best practices with regards to haproxy ingress and performance? Thanks!

jcmoraisjr commented 4 years ago

Hi, yes, some guidelines below.

If you want to scale a high load:

Another tips to have less latency in the proxy despite the load of your cluster:

There are also some planned improvements in future versions - the current code still generates a somewhat noisy frontend, depending of your configuration, which sometimes create some latency. Keep your controller always up to date - both haproxy and the configuration generated by haproxy-ingress will continue to improve performance specially in some corner cases.

Merry Christmas =)

vitobotta commented 4 years ago

Hi @jcmoraisjr ! Thanks a lot for these tips, I will study them and try to apply.

I'm having a problem though with haproxy installed in a brand new cluster. It seems that the controller tries to reload/restart the backend in a loop with errors like this:

haproxy-ingress-controller-jctk6 haproxy-ingress E1224 23:56:05.257472       7 controller.go:337] unexpected failure restarting the backend:
haproxy-ingress-controller-jctk6 haproxy-ingress exit status 1
haproxy-ingress-controller-jctk6 haproxy-ingress W1224 23:56:05.259159       7 queue.go:113] requeuing kube-system/cloud-controller-manager-token-hzc5k, err exit status 1
haproxy-ingress-controller-jctk6 haproxy-ingress I1224 23:56:07.227931       7 controller.go:332] backend reload required
haproxy-ingress-controller-jctk6 haproxy-ingress I1224 23:56:07.258327       7 controller.go:209] HAProxy[pid=236] output:
haproxy-ingress-controller-jctk6 haproxy-ingress 2019/12/24 23:56:07 socat[239] E connect(5, AF=1 "/var/run/haproxy-stats.sock", 29): Connection refused
haproxy-ingress-controller-jctk6 haproxy-ingress E1224 23:56:07.258373       7 controller.go:337] unexpected failure restarting the backend:
haproxy-ingress-controller-jctk6 haproxy-ingress exit status 1
haproxy-ingress-controller-jctk6 haproxy-ingress W1224 23:56:07.261352       7 queue.go:113] requeuing fip-controller/fip-controller-token-gp64r, err exit status 1
haproxy-ingress-controller-jctk6 haproxy-ingress I1224 23:56:09.227958       7 controller.go:332] backend reload required
haproxy-ingress-controller-jctk6 haproxy-ingress I1224 23:56:09.257322       7 controller.go:209] HAProxy[pid=241] output:
haproxy-ingress-controller-jctk6 haproxy-ingress 2019/12/24 23:56:09 socat[244] E connect(5, AF=1 "/var/run/haproxy-stats.sock", 29): Connection refused
haproxy-ingress-controller-jctk6 haproxy-ingress E1224 23:56:09.257354       7 controller.go:337] unexpected failure restarting the backend:
haproxy-ingress-controller-jctk6 haproxy-ingress exit status 1
haproxy-ingress-controller-jctk6 haproxy-ingress W1224 23:56:09.257365       7 queue.go:113] requeuing cattle-system/default-token-jnvnl, err exit status 1

There is that connection refused and what is it doing with those tokens?

Thanks!

vitobotta commented 4 years ago

The ingresses seem to work though. It's just that there is a lot of noise in the logs and it seems to restart all the time

vitobotta commented 4 years ago

Interesting, setting the tag to 0.8 from the default 0.7.2 seems to have fixed it, no more noise in the logs :)