On Sat, 4 Aug 2018 at 14:21, Igor Cicimov
<[email protected]> wrote:
>
> Hi,
>
> On Sat, Aug 4, 2018 at 1:50 AM, K3 <[email protected]> wrote:
>>
>> Hi,
>> We are running into a problem and would like to hear any advice.
>>
>> Our Setup:
>> We use haproxy 1.7.7 with two backends.
>> One of the backends is AWS ELB
>> The haproxy is running on a linux machine in our data center (on premises)
>>
>> Problem:
>> The ELB is available on 3 AZ so the endpoint can resolve to 3 IPs at a given 
>> time.
>> After startup, when one of the ELB's IP changes, our haproxy shows the ELB 
>> as down with L4TMOUT and never recovers the backend.
>>
>> From 1.7.7 doc, under section 5.3.1 we see the below
>> "A few other events can trigger a name resolution at run time:
>>
>>   - when a server's health check ends up in a connection timeout: this may be
>>     because the server has a new IP address. So we need to trigger a name
>>     resolution to know this new IP."
>>
>> Its not clear if the resolvers section is required for the above statement 
>> to be true.
>>
>> Unfortunately, we cannot define name server's IPs in our configuration since 
>> these IPs can change.
>>
>> On the system (/etc/resolv.conf), these are automatically updated by 
>> dhclient.
>>
>> Question:
>>
>> 1. Is there any way by which haproxy can use the latest DNS entries from the 
>> system config and use it during the runtime?
>
> I just saw this announced in 1.9-dev1
>
>
>   - the "resolvers" section can now be fed directly from resolv.conf
>     using the "parse-resolv-conf" directive. The DNS code also supports
>     new options to enable/disable address deduplication within a farm.

This is on startup only though. Haproxy cannot continuously re-read
resolv.conf, not even with this feature.

If the DNS servers on your system keep changing unpredictably, there
is no solution other than restarting haproxy, with the
parse-resolv-conf configuration and the haproxy internal resolver.



Lukas

Reply via email to