Google 云 HTTP 负载均衡器总是 returns meteor 应用的不健康实例
Google cloud HTTP load balancer always returns unhealthy instance for meteor app
我正尝试在 google 云上为我的 Meteor 应用程序设置一个 HTTP 负载平衡器。我已正确设置应用程序,我知道这一点,因为我可以访问网络负载均衡器中提供的 IP。
但是,当我尝试设置 HTTP 负载平衡器时,健康检查总是说实例不健康(即使我知道它们不健康)。我尝试在我的应用程序中包含一个 returns 状态为 200 的路由,并将健康检查指向该路由。
这正是我所做的,一步一步:
- 为应用创建新实例template/group。
- 将图像上传到 google 云端。
- 为应用程序创建复制控制器和服务。
- 网络负载平衡器已自动创建。此外,还有两条防火墙规则允许所有 IP 上的 HTTP/HTTPS 流量。
然后我尝试创建 HTTP 负载平衡器。我在负载均衡器中创建了一个后端服务,其中包含与流星应用程序对应的所有虚拟机。然后我创建一个新的全局转发规则。无论如何,实例被标记为 "unhealthy" 并且 IP 来自全局转发规则 returns a "Server Error".
为了在 Google Cloud with Kubernetes 上使用 HTTP 负载平衡,您必须采取与网络负载平衡略有不同的方法,因为目前缺乏对 HTTP 平衡的内置支持。
我怀疑您在第 3 步中使用 type: LoadBalancer
创建了服务。这将无法正常工作,因为 LoadBalancer 类型的实现方式会导致服务仅在网络转发规则的 IP 地址上可用,而不是在每个主机的 IP 地址上可用。
但是,使用 type: NodePort
会起作用,这将使服务可以在每个主机的外部 IP 地址上自动选择的节点端口上访问。这与 HTTP 负载平衡器配合得更好。然后,您可以将此节点端口传递给您创建的 HTTP 负载平衡器。在节点端口上打开防火墙后,就可以开始了!
如果您想要更具体的步骤,walkthrough of how to use HTTP load balancers 与容器引擎实际上最近添加到 GKE 的文档中。相同的步骤应该适用于普通的 Kubernetes。
最后一点,现在 1.0 版已经发布,团队正在重新添加一些缺失的功能,包括对 L7 负载平衡的本机支持。我们希望尽快为您提供便利!
我正尝试在 google 云上为我的 Meteor 应用程序设置一个 HTTP 负载平衡器。我已正确设置应用程序,我知道这一点,因为我可以访问网络负载均衡器中提供的 IP。
但是,当我尝试设置 HTTP 负载平衡器时,健康检查总是说实例不健康(即使我知道它们不健康)。我尝试在我的应用程序中包含一个 returns 状态为 200 的路由,并将健康检查指向该路由。
这正是我所做的,一步一步:
- 为应用创建新实例template/group。
- 将图像上传到 google 云端。
- 为应用程序创建复制控制器和服务。
- 网络负载平衡器已自动创建。此外,还有两条防火墙规则允许所有 IP 上的 HTTP/HTTPS 流量。
然后我尝试创建 HTTP 负载平衡器。我在负载均衡器中创建了一个后端服务,其中包含与流星应用程序对应的所有虚拟机。然后我创建一个新的全局转发规则。无论如何,实例被标记为 "unhealthy" 并且 IP 来自全局转发规则 returns a "Server Error".
为了在 Google Cloud with Kubernetes 上使用 HTTP 负载平衡,您必须采取与网络负载平衡略有不同的方法,因为目前缺乏对 HTTP 平衡的内置支持。
我怀疑您在第 3 步中使用 type: LoadBalancer
创建了服务。这将无法正常工作,因为 LoadBalancer 类型的实现方式会导致服务仅在网络转发规则的 IP 地址上可用,而不是在每个主机的 IP 地址上可用。
但是,使用 type: NodePort
会起作用,这将使服务可以在每个主机的外部 IP 地址上自动选择的节点端口上访问。这与 HTTP 负载平衡器配合得更好。然后,您可以将此节点端口传递给您创建的 HTTP 负载平衡器。在节点端口上打开防火墙后,就可以开始了!
如果您想要更具体的步骤,walkthrough of how to use HTTP load balancers 与容器引擎实际上最近添加到 GKE 的文档中。相同的步骤应该适用于普通的 Kubernetes。
最后一点,现在 1.0 版已经发布,团队正在重新添加一些缺失的功能,包括对 L7 负载平衡的本机支持。我们希望尽快为您提供便利!