我有两个虚拟机实例上的node.js应用程序,我试图通过网络负载平衡进行负载平衡。为了测试我的服务器已启动并提供服务,我的应用程序内部侦听端口上有运行状况检查请求“/health.txt”。我有两个实例配置相同的标签,防火墙规则等,但运行状况检查不能连续执行一次,我可以在内部网络或外部使用curl进行检查,并且测试对两个实例均正常工作,但网络负载平衡器始终将一个实例报告为关闭。谷歌计算引擎运行状况检查失败
我用的ngrep,并从健康实例上运行,我看到:
T 169.254.169.254:65374 -> my.pub.ip.addr:3000 [S]
#
T my.pub.ip.addr:3000 -> 169.254.169.254:65374 [AS]
#
T 169.254.169.254:65374 -> my.pub.ip.addr:3000 [A]
#
T 169.254.169.254:65374 -> my.pub.ip.addr:3000 [AP]
GET /health.txt HTTP/1.1.
Host: my.pub.ip.addr:3000.
.
#
T my.pub.ip.addr:3000 -> 169.254.169.254:65374 [A]
#
T my.pub.ip.addr:3000 -> 169.254.169.254:65374 [AP]
HTTP/1.1 200 OK.
X-Powered-By: NitroPCR.
Accept-Ranges: bytes.
Date: Fri, 14 Nov 2014 20:00:40 GMT.
Cache-Control: public, max-age=86400.
Last-Modified: Thu, 24 Jul 2014 17:58:46 GMT.
ETag: W/"2198506076".
Content-Type: text/plain; charset=UTF-8.
Content-Length: 13.
Connection: keep-alive.
.
#
T 169.254.169.254:65374 -> my.pub.ip.addr:3000 [AR]
但在实例GCE索赔是不健康的,我看到:
T 169.254.169.254:61179 -> my.pub.ip.addr:3000 [S]
#
T 169.254.169.254:61179 -> my.pub.ip.addr:3000 [S]
#
T 169.254.169.254:61180 -> my.pub.ip.addr:3000 [S]
#
T 169.254.169.254:61180 -> my.pub.ip.addr:3000 [S]
#
T 169.254.169.254:61180 -> my.pub.ip.addr:3000 [S]
但如果我卷曲相同来自我的健康实例的文件>不健康的实例,我的“不健康”实例响应良好。
我regretoverflow曾在这个问题上,并且我们发现从https://github.com/GoogleCloudPlatform/compute-image-packages/pull/121允许google-address-manager应用修复程序即可正确启动。 – David 2014-11-24 18:39:50