Проблемы с кэшированием ACL Консула - PullRequest
1 голос
/ 26 июня 2019

У меня и моих коллег в настоящее время есть проблема с ACL Консула. У нас есть основной центр данных ACL в местоположении A, и другой центр данных в местоположении B, подключающийся к нему, и клиент C, который подключается к B. Мы устанавливаем KL ACL в A и проверяем, что он работает в C. В B и C мы имеем Для acl.policy_ttl установлено (например) 1800 или 259200 с в /etc/consul.d/consul.json. Затем мы выключаем A и проверяем, что мы все еще можем получить доступ (записать) к хранилищу KV из C. Через некоторое, на первый взгляд, случайное время мы начинаем получать сообщение «ACL not found» при записи в KV из C. Как можно мы настроили это для надежного кэширования ACL-списков в течение фиксированного периода времени в B, чтобы C все еще мог использовать хранилище KV, когда A недоступно?

Наша текущая версия консула 1.4.4. Буду признателен за любую помощь, которую вы можете предложить по этому вопросу.

1 Ответ

0 голосов
/ 27 июня 2019

Вам также необходимо установить acl.token_ttl ( документация ) acl.policy_ttl политики кэширования, но acl.token_ttl устанавливает кэш для выданных токенов ACL, что также необходимо.По умолчанию это Token TTL составляет 30 с, поэтому я предполагаю, что в вашем случае random time было менее 1 минуты (центр обработки данных B имел кэш до 30 с, а клиент C кэшировал до 30 с).

Надеюсь, это поможет.

...