具有服务类型节点端口的 EKS 弹性 IP

EKS Elastic IP with service type node port

我正在尝试使用 Amazon 的 Elastic Kubernetes 服务配置一个弹性 IP,这样我就可以公开一个静态 public IP 地址。到目前为止,公开静态 public IP 地址的唯一方法似乎是通过负载均衡器,这有点浪费,因为我有一个用于服务的静态私有 IP 地址端点,但无法公开它 publicly。而且我只需要 1 个服务实例 运行,因为这里不需要 HA。我已经尝试了我能想到的一切,甚至手动配置弹性 ip,但似乎如果这是一个解决方案,那么这些步骤有点复杂,而且你必须做这样的事情似乎很奇怪。

简短回答:据我所知,通过 K8s 是不可能的。如果你不想浪费 EIP 那么为什么不使用入口控制器(类似 traefik 或 nginx 的东西)这样你的入口就可以使用单个 IP 作为服务然后你可以从那里公开其他服务。

nginx

traefik

此外,您可以在 kube-aws or in k8s itself in the AWS provider part of the code

中跟踪或打开问题

使用 EKS 的唯一可能方法是使用负载平衡器。在我们的例子中,我们需要有一个固定的 CNAME 以在 Route53 中使用。我们最终使用了一个指向我们的 Web 服务器的负载均衡器,它被设置为部署。 正如您提到的,我认为使用 Load Balancer 是一种浪费,因为我们只有 1 个部署,但它最终非常有用,特别是因为我们将部署配置为使用 readinessProbe,这样 Balancer 仅切换到 Pod准备就绪时。 负载均衡器 CNAME 然后用作 Route53 中的 RecordSet。