加载健康状态时出错

我们正在使用GCE,并得到一个非常奇怪的错误:

“加载健康状态时出错”

我们在所有的HTTP负载均衡器上看到这个错误。 健康检查失败似乎对实际服务没有任何影响。 换句话说,服务器本身工作得很好,但健康检查是“红色的”。

我们使用DM来设置我们的环境,所以我们现在运行的是和以前一样的。 直到今天,我们一直在使用beta API。 我们的理论是,如果我们把所有的东西都搬到“v1”上,我们就可以解决这个问题。 我们学到的是即使所有的“v1”位,我们仍然看到相同的错误。

tcpdump -vvvs 1500 -l -A端口80

20:01:21.249194 IP (tos 0x80, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 146) 130.211.1.239.42560 > master-game-100-tbmatch-us-central1-a-xxxx.c.radiant-cloud.internal.http: Flags [P.], cksum 0xe9bd (correct), seq 1:95, ack 1, win 222, options [nop,nop,TS val 92585061 ecr 407465], length 94 E.....@.@....... [email protected]............... ...e..7.GET /healthz HTTP/1.1 Host: 10.240.0.30 User-Agent: GoogleHC/1.0 Connection: Keep-alive 

我们看到健康检查请求进入…

 20:01:21.250109 IP (tos 0x0, ttl 63, id 15146, offset 0, flags [DF], proto TCP (6), length 155) master-game-100-tbmatch-us-central1-a-0buf.c.radiant-cloud.internal.http > 130.211.1.239.42560: Flags [P.], cksum 0x905d (incorrect -> 0xb6e0), seq 1:104, ack 95, win 220, options [nop,nop,TS val 407465 ecr 92585061], length 103 E...;*@.?.pc [email protected]......]..... ..7....eHTTP/1.1 200 OK Content-Length: 2 Content-Type: text/plain Date: Mon, 11 Jan 2016 20:01:21 GMT ok 

而且我们看到我们的服务正如往常一样适当地做出反应。 其他人是否看到这个问题?

有几件事你需要检查:

  1. 检查实例上的iptables,确认它们是否阻止来自IP 169.254.169.254的stream量(该IP属于元数据服务器,运行状况检查将从此IP发送到实例)。

  2. 运行命令: tcpdump -A -n host 169.254.169.254 ,从负载均衡器后面的任何实例运行tcpdump -A -n host 169.254.169.254并检查标志

  3. 使用命令ps aux | grep googleaddress*检查实例上是否正在运行“googleaddressmanager” ps aux | grep googleaddress* 。 Googleaddressmanager是一个启动脚本,负责pipe理从项目元数据到实例的所有地址。

  4. 检查运行状况检查是否在与实例上运行的服务相同的端口上进行侦听。

  5. 如果您的设置具有默认值,我build议将“不健康阈值”参数设置为5而不是默认值2。

更多信息可以在这里find