Postgresql Can';t从外部机器连接到Postgres(通过Kubernetes Helm安装)服务,连接被拒绝
我刚刚在我的桌面上安装了Kubernetes和minkube(运行Ubuntu18.10),然后尝试使用Helm在桌面机器上安装Postgresql 安装头盔后,我做了:Postgresql Can';t从外部机器连接到Postgres(通过Kubernetes Helm安装)服务,连接被拒绝,postgresql,kubernetes,kubernetes-helm,Postgresql,Kubernetes,Kubernetes Helm,我刚刚在我的桌面上安装了Kubernetes和minkube(运行Ubuntu18.10),然后尝试使用Helm在桌面机器上安装Postgresql 安装头盔后,我做了: helm install stable/postgresql 成功完成后,我将postgres端口转发到: kubectl port-forward --namespace default svc/wise-beetle-postgresql 5432:5432 & 然后,我测试了通过以下方式从桌面本地连接到它:
helm install stable/postgresql
成功完成后,我将postgres端口转发到:
kubectl port-forward --namespace default svc/wise-beetle-postgresql 5432:5432 &
然后,我测试了通过以下方式从桌面本地连接到它:
psql——主机127.0.0.1-U postgres
成功了
我试图从笔记本电脑连接到postgres,但失败原因如下:
psql -h $MY_DESKTOP_LAN_IP -p 5432 -U postgres
psql: could not connect to the server: Connection refused
Is the server running on host $MY_DESKTOP_LAN_IP and accepting TCP/IP connections on port 5432?
为了确保我的桌面确实在监听5432,我做了:
netstat -natp | grep 5432
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 17993/kubectl
tcp6 0 0 ::1:5432 :::* LISTEN 17993/kubectl
有人帮忙吗?我迷路了。您需要配置
postgresql.conf
以允许外部客户端连接查找listen
参数并将其设置为*
,它位于您的postgres数据目录下,然后将笔记本电脑的ip添加到pg_hba.conf
中。它控制客户端对postgresql server的访问,这里有更多介绍-在我的例子中,解决方案是对网络有一点更深入的理解
为清楚起见,我们将安装minikube的机器称为“A”。
从我的Wifi上的其他计算机可以看到的这台机器的IP可能是:192.100.200.300.1
由于Postgres暴露在5432端口上,我的期望是Postgres应该在192.100.200.300.1:5432外部可见。
但这种理解是错误的,这正是导致意外行为的原因
问题是minikube在虚拟机中运行,它有自己的IP地址。它不仅仅使用运行它的机器的IP。Minikube的IP与IP不同
在其上运行的机器的。要查找minikube的IP,请运行:minikube IP
。我们把这个IP称为$MINIKUBE\u IP
然后我必须设置端口转发,如:
kubectl端口转发--地址“192.100.200.300”--命名空间默认svc/wise BELLET postgresql 5000:5432&
现在,如果您在以下位置调用服务:192.100.200.300:5000
,它将被转发到运行minikube的机器上的端口5432,然后您的postgres实例将接收5432
希望这能解决或澄清其他人可能遇到的问题。为了进一步调试,我也通过helm安装了mysql,这也给了我同样的问题。我无法从笔记本电脑访问mysql。看起来我无法从外部机器访问任何Kubernetes服务。围绕这一点进行搜索似乎是一个已知的问题:但解决方案尚不清楚。不确定如何使用命令:iptables-P FORWARD ACCEPT。在我的kubernetes机器上运行这个命令并没有解决任何问题。你找到答案了吗?我遇到了同样的问题,因为我不知道如何使用Helm chart values.yaml文件修改PGSQL配置。@MikeStoddart您在使用minikube吗?不,kubectl+k3s+k3d。@MikeStoddart我已经发布了解决问题的方法。查看我刚刚发布的解决方案。