Kubernetes服务 - 到达localhost

时间:2018-01-15 15:50:07

标签: java spring docker kubernetes

我正在尝试将我的两个springboot应用程序暴露给AWS存储上的外部网络,而我却因为无法让其中一个到达另一个应用程序而头脑发热。第一个应用程序,我们称之为A,它返回带有数字的其余页面:123,第二个应用程序返回第一个应用程序的部署文件中指定的主机名:让我们说hostname: datahost。它有一个方法/getnumber,当放入Web浏览器时返回此数字。它正在使用8080端口。

关键是第二个应用程序的返回语句为“http://datahost:8080/getnumber”,应该返回第一个应用程序/getnumber结果的结果。 不幸的是,return语句是:

  

出现意外错误(type = Internal Server Error,status = 500)。   GET请求“http://datahost:8080/getnumber”上的I / O错误:datahost;嵌套异常是java.net.UnknownHostException:datahost

你们可以解释一下如何使这些应用程序对彼此可见吗?它们都在另外两个pod中并位于同一节点中。 此外,如果我在计算机上的localhost上使用它并将其转发到localhost:8080 / getnumber,那么它可以工作。

1 个答案:

答案 0 :(得分:0)

为了让两个POD相互连接,您需要为您的pod创建一个Service

举个简单的例子,您可以运行与此类似的命令:

kubectl -n <your namespace> expose pod <your pod name> --port 8080 

您最终会创建一个Service类型的对象,并且您可以使用服务名称作为主机名来访问您的广告连接。

同样,这只是一个示例,您可能希望公开deployment而不是pod

此处有更多详情:https://kubernetes.io/docs/concepts/services-networking/service/