如何解决网络负载均衡器如何与 Kubernetes (AWS/EKS) 中的入口控制器一起工作?
我对以下工作流程的理解是否正确:
-
当一个请求进入负载均衡器时,它也会通过入口对象(本质上是一个如何处理传入请求的映射)。
-
这个请求然后被转发到一个入口控制器来完成(请求最终被发送到适当的 Pod/Service)。
但是当只有一个 Ingress Controller 时会发生什么?在我看来,负载均衡器的目的将落空,因为所有请求都将转到 EKS Worker Node - 1
?
另外,假设 Pod A
中的 Pod B
和 EKS Worker Node - 1
被占用/关闭,Ingress 控制器会将该请求转发给 EKS Worker Node - 2
吗?
我的假设是否正确?您是否应该始终在不同节点上拥有多个入口控制器?
我很困惑,因为我不明白这两个组件是如何协同工作的?哪个组件实际上在平衡负载?
解决方法
对于您的主要问题,有多个入口控制器副本以备节点故障时的冗余是很常见的,并且在任何生产设置中都可能是一件好事。
至于它是如何工作的:根据“外部流量策略”的不同,Load Balancer 服务有两种模式。在默认模式下,NLB 不直接与 Nginx 对话,它与每个节点上的 kube-proxy 网格对话,然后根据需要路由 Nginx pod,即使它们位于不同的节点上。使用“本地”流量策略时,NLB 将绕过 kube-proxy 网格,仅与至少具有 1 个 Nginx pod 的节点通信,因此在您的示例中,NLB 根本不会与节点 2 通信。
默认模式下的额外跃点提高了弹性并具有更平滑的平衡,但代价是隐藏了客户端 IP(这里没有实际意义,因为 NLB 无论如何都会这样做)并从额外的数据包跃点中引入一点延迟,通常只是几毫秒。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。