balance source
использует алгоритм хеширования, который изменяет распределение рабочей нагрузки каждый раз, когда изменяется количество доступных бэкэндов, потому что это то, для чего он предназначен. Если бы у вас было более 2 бэкэндов, вы также обнаружите, что из-за перераспределения некоторый трафик, который не достиг даже затронутого бэкэнда, переместился на другой, из-за этого перераспределения.
Если результат хэширования изменяется из-за изменения количества работающих серверов, многие клиенты будут перенаправлены на другой сервер.
http://cbonte.github.io/haproxy-dconv/1.6/configuration.html#4-balance
Для объяснения того, почему вы не видите ожидаемого поведения при использовании файлов cookie вместо balance source
, нам нужно просмотреть вашу конфигурацию.