【问题标题】:How to connect from pgAdmin to Postgresql in Kubernetes/Minikube如何在 Kubernetes/Minikube 中从 pgAdmin 连接到 Postgresql
【发布时间】:2021-08-05 19:33:36
【问题描述】:

我运行本地 kubernetes 集群 (Minikube),并尝试将 pgAdmin 连接到 postgresql,机器人在 Kubernetes 中运行。 连接字符串是什么?我应该通过服务 ip 地址还是服务名称访问? kubectl 获取服务

NAME              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
dbpostgresql      NodePort    10.103.252.31   <none>        5432:30201/TCP   19m
kubernetes        ClusterIP   10.96.0.1       <none>        443/TCP          3d21h
pgadmin-service   NodePort    10.109.58.168   <none>        80:30200/TCP     40h

kubectl 获取入口:

NAME              CLASS    HOSTS   ADDRESS        PORTS   AGE
pgadmin-ingress   <none>   *       192.168.49.2   80      40h

kubectl 获取 pod

NAME                        READY   STATUS    RESTARTS   AGE
pgadmin-5569ddf4dd-49r8f    1/1     Running   1          40h
postgres-78f4b5db97-2ngck   1/1     Running   0          23m

我尝试了 10.103.252.31:30201 但没有成功。

【问题讨论】:

  • pgadmin 和 postgresql 都在集群内运行。不是应该可以通过ip访问吗?
  • 啊,我明白了。那么它应该可以工作,是的。

标签: postgresql kubernetes


【解决方案1】:

在集群内部,服务可以根据服务对象名称通过 DNS 相互引用。因此,在这种情况下,您将使用 dbpostgresql 或 dbpostgresql.default.svc.cluster.local 作为主机名。

【讨论】:

  • 这个我也试过了,但是没用。
  • 您必须更具体地了解该错误。
  • 错误提示:无法连接到服务器:连接被拒绝服务器是否在主机“dbpostgresql”(10.100.155.95) 上运行并接受端口 5432 上的 TCP/IP 连接?
  • 如果我尝试使用端口 30201,则会出现错误。 “无法连接到服务器。超时已过期”因此可能是 postgres 在 pod 内无法正常运行。
  • 确保 Postgres 正在监听 0.0.0.0 而不是 localhost。
猜你喜欢
  • 2022-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-14
相关资源
最近更新 更多