Google云端HTTP负载均衡器始终为流量应用

时间:2015-07-26 11:57:46

标签: meteor google-cloud-platform kubernetes

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

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

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

  1. 为应用创建新的实例模板/组。
  2. 将图片上传到Google云端。
  3. 为应用创建复制控制器和服务。
  4. 自动创建网络负载均衡器。此外,还有两个防火墙规则允许所有IP上的HTTP / HTTPS流量。
  5. 然后我尝试创建HTTP负载均衡器。我在负载均衡器中创建了一个后端服务,其中所有虚拟机都对应于流星应用程序。然后我创建一个新的全局转发规则。无论如何,实例都标记为“不健康”,并且来自全局转发规则的IP返回“服务器错误”。

1 个答案:

答案 0 :(得分:5)

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

我怀疑您在步骤3中使用type: LoadBalancer创建了服务。由于LoadBalancer类型的实现方式,这不能正常工作,这导致服务仅在网络转发规则的IP地址上可用,而不是在每个主机的IP地址上。< / p>

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

如果您想要更具体的步骤,最近在GKE的文档中添加了一个带有Container Engine的walkthrough of how to use HTTP load balancers。相同的步骤应该适用于普通的Kubernetes。

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