Флаг LoadBalancerSettings.ConsistentHashLB
предназначен для конфигурации Envoy, и есть больше подробностей в Документах по балансировке нагрузки Envoy :
Балансировщик нагрузки в кольцевом / модульном режиме обеспечивает согласованное хеширование длявышестоящие хосты.Алгоритм основан на отображении всех хостов в круг, так что добавление или удаление хоста из изменений набора хостов влияет только на запросы 1 / N.Этот метод также широко известен как хеширование «ketama».
Это алгоритм хеширования, который уменьшает влияние добавляемых и удаляемых серверов из пула балансировки Envoy (например, серверов, находящихся за VirtualService ).
Без такого алгоритма добавление одного пула в пул приводит к отображению хешей на разные серверы :
Мы написали ketama для заменыкак наши клиенты memcached отображали ключи на серверы ... всякий раз, когда мы добавляли или удаляли серверы из пула, все хэшировалось на разных серверах, что эффективно стирало весь кэш.
Вернуться к Istio -Документы посланника снова обратите внимание:
Согласованный балансировщик нагрузки хэширования эффективен только при использовании протокола маршрутизации, который указывает значение для хэширования.
, что означает - указать заголовокгенерировать хеш из.От Istio docs :
httpHeader |строка |ТРЕБУЕТСЯ.Имя заголовка HTTP-запроса, который будет использоваться для получения хеш-ключа.Если заголовок запроса отсутствует, подсистема балансировки нагрузки будет использовать случайное число в качестве хэша, что фактически сделает политику балансировки нагрузки случайной.