我对k8s还很陌生,我正试图找出如何以廉价的方式向互联网公开多个HTTP服务。目前,我正在使用带有托管节点组的AWS EKS集群,所以便宜的方法是不按成本提供任何类型的ELB。此外,我希望这些服务在私有子网中,这样只有f.ex只有入口资源将被公开,节点将保持私有。每个svc一个负载均衡器绝对不是一个选项,因为它会分解我的预算
我考虑的选项:
-
使用K8s入口资源(确切地说:Istio入口控制器(。但不利的一面是,当我们创建入口资源时,AWS会创建负载均衡器,我需要为此付费。
-
在公共子网中运行节点组,并创建NodePort类型的K8s服务,这样我就可以使用NodeIP:NodePort访问服务(NodePort将特定于每个服务(。不利的一面是,我需要记住分配给每个服务的所有IP和端口。我可以接受一项服务,但当数量增加时,我会很难记住。
-
最后,在没有任何其他选择的情况下,使用公共IP创建一个负载均衡器,并使用Istio创建Ingress控制器。所以我将通过负载均衡器的单个DNS名称访问每个服务,并通过请求路径路由到服务。
期待任何解决方案和投入。
我认为这里没有任何魔力。选项1和选项3基本上是一样的(除非我遗漏了什么(。正如你所指出的,出于你所说的原因,我认为选项2是不可行的。你有很多选择。我不知道Istio的入口(但我认为它会很好(。我们经常看到客户使用NGINX入口或ALB入口。
所有这些选项都需要负载平衡器。