GCP的Kubernetes内同一节点上Pod到Pod的通信

时间:2018-11-05 05:09:16

标签: docker kubernetes google-cloud-platform google-kubernetes-engine

我已经为kubernetes中的front(REACT)和backend(EXPRESS NODE JS)项目进行了docker化并创建了部署和服务。我已经在Google Cloud Platform中的两个Pod(即一个Pod-> REACT APP和SECOND POD-> EXPRESS NODE JS )的同一节点的Kubernetes(单节点集群)中成功部署了。

问题:

1。)如何在Kubernetes集群的Node中从一个Pod到另一个Pod进行通信?

2。)我已通过在 kubernetes 中创建 LoadBalancer 类型服务将我的REACT应用暴露给外界,并且能够从浏览器访问React App端点。现在,是否可以从节点内的REACT应用程序访问EXPRESS应用程序,而无需将我的EXPRESS应用程序暴露于外界。如何实现呢?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果前端是基于浏览器的JavaScript应用,则JavaScript资源可能是从群集中的Pod托管的,但逻辑未在其中运行。前端的JavaScript在用户的浏览器中运行。从用户的浏览器调用集群中的任何后端端点都需要在链中某个地方使用外部URL,而不仅仅是内部URL。

执行此操作的典型方法是设置类型为LoadBalancer的服务,并将外部端点放入后端的配置中。另一个方法是设置一个Ingress Controller,并与后端一起部署Service和Ingress。使用Ingress,您可以在部署服务之前知道外部URL是什么(如果使用DNS,这是最简单的方法)。群集内部通信不需要Ingress,可以使用ClusterIP类型的服务来完成,但我认为您需要外部通信。

您需要公开一个外部入口点,以便用户无论如何都可以访问UI(托管JS的位置)。使用入口,您可以将到后端的路由配置为同一(外部)主机上的其他路径。