POSTGRES_USER没有被考虑



我正在尝试将postgres作为StatefulSet部署到k3d上。

我设置了环境变量POSTGRES_USER,但是当我尝试连接到db时,没有考虑到它,我看到身份验证失败了。我可以用密码pgpassword和默认用户postgres登录。

为什么不考虑POSTGRES_USER?

这是我的yml:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgresql-db
spec:
serviceName: postgresql-db-service
selector:
matchLabels:
app: postgresql-db
replicas: 2
template:
metadata:
labels:
app: postgresql-db
spec:
containers:
- name: postgresql-db
image: postgres:latest
volumeMounts:
- name: postgresql-db-disk
mountPath: /data
env:
- name: POSTGRES_USER
value: pguser
- name: POSTGRES_PASSWORD
value: pgpassword
- name: PGDATA
value: /data/pgdata
volumes:
- name: postgresql-db-disk
hostPath:
# directory location on host
path: /opt/x/projects/tilt_test/data/
# this field is optional
type: DirectoryOrCreate

但是当我尝试连接到db时,它没有被考虑在内,并且我看到身份验证失败了。

它完全按照它应该的那样工作。POSTGRES_USERPOSTGRES_PASSWORD系统变量用于创建数据库时的默认用户和密码。另一方面,如果您打算以后登录现有用户,则必须设置和使用系统变量:PGUSERPGPASSWORD下面是解释:

  • PGUSER的行为与用户连接参数相同。

  • PGPASSWORD的行为与password连接参数相同。出于安全考虑,不建议使用这个环境变量,因为一些操作系统允许非root用户通过ps查看进程环境变量;可以考虑使用密码文件(参见33.15节)。

你也可以找到一个完整的教程如何部署PostgreSQL statfulset在Kubernetes与高可用性。此外,您将找到POSTGRES_USERPOSTGRES_PASSWORD系统变量的解释:

POSTGRES_USER: Postgres进程启动时自动创建的用户。POSTGRES_PASSWORD:默认创建的用户密码

在这种情况下,登录到数据库发生在准备和活动探测期间。

相关内容

  • 没有找到相关文章

最新更新