是否有人知道是否有可能(以及如何)在同一 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 的“外部”节点,它会驱逐这些节点