Hi Tait. On 06/06/2018 11:16, Tait Clarridge wrote:
I've been testing DNS service discovery and the use of SRV records and have a few thoughts on a couple things that I noticed.
In this area was a lot of changes in the last version of haproxy, do you have tested the setup with the latest haproxy 1.8 release? Please can you be so kind and send us the output of haproxy -vv
1. Reloading with SRV records ignores server-state-file - While this is not a huge deal, it does mean that the backend in question becomes unavailable when the proxy is reloaded until the SRV and subsequent A records are resolved - I understand that the point of these records is to dynamically build the backend, and populating servers from outdated and potentially invalid information is not ideal, but it might be nice to seed the backend before the first SRV query returns - Below is the related config since it is very likely that I have misconfigured something :) globals ... server-state-base /var/lib/haproxy server-state-file state defaults ... load-server-state-from-file global default-server init-addr last,libc,none ... resolvers sd nameserver sd 127.0.0.1:9999 backend dynamic server-template srv 5 _http._tcp.serviceA.tait.testing resolvers sd resolve-prefer ipv4 check 2. Additional record responses from the nameserver are not parsed - This just means that any servers that are populated from the SRV records require a second round of querying for each of the hosts after the fqdn is stored. It might be more efficient if these records are also parsed but I can see that it might be pretty challenging in the current DNS resolver - Only reason I thought of this was to try and reduce up the time it takes to populate the backend servers with addresses in an effort to lessen the effects of #1 I'm happy with the workaround I'll be pursing for now where my SD service (that originally was going to be a resolver and populate via SRV records) is going to write all the backend definitions to disk so this is not a pressing issue, just thought I'd share the limitations I discovered. My knowledge of C (and the internal workings of HAproxy) is not great otherwise this would probably be a patch submission for #1 :) Tait