2016-04-14 58 views
3

我试图在2台Tomcat服务器上运行GCE上的负载平衡器,它们分别在2台虚拟机上运行(vm-1vm-2)。两者都在端口80上侦听,并且网络防火墙规则允许来自任何来源的端口80上的流量(0.0.0.0/0)。 现在,我创建了一个名为vm-group的这两个虚拟机的实例组,并设置名为http的指向端口80负载均衡器:运行状况检查无故失败

我也在端口80上创建了一个健康检查,指向/<app_name>/<health_url>,如果该应用程序健康,则报告HTTP 200。

然后,我使用this video中的指令设置HTTP负载平衡器。安装完成后,我发现负载平衡器报告0/2实例是健康的,这意味着健康检查失败。

当我手动打开健康检查网址时,他们会返回一个HTTP 200 - 所以我的应用程序很健康。

现在,我不知道为什么负载平衡器报告虚拟机不健康,无法路由请求。我怎样才能进一步调试呢?

编辑:我确认google-address-manager正在运行,如this question中所述。

+0

你可以运行'gcloud计算http健康检查描述healthcheck-name'并粘贴结果在你的问题的结尾? – Grzenio

回答

2

我有同样的问题。另外使用gcloud工具时:

gcloud compute backend-services get-health mybackendservice 

我得到

- healthState: UNHEALTHY 
    instance: https://www.googleapis.com/compute/v1/projects/myproject/.../instances/mycluster-4gim 
    port: 8000 

的问题是,在后端服务HTTP定义的健康检查,使用(没有使用https)和端口号80。找不到解释对于这种差异。

+0

原来,端口号取自实例组设置(端口名称映射部分)。但健康检查仍然不起作用... – fuego666

1

原来,端口号取自实例组设置(端口名称映射部分)。但是,健康检查还没有工作...含作为实例组

gcloud compute target-pools get-health targetpoolname 

--- 
healthStatus: 
- healthState: HEALTHY 
    instance: https://www.googleapis.com/compute/v1/projects/inst 
    ipAddress: an.ip.addr.es 
kind: compute#targetPoolInstanceHealth 
--- 

...

2

你有没有加入谷歌的运行状况检查你的防火墙列表相同的情况下,目标池比较检验成果: 130.211.0.0/22