首页 > 解决方案 > kubernetes 使用入口控制器进行负载平衡

问题描述

我正在尝试开始研究 K8s,并且在这样做的过程中我设法让自己感到困惑。

在使用诸如 AWS 或 DO 之类的 Kubernetes 提供程序时,具有以下内容似乎是一种相当常见的架构:

Cloud External Load Balancer -> [CLUSTER ENTRYPOINT] Nginx Ingress Controller -> Service A
                                                                              -> Service B
                                                                              -> Service C

关键是云负载均衡器将流量路由到 nginx 入口控制器,该控制器终止 SSL 并根据请求的路径转发到各种服务。

我不明白的是,此时我们不降低外部负载均衡器的功效吗?当然,它会在入口控制器副本之间分配流量,但这就是它所能做的一切,因为这就是它所知道的一切。它实际上无法跨该服务的 pod 为特定服务进行任何负载平衡。

  1. 这既正确又有效的生产设置?
  2. 负载均衡器只会将流量分配给反向代理,这是否被普遍接受?鉴于 nginx 本身可以充当负载平衡器,我无法克服这种想法有点浪费负载平衡器,但我不知道这是否真的正确。我可能完全误解了入口控制器的概念。
  3. 如果以上是正确的,那是像 linkerd 这样的服务网格出现的地方吗?大概使用 Linderd 之类的东西,从 nginx 入口到特定服务的流量将通过 linkerd在该服务的 pod 之间有效地进行负载平衡。

标签: nginxkubernetesload-balancingkubernetes-ingressservicemesh

解决方案


推荐阅读