两个 EKS 集群使用同一个 LoadBalancer

两个 EKS 集群使用同一个 LoadBalancer

是否有人知道是否有可能(以及如何)在同一 VPC 中不同 EKS 集群上的两个 Ingress Controller 之间共享同一个 ELB?

我有一个集群 EKS 集群已在运行,我刚刚创建了第二个集群。我想在第二个集群的入口控制器中使用与第一个集群相同的 ELB。可以吗?

我尝试在我的第二个集群上通过 Helm 安装一个新的 IngressController,并更新其配置以指向现有的 ELB,但 IngressController 服务永远处于等待状态(待处理状态)。

答案1

我有一个集群 EKS 集群已在运行,我刚刚创建了第二个集群。我想在第二个集群的入口控制器中使用与第一个集群相同的 ELB。可以吗?

简短的版本是肯定的,详细的版本是“但是你一定不希望”。

如果我们看一下从野外互联网进入集群的流量方式:

{ Internet } --> ELB --> Node --> NodePort --> Service

更有帮助的是了解为什么答案是“是”,但也要了解为什么答案是“但不要这样做”,因为在你假设的情况下,你会

{ Internet } --> ELB --> Node --> NodePort --> Service
                     \
                      --> cluster-2-Node --> cluster-2-NodePort --> cluster-2-Service

这意味着 ELB 将在两个集群之间循环请求,因为它无法知道将“真实”流量发送到哪些机器。现在,如果您的集群恰好是彼此的完美镜像,那么幸运的是,它可能会工作一段时间1但它肯定会顺着 Kubernetes 和 ELB 的工作方式逆流而上。实现此目的的“服务器故障问题”更少的方法是为两个 ELB 创建 CNAME,然后让 DNS 循环流量

注释 1:“暂时”是指 ELB 和它所注册的实例之间的关联通过以下方式保持同步:kube-controller-manager因此,当它的协调循环运行时,它发现连接到“它的”ELB 的“外部”节点,它会驱逐这些节点

相关内容