我正在尝试将我的两个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,那么它可以工作。
答案 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/