首页 文章

Google Load Balancer没有将流量传递到后端

提问于
浏览
0

我正在尝试使用负载均衡器将流量定向到容器后端 . 容器中的服务在 port 80 上承载Web流量 . 我的 Health 检查都在通过 . 如果我进入容器的Kubernetes主机,我可以卷曲每个容器并在 port 80 上获得正确的响应 . 但是,当我尝试通过负载 balancer 器外部IP访问它们时,我收到502响应 . 我有防火墙规则允许来自 tcp:1-5000 的流量来自 tcp:1-5000 和NodePort端口 . 我还尝试将 0.0.0.0/0 端口80和443的防火墙规则添加到这些节点 .

当在Kubernetes主机中,使用tcpdump捕获时,我会看到对我的容器的运行状况检查请求,但是当我发出外部请求时没有流量通过 .

我有一个相同的配置,指向一个完美运行的单个计算引擎VM . 这让我相信问题可能出在容器设置而不是负载均衡器上 .

有没有人对解决这个问题有任何建议?

1 回答

  • 1

    我能够通过更改Load Balancer连接到的命名端口来解决问题 . 默认情况下,Load Balancer连接到命名端口“http”,它指向端口80.由于我的应用程序在端口80上运行,因此我的假设(总是一件坏事)是匹配的 . 不是这样 . 由于我通过NodePort暴露了容器,因此它被分配了另一个端口 . 这是我 Health 检查指向的端口 . 通过进入“计算引擎 - >实例组”选择组,然后选择“编辑组”,我可以更改命名端口“http”以匹配我的NodePort编号 . 一旦我这样做,交通开始流动 .

相关问题