我使用 AWS ECS fargate 来运行我的应用程序。我正在迁移到 AWS EKS。当我使用 ECS 时,我部署了一个 ALB 将请求路由到我在 ECS 集群中的服务。
在 kubernete 中,我阅读了这个文档 https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer,似乎 Kubernete 本身有一个 loadbalance
服务。它似乎创建了一个外部主机名和 IP 地址。
所以我的问题是我是否需要部署 AWS ALB?如果不是,我如何在 route53 中发布这个自动生成的主机名?如果我重新部署服务,它会改变吗?
答案 0 :(得分:1)
是的,您需要它来使用 AWS ALB 入口控制器创建 Kubernetes 入口,以下链接解释了如何在 EKS 中使用 ALB 作为入口控制器:This
答案 1 :(得分:1)
您的 EKS 集群中的应用程序并不严格需要 AWS ALB,但您可能需要它。
在采用 Kubernetes 时,以类似于管理应用程序的方式管理 Kubernetes 集群中的一些基础设施部分会很方便,并且在某些情况下,应用程序和负载均衡器的配置之间存在紧密耦合,因此它使以同样的方式管理基础设施。
type LoadBalancer 的 Kubernetes Service
对应于网络负载均衡器(也称为 L4 负载均衡器)。还有 Kubernetes Ingress 对应于应用程序负载均衡器(也称为 L7 负载均衡器)。
要在 Kubernetes 中使用 ALB 或 Ingress
,您还需要安装 Ingress Controller。对于 AWS,您应该安装 AWS Load Balancer Controller,此控制器现在还提供功能,以防您想使用网络负载均衡器,例如通过使用 IP 模式或使用弹性 IP 公开服务。使用预先配置的 IP 应该有助于使用 Route53。
请参阅关于 EKS network load balancing 和 EKS application load balancing 的 EKS 文档
答案 2 :(得分:0)
正如其他人已经提到的,是的,这不是必需的,但使用 ALB 非常有帮助。
对此有几种不同的解决方案..我最喜欢的解决方案是
The whole traffic flow could look like this
如果您还有一些问题,请在这里提问:)
答案 3 :(得分:0)
不,您不需要 ALB,是的,您可以自动使用 Route53。这是一篇很好的文章,描述了后者: https://www.padok.fr/en/blog/external-dns-route53-eks