我正在尝试在Google云端为我的Meteor应用设置HTTP负载均衡器。我正确设置了应用程序,我知道这一点,因为我可以访问网络负载均衡器中给出的IP。
但是,当我尝试设置HTTP负载均衡器时,运行状况检查总是说实例是不健康的(即使我知道它们不是)。我尝试在我的应用程序中包含一个返回状态200的路径,并将健康检查指向该路径。
这正是我所做的,一步一步:
然后我尝试创建HTTP负载均衡器。我在负载均衡器中创建了一个后端服务,其中所有虚拟机都对应于流星应用程序。然后我创建一个新的全局转发规则。无论如何,实例都标记为“不健康”,并且来自全局转发规则的IP返回“服务器错误”。
答案 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负载平衡的本机支持。我们希望尽快让您更轻松!