首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从minishift连接到主机postgres db

从minishift连接到主机postgres db
EN

Stack Overflow用户
提问于 2017-03-01 16:08:46
回答 2查看 990关注 0票数 0

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

postgres服务器运行在运行minishift的同一主机上。

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

我也尝试过使用10.0.2.2

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

代码语言:javascript
复制
listen_addresses = '*'  

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

EN

回答 2

Stack Overflow用户

发布于 2017-03-02 03:16:55

除了我的评论中提到的答案之外,建议让你的数据库监听Docker桥的IP地址,你可以让你的pod使用你主机的网络堆栈。这样,您就可以在环回上到达Postgres。仅当可以保证pod始终在与数据库相同的主机上运行时,此方法才有效。

Kubernetes文档discourages using hostNetwork。如果您了解其后果,则可以像在this example中一样启用它。

票数 0
EN

Stack Overflow用户

发布于 2017-03-02 17:50:15

如果kubernetes中的pod不能从主机看到IP地址,那么我猜这是一个底层的防火墙或网络问题。试着打开吊舱内的一个外壳。

代码语言:javascript
复制
kubectl exec -it mypodname bash

然后尝试ping、telnet、curl、wget或其他命令,看看是否能看到IP地址。

听起来你的迷你飞船的网络设置出了问题。可能值得提出一个关于minishift的问题:https://github.com/minishift/minishift/issues/new

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

请参阅:https://kubernetes.io/docs/user-guide/services/#without-selectors

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42526333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档