【问题标题】:Can't connect to postgres installed from stable/postgresql helm chart无法连接到从 stable/postgresql helm chart 安装的 postgres
【发布时间】:2020-05-13 06:19:03
【问题描述】:

我正在尝试通过 helm 安装 postgresql。我没有覆盖任何设置,但是当我尝试连接时,我收到“密码验证失败”错误:

$ helm install goatsnap-postgres stable/postgresql
NAME: goatsnap-postgres
LAST DEPLOYED: Mon Jan 27 12:44:22 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
PostgreSQL can be accessed via port 5432 on the following DNS name from within your cluster:
    goatsnap-postgres-postgresql.default.svc.cluster.local - Read/Write connection
To get the password for "postgres" run:
    export POSTGRES_PASSWORD=$(kubectl get secret --namespace default goatsnap-postgres-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)
To connect to your database run the following command:
    kubectl run goatsnap-postgres-postgresql-client --rm --tty -i --restart='Never' --namespace default --image docker.io/bitnami/postgresql:11.6.0-debian-9-r0 --env="PGPASSWORD=$POSTGRES_PASSWORD" --command -- psql --host goatsnap-postgres-postgresql -U postgres -d postgres -p 5432
To connect to your database from outside the cluster execute the following commands:
    kubectl port-forward --namespace default svc/goatsnap-postgres-postgresql 5432:5432 &
    PGPASSWORD="$POSTGRES_PASSWORD" psql --host 127.0.0.1 -U postgres -d postgres -p 5432

$ kubectl get secret --namespace default goatsnap-postgres-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode
DCsSy0s8hM

$ kubectl run goatsnap-postgres-postgresql-client --rm --tty -i --restart='Never' --namespace default --image docker.io/bitnami/postgresql:11.6.0-debian-9-r0 --env="PGPASSWORD=DCsSy0s8hM" --command -- psql --host goatsnap-postgres-postgresql -U postgres -d postgres -p 5432
psql: FATAL:  password authentication failed for user "postgres"
pod "goatsnap-postgres-postgresql-client" deleted
pod default/goatsnap-postgres-postgresql-client terminated (Error)

我尝试了其他一些方法,所有这些都得到相同的错误:

  • 运行kubectl run [...] bash,启动psql,在提示符处输入密码
  • 运行kubectl port-forward [...],在本地启动psql,输入密码
  • 卸载/重新安装图表几次
  • 使用helm install --set postgresqlPassword=[...],使用明确设置的密码

我使用的是 OSX 10.15.2、k8s 1.15.5(通过 Docker Desktop 2.2.0.0)、helm 3.0.0、postgres chart postgresql-7.7.2、postgres 11.6.0

认为我之前有它工作过(虽然我在回滚中没有看到证据),我认为从那以后我更新了 Docker Desktop,并且 我想我在 Docker 更新的注释中看到了一些关于 K8s 更新的信息。所以如果我没记错的话,可能和 k8s 更新有关?

【问题讨论】:

    标签: postgresql kubernetes kubernetes-helm docker-desktop


    【解决方案1】:

    哎呀,没关系 - 我在 an issue on helm/charts 中找到了解决方案。密码最终保存在一个永久卷中,因此如果您卸载并重新安装图表,新版本将保留旧密码,而不是 kubectl get secret 中的值。我卸载了图表,删除了旧的PVC和PV,重新安装,现在可以连接了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 2023-02-09
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 2019-04-14
      • 1970-01-01
      相关资源
      最近更新 更多