如何使前端应用程序与后端应用程序对话而又不为后端创建入口

时间:2019-02-11 23:33:01

标签: amazon-web-services kubernetes kubernetes-ingress api-gateway kops

我已经使用kops部署了一个kubernetes集群。当前集群使用nginx入口控制器,该控制器在AWS中创建经典的负载均衡器。我有一些与前端应用程序通信的后端应用程序,还有一些彼此通信的后端服务。问题在于,当前使前端应用程序与后端应用程序对话的唯一方法是为后端应用程序创建一个入口,因为前端因为不了解内部服务名称而通过域名发送请求。对于后端,这很好,因为他们可以仅通过使用服务名称及其各自的端口进行内部对话。我如何才能做到这一点而不必为后端创建入口。是否可以使用应用程序负载平衡器来做到这一点,或者我需要为此使用API​​网关?我如何实现这种架构?添加架构图以显示我想要实现的目标。感谢您的帮助。enter image description here

2 个答案:

答案 0 :(得分:2)

从您的“架构图”看来,您的所有应用程序都在集群中。因此无需入口。您可以只使用kubernetes服务。

您的前端应用程序应该能够调用后端服务的端点,否则您在前端服务的配置中会出错。

如果您没有机会更改前端应用程序为后端服务调用的URL,则可以将kubernetes服务与CNAME一起使用,然后重定向到内部服务。

答案 1 :(得分:0)

您不需要入口即可从前端连接后端。 假设后端和前端Pod都在同一kubernetes集群中运行。前端服务可以使用服务dns连接后端服务

backend-service.<namespace>.svc.cluster.local