docker - GCP 中 kubernetes 内同一节点上从 Pod 到 Pod 的通信
问题描述
我已经为 kubernetes 中的前端(REACT)和后端(EXPRESS NODE JS)项目进行了 dockerized 和创建部署和服务。我已经成功部署在同一节点的 Kubernetes(单节点集群)中,在谷歌云平台中有两个 Pod(即一个 Pod --> REACT APP 和 SECOND POD --> EXPRESS NODE JS)。
问题:
1.) 如何在 Kubernetes 集群的 Node 中从一个 pod 到另一个 pod 进行通信?
2.) 我通过在kubernetes中创建LoadBalancer类型服务将我的 REACT 应用程序暴露给外部世界,并且我能够从浏览器访问 React 应用程序端点。现在,是否可以从节点内的 REACT 应用程序访问 EXPRESS 应用程序,而无需将我的 EXPRESS 应用程序暴露给外部世界。如何做到这一点?
提前致谢。
解决方案
当前端是基于浏览器的 JavaScript 应用程序时,JavaScript 资源可能托管在集群中的 Pod 中,但逻辑不会在那里运行。前端的 JavaScript 在用户的浏览器中运行。从用户的浏览器调用集群中的任何后端端点都需要在链中某处的外部 URL 而不仅仅是内部 URL。
执行此操作的典型方法是设置 LoadBalancer 类型的服务并将外部端点放入后端的配置中。另一种方法是设置一个 Ingress Controller 并将 Service 和 Ingress 与后端一起部署。使用 Ingress,您可以在部署服务之前知道外部 URL 是什么(如果使用 DNS,这是最简单的)。集群内部通信不需要 Ingress,可以使用 ClusterIP 类型的服务来完成,但我认为您需要外部通信。
无论如何,您都需要公开一个外部入口点供用户访问 UI(托管 JS 的地方)。使用 ingress,您可以将到后端的路由配置为同一(外部)主机上的不同路径。
推荐阅读
- python - NumPy:生成包含特定元素的随机子集的最快方法
- vue.js - 如何使用 vue-tables-2 隐藏列 - Vuejs -
- javascript - JavaScript 预加载器无法正常工作
- java - 为什么我们扩展 JpaRepository 接口而不是实现它
- c# - 查看泛型类的所有特殊用途
- jquery - 显示 div 时未触发 Jquery 事件:无
- git - 主人似乎是发展的孩子
- python - 如何在 Pandas 中管理多个条件
- django - ContentType 对象的 DRF 序列化程序返回 null
- laravel - 为什么此保存功能在本地项目上有效,但在服务器和 cpanel 上无效?