我正在尝试使用Amazon的Elastic Kubernetes服务配置一个弹性IP,以便可以公开一个静态公共IP地址。到目前为止,似乎唯一公开静态公共IP地址的方法是通过负载均衡器,这很浪费,因为我为服务提供了静态私有IP地址终结点,但没有公开公开它的方法。我只需要运行1个服务实例,因为这里不需要HA。我已经尝试了所有我能想到的方法,甚至手动配置了一个弹性ip,但似乎这是一个解决方案,那么步骤就有些麻烦了,您必须要做这样的事情似乎很奇怪。
答案 0 :(得分:2)
简短的回答:AFAIK不可能通过K8s实现。如果您不想浪费EIP,那为什么不使用Ingress Controller(诸如traefik或nginx之类的东西),这样您的Ingress会将单个IP用作服务,然后可以从那里公开其他服务。
此外,您可以在kube-aws或在AWS provider part of the code的
中跟踪或打开问题。答案 1 :(得分:1)
EKS唯一可能的方法是使用负载均衡器。就我们而言,我们需要在Route53中使用固定的CNAME。我们最终使用了一个负载均衡器,该负载均衡器指向设置为部署的Web服务器。 正如您所提到的,我认为使用负载均衡器是浪费,因为我们只有1个部署,但是最终却很有帮助,尤其是因为我们将部署配置为使用readinessProbe,因此,均衡器仅切换到Pod准备好了 然后,将Load Balancer CNAME用作Route53中的RecordSet。