Проверка подлинности пароля для пользователя "postgres" в Django не удалась, тогда как в psql она работает

Я прочитал посты SO с похожим сообщением об ошибке, но я думаю, что мой случай немного отличается.

У меня есть удаленный кластер kubernetes с несколькими django pods. Если я подключаюсь к одному из этих стручков и ввожу python manage.py runserver, я получаю следующую ошибку:

django.db.utils.OperationalError: connection to server at "resource-monitor-db-postgresql.resource-monitor-system.svc.cluster.local" (10.152.183.205), port 5432 failed: 
FATAL:  password authentication failed for user "postgres"

В settings.py:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": "postgres",
        "USER": "postgres",
        "PASSWORD": "mypassword123",
        "HOST": "resource-monitor-db-postgresql.resource-monitor-system.svc.cluster.local",
        "PORT": "5432",
    }
}

Самое странное, что я могу войти в систему под psql с теми же HOST и PASSWORD. То есть, следующая команда успешно входит в систему как пользователь postgres.

# in the shell of django container 
PGPASSWORD="mypassword123" psql --host resource-monitor-db-postgresql.resource-monitor-system.svc.cluster.local -U postgres -d postgres -p 5432

Предполагаю, что эта команда эквивалентна свойству DATABASES в settings.py.

Я что-то упускаю? Любая помощь будет принята с благодарностью.


Update

Думаю, стоит упомянуть, что я использовал эти команды для работы с удаленной базой данных locally.

kubectl port-forward --namespace resource-monitor-system svc/resource-monitor-db-postgresql 5432:5432
# now I'm able to connect to remote database through localhost:5432

И в settings.py:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": "postgres",
        "USER": "postgres",
        "PASSWORD": "mypassword123",
        "HOST": "localhost",
        "PORT": "5432",
    }
}

Приведенные выше настройки работают.

Вернуться на верх