Google云端HTTP负载均衡器始终为流量应用返回不健康的实例

use*_*763 3 meteor google-cloud-platform kubernetes

我正在尝试在Google云上为我的Meteor应用程序设置HTTP负载均衡器.我正确设置了应用程序,我知道这是因为我可以访问网络负载均衡器中给出的IP.

但是,当我尝试设置HTTP负载均衡器时,运行状况检查总是说实例是不健康的(即使我知道它们不是).我尝试在我的应用程序中包含一个返回状态200的路由,并将健康检查指向该路由.

这正是我所做的,一步一步:

  1. 为应用程序创建新的实例模板/组.
  2. 上传图片到谷歌云.
  3. 为应用程序创建复制控制器和服务.
  4. 网络负载均衡器是自动创建的.此外,有两个防火墙规则允许所有IP上的HTTP/HTTPS流量.

然后我尝试创建HTTP负载均衡器.我在负载均衡器中创建了一个后端服务,其中所有虚拟机都对应于流星应用程序.然后我创建一个新的全局转发规则.无论如何,实例都标记为"不健康",并且来自全局转发规则的IP返回"服务器错误".

Ale*_*son 5

为了在Google Cloud上使用Kubernetes进行HTTP负载平衡,您必须采用与网络负载平衡略有不同的方法,因为目前缺乏对HTTP平衡的内置支持.

我怀疑你在第3步创建了你的服务type: LoadBalancer.由于LoadBalancer类型的实现方式,这将无法正常工作,这会导致服务仅在网络转发规则的IP地址上可用,而不是在每个主机的IP地址上可用.

然而,将使用什么type: NodePort,这将导致服务可以在每个主机的外部IP地址上的自动选择的节点端口上访问.使用HTTP负载均衡器可以更好地发挥作用.然后,您可以将此节点端口传递给您创建的HTTP负载平衡器.一旦在节点端口上打开防火墙,就应该好好去!

如果您想要更具体的步骤,最近在GKE的文档中添加了如何将HTTP负载均衡器与Container Engine 一起使用演练.相同的步骤应该适用于普通的Kubernetes.

作为最后一点,现在版本1.0已经出门,团队正在回归添加一些缺失的功能,包括对L7负载平衡的本机支持.我们希望尽快让您更轻松!