Openshift 从minishift连接到主机postgres db

Openshift 从minishift连接到主机postgres db,openshift,kubernetes,fabric8,minikube,Openshift,Kubernetes,Fabric8,Minikube,我正在尝试从部署在中的springboot应用程序连接到postgres数据库 postgres服务器与minishift运行在同一台主机上 我尝试将postgres服务设置为侦听特定的IP地址,并在springboot jdbc连接url中使用相同的地址,但我仍然得到org.postgresql.util.PSQLException:连接到172.99.0.1:5432被拒绝 我也尝试过使用10.0.2.2 还尝试在/etc/postgresql/9.5/main/postgresql.con

我正在尝试从部署在中的springboot应用程序连接到postgres数据库

postgres服务器与minishift运行在同一台主机上

我尝试将postgres服务设置为侦听特定的IP地址,并在springboot jdbc连接url中使用相同的地址,但我仍然得到
org.postgresql.util.PSQLException:连接到172.99.0.1:5432被拒绝

我也尝试过使用
10.0.2.2

还尝试在
/etc/postgresql/9.5/main/postgresql.conf
中设置:

listen_addresses = '*'  

如何连接到同一主机上运行的minishift外部数据库?

除了我的评论中提到的答案(建议让您的数据库监听Docker网桥的IP地址)之外,您还可以让您的pod使用主机的网络堆栈。这样你就可以通过环回到达博士后。只有在能够保证pod始终在与数据库相同的主机上运行时,这才有效


Kubernetes文件。如果您了解后果,可以按中所述启用它。

如果kubernetes内的pod无法看到主机的IP地址,那么我猜这是潜在的防火墙或网络问题。试着打开豆荚里面的一个外壳

kubectl exec -it mypodname bash
然后尝试ping、telnet、curl、wget或其他方法,看看是否可以看到IP地址

听起来你的minishift的网络设置有问题。对于minishift,可能值得提出一个问题:

如果您可以在主机上找到可从docker pod访问的IP地址,则可以创建Kubernetes服务,然后使用主机上数据库的IP地址创建该服务的端点;然后,您可以使用kubernetes服务的常规DNS发现(即使用服务名称作为DNS名称),然后将解析为IP地址。随着时间的推移,您可能会有多个IP地址用于故障切换等

见:


然后,如果端点是在kubernetes内部实现的,那么您可以使用服务与所有实际的网络端点进行通信,并且应用程序代码完全解耦,而在kubernetes外部实现负载平衡

这可能对你有帮助吗?