首页 文章

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

提问于
浏览
3

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

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

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

  • 为应用创建新的实例模板/组 .

  • 将图片上传到谷歌 Cloud 端 .

  • 为应用程序创建复制控制器和服务 .

  • 自动创建网络负载均衡器 . 此外,有两个防火墙规则允许所有IP上的HTTP / HTTPS流量 .

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

1 回答

  • 5

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

    我怀疑你在步骤3中用 type: LoadBalancer 创建了你的服务 . 这赢得了't work properly because of how the LoadBalancer type is implemented, which causes the service to be available only on the network forwarding rule'的IP地址,而不是每个主机的IP地址 .

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

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

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

相关问题