Когда я пытаюсь развернуть postgres поверх kubernetes, я заполнил все необходимые переменные среды, такие как POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DATABASE и т. Д. c. через создание configmap и секретных файлов. Контейнер успешно развернут, и я могу открыть его через терминал с помощью команды «kubectl exe c». Когда я запускаю команду 'env', видно, что все переменные среды, предоставленные во время развертывания, успешно установлены соответствующим образом. Но когда я пытаюсь запустить:
psql -U testuser -d testdb
Это дает два типа ошибок:
psql : не удалось подключиться к серверу: FATAL: роль 'testuser' не существует
psql: не удалось подключиться к серверу: FATAL: база данных 'testdb' не существует
После выполнения Много исследований, я обнаружил, что даже после установки переменных среды, пользователь и база данных не инициализируются. Поэтому я создал файл init. sql и добавил его в docker -entrypoint-initdb.d для создания собственного образа, вставил sh в docker концентратор и развернул postgres через этот образ в kubernetes. .
init. sql содержимое файла:
CREATE USER testuser WITH SUPERUSER PASSWORD test;
CREATE DATABASE testdb;
GRANT ALL PRIVILEGES ON DATABASE testdb TO testuser;
Содержание файла Docker:
FROM postgres:latest
ADD init.sql /docker-entrypoint-initdb.d/
EXPOSE 5432
Тем не менее, я получаю ту же ошибку. пользователь и база данных не инициализируются ... пожалуйста, помогите мне с этим
ОБНОВЛЕНИЕ :
Журналы:
PostgreSQL Database directory appears to contain a database; Skipping initialization
2020-04-15 09:50:06.855 UTC [1] LOG: starting PostgreSQL 12.2 (Debian 12.2-2.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2020-04-15 09:50:06.855 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2020-04-15 09:50:06.855 UTC [1] LOG: listening on IPv6 address "::", port 5432
2020-04-15 09:50:07.000 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2020-04-15 09:50:07.204 UTC [26] LOG: database system was interrupted; last known up at 2020-04-15 09:50:02 UTC
2020-04-15 09:50:07.781 UTC [26] LOG: database system was not properly shut down; automatic recovery in progress
2020-04-15 09:50:07.815 UTC [26] LOG: invalid record length at 0/16453B0: wanted 24, got 0
2020-04-15 09:50:07.815 UTC [26] LOG: redo is not required
2020-04-15 09:50:08.034 UTC [1] LOG: database system is ready to accept connections
Вот, это уже упоминалось «Пропуск инициализации»