我有一个用Angular编写的UI应用程序,该应用程序的后端在NodeJS中运行。我还有另外两个服务,这些服务将从NodeJS后端调用。这些应用程序在Docker容器中运行,并部署到AWS中的Kubernetes集群中。
流程如下:
AngularUI-> NodeJS-> Service1 / Service2
AngularUI和NodeJS在同一个docker容器中,而其他两个服务在2个单独的容器中。
我已经能够在AWS的Kubernetes中运行服务。 Service to Service呼叫(Service 1-> Service2)可以正常工作,因为我正在使用k8s标签对其进行调用。
现在我无法确定如何从Angular前端向NodeJS后端进行调用,因为请求是在客户端执行的。我无法提供服务的ELB的IP,因为IP随每次部署而变化。
我尝试创建一个AWS API Gateway,该网关指向Angular UI的ELB IP,但该页面无法使用。
正确的方法是什么?非常感谢您的帮助。
答案 0 :(得分:1)
ELB具有静态DNS主机名,例如foobar.eu-west-4.elb.amazonaws.com
。当您拥有一个域时,创建一个指向该DNS主机名的A记录(别名)。例如
webservice.mydomain.com -> mywebservicelb.eu-west-4.elb.amazonaws.com
您还可以使用静态ip地址,这似乎是一个相当新的功能:
每个网络负载平衡器为每个网络负载提供一个IP地址 可用区在其权限范围内。如果您在us-west-2a中有目标 和us-west-2c中的其他目标,NLB将创建和管理两个IP 地址(每个可用区一个);与该IP地址的连接将会传播 AZ中所有VPC子网中的实例之间的流量。您可以 还为每个可用区指定一个现有的弹性IP,甚至更大 控制。完全控制您的IP地址,网络负载 平衡器可用于需要IP地址的情况 硬编码为DNS记录,客户防火墙规则等。