我正在尝试在Google Cloud 上为我的Meteor应用程序设置HTTP负载均衡器 . 我正确设置了应用程序,我知道这是因为我可以访问网络负载均衡器中给出的IP .
但是,当我尝试设置HTTP负载均衡器时,运行状况检查总是说实例是不 Health 的(即使我知道它们不是) . 我尝试在我的应用程序中包含一个返回状态200的路由,并将 Health 检查指向该路由 .
这正是我所做的,一步一步:
-
为应用创建新的实例模板/组 .
-
将图片上传到谷歌 Cloud 端 .
-
为应用程序创建复制控制器和服务 .
-
自动创建网络负载均衡器 . 此外,有两个防火墙规则允许所有IP上的HTTP / HTTPS流量 .
然后我尝试创建HTTP负载均衡器 . 我在负载均衡器中创建了一个后端服务,其中所有虚拟机都对应于流星应用程序 . 然后我创建一个新的全局转发规则 . 无论如何,实例都标记为“不 Health ”,并且来自全局转发规则的IP返回“服务器错误” .
1 回答
为了在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 的本机支持 . 我们希望尽快让您更轻松!