从 Kubernetes 服务访问主机 localhost

Posted

技术标签:

【中文标题】从 Kubernetes 服务访问主机 localhost【英文标题】:Access host localhost from Kubernetes service 【发布时间】:2020-07-28 20:24:51 【问题描述】:

我有一个 Kubernetes 服务(java 应用程序)需要通过 http localhost:port 访问主机上的数据库服务

是否可以让服务访问主机网络,如何?

【问题讨论】:

你在 GKE 上使用 kubernetes 吗?那么你的数据库安装在哪里呢?在您的 GKE 节点之一上?您的 kubernetes 集群 之外的某个地方?如果它只绑定到机器的本地主机地址,您将无法从除此机器之外的任何其他地方访问它。 【参考方案1】:

这有点奇怪,因为通常您要么在集群外运行数据库,要么在集群中但在 Kubernetes 网络空间内运行数据库。但是,您的 pod 应该能够使用 主机的 IP 地址 或例如机器以太网接口上配置的 IP 地址来访问您的主机网络堆栈。

您将无法通过 localhost 访问它,因为这将解析为 Pod 中的 127.0.0.1,这意味着 Pod 中的本地。

【讨论】:

以上是关于从 Kubernetes 服务访问主机 localhost的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes:没有到主机的路由

大使pod在kubernetes中失败,因为kubernetes api服务器集群IP无法访问 - [Errno 113]主机无法访问',)

pod 无法访问本地机器 Kubernetes 服务

在kubernetes上将host作为localhost暴露给节点js app

从远程机器上部署的 kubernetes 仪表板服务访问本地笔记本电脑时无法访问站点问题

Kubernetes Ingress-nginx高级用法