前端系统和后端服务器怎么通信,Kubernetes前端和后端之间的通信

本文探讨在Minikube环境中,前端应用如何与后端Node.js服务(通过NodePort类型)有效通信,解决DNS解析问题,以及如何避免直接暴露后端URL。作者提供了关于服务定义、端口映射和DNS策略的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于本地开发,我有一个工作的minikube。我们有不同的服务部署。现在我想将前端连接到后端。Kubernetes前端和后端之间的通信

前端是一个角度的应用程序,并在其自己的服务生活。 后端是一个node.js应用程序,它也使用单独的服务并使用DNS连接到其他内部服务,如mongodb。

现在我想从前端与后端进行通信。 DNS不工作,因为前端不知道如何解析指定的路由。问题是告诉前端应该使用哪个后端URL和端口来发送请求?

当我首次启动具有类型NodePort的后端服务并将url和端口复制到前端目标URL时,唯一的工作状态被接近。我认为这对我来说很不洁净。有没有另一种方法将后端请求的URL加入前端?

我知道当我们在类型=“LoadBalancer”的生产系统上部署一项服务时,该服务通过外部IP公开,我可以从那里访问该服务。并且外部IP在pod更新等情况下将是永久的。我也看到的问题是,需要通过额外的提交将后端IP注入到Docker容器中。

编辑(1):后端服务

apiVersion: v1

kind: Service

metadata:

name: backend

labels:

app: some-app

tier: backend

spec:

type: NodePort

ports:

- port: 3000

selector:

app: some-app

tier: backend

编辑(2):当我从客户端请求与FQN我也得到这样的响应:

OPTIONS http://backend.default.svc.cluster.local:3000/signup/ net::ERR_NAME_NOT_RESOLVED

2017-07-18

Lunero

+0

你揭露你服务后台?如果是的话,你应该已经定义了服务定义中的端口,并且你应该得到DNS解析说http:// backend:80/–

+0

@SebastienGoasguen我已经添加了后端服务定义。所以我已经为后端定义了端口3000,并且它也不可访问。我认为角度应用程序不知道如何解决DNS名称'后端'。 –

+0

你可以用这个'backend.default.svc.cluster.local'来尝试fqn。您可能需要将默认值替换为您的名称空间。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值