node.js - Kubernetes 中的 Pod 到 Pod 通信
问题描述
我使用的应用程序部署在具有前端 (React) 和多个后端服务 (Express.js) 的 kubernetes 上。我需要我的前端对每个服务进行 fetch api 调用。前端和每个服务都部署在自己的 Pod 中。一项服务正在公开每个 pod,因此我为每个 pod 提供了 cluster-ip。前端使用负载均衡器暴露,所以我有外部 ip。
问题:我的 fetch 调用需要什么才能访问这些服务之一?(例如 fetch();)我是否遗漏了任何使这成为可能的东西?我浏览了 K8s 文档,但我不明白该怎么做。
有人可以指出我正确的方向吗?
解决方案
前端部署中的 Pod 运行一个配置为查找特定后端服务的映像。将前端连接到后端的关键是后端服务。服务创建一个持久的 IP 地址和 DNS 名称条目,以便始终可以访问后端微服务。服务使用选择器来查找将流量路由到的 Pod。
前端使用为后端服务提供的 DNS 名称连接到后端工作 Pod。DNS名称例如“hello”,即 name
前面Service配置文件中字段的值。
外部 IP 可用于与 frontend
集群外部的服务进行交互。现在连接前端和后端时。您可以通过在前端服务的外部 IP 上使用 curl 命令来访问端点。
curl http://${EXTERNAL_IP}
按照此处的说明进行操作:frontend-backed-connection。
请看一下: multiple-backend-kubernetes,frontend-backend-connection,kubernetes-services。
推荐阅读
- postgresql - 如何在 PostgreSQL 中构建高效的多重查询功能?
- oracle-sqldeveloper - 如何在 Oracle SQL 中组合整数列以形成日期
- java - 比较 ArrayList 中的元素值
- javascript - 包含函数无法识别文本变量中的子字符串
- xamarin - 如何更改Android(Xamarin Forms)上按钮的文本对齐方式?
- clickhouse - 对数组进行分组和计数
- visual-studio - 无法在 Visual Studio 2015 中安装“Visual Studio 安装程序”
- android - 将 Java 转换为 Kotlin 错误后实现代码
- angular - Router.url 总是返回斜杠而不是当前 url
- java - Kafka用例:不断从kafka中读取,对message进行解密,然后插入到db