У меня странная проблема с PGAdmin4.
Моя настройка
pgadmin
4.1, развернутая на kubernetes
с использованием образа chorss/docker-pgadmin4
.Один POD только для упрощения поиска неисправностей; Nginx ingress controller
в качестве обратного прокси-сервера в кластере; Classic ELB
впереди для балансировки нагрузки входящего трафика в кластере.
ELB <=> NGINX <=> PGADMIN
С точки зрения DNS, имя хоста pgadmin - это CNAME по отношению к ELB.
Проблема
ПриложениеПравильно достижимо, пользователи могут войти и все работает просто отлично.Проблема в том, что через пару (примерно 2-3) минут сеанс становится недействительным, и пользователям предлагается снова войти в систему.Это происходит независимо от того, активно ли используется pgadmin или нет.
После бесчисленных часов устранения неполадок я обнаружил, что проблема возникает, когда DNS-разрешение CNAME ELB переключается на другой IP-адрес.
На самом деле я попытался:
- подключиться к модулю напрямую, напрямую подключившись к порту узла
k8s service
=> сеанс не истек; - подключение к
nginx
(в обход ELB) напрямую => сеанс не истекает; - отображение одного из IP-адресов ELB в моем файле hosts => сеанс не истекает.
Учитывая приведенный выше тест, я бы пришел к выводу, что приложение Flask (PGAdmin4, очевидно, является приложением Python Flask) считает мой файл cookie недействительным после изменения удаленного адреса для моего имени хоста.
Любой разработчик Flask, который может мне помочьисправить эту проблему?Любая другая идея о том, что я мог бы пропустить?