【发布时间】:2016-04-28 17:01:26
【问题描述】:
我有一个容器集群在 GKE 上的负载平衡器后面运行。它运行良好,但是当我尝试访问页面时偶尔会出现 502 错误。日志显示如下:
{
metadata:
{
severity:
"WARNING"
projectId:
"###"
serviceName:
"network.googleapis.com"
zone:
"global"
labels:
{…}
timestamp:
"2016-04-28T16:35:46.864379896Z"
projectNumber:
"###"
}
insertId:
"2016-04-28|09:35:47.696726-07|10.94.35.131|1729057675"
log:
"requests"
httpRequest:
{
requestMethod:
"GET"
requestUrl:
"https://###/user/view/111"
requestSize:
"2089"
status:
502
responseSize:
"362"
userAgent:
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.86 Safari/537.36"
remoteIp:
"###"
referer:
"###"
}
}
当我查看容器中的访问日志时,在生成 502 错误时,我没有看到任何匹配的请求命中它们。他们似乎没有通过负载平衡器。
有人遇到过负载均衡器的这个问题吗?有什么推荐的解决方案吗?谢谢。
【问题讨论】:
-
我应该补充一下,我的所有实例都显示健康并且 CPU 使用率
-
您能否添加有关容器和负载均衡器配置的更多信息?
-
是否有一些具体的信息会有所帮助?我正在运行两个通过 uwsgi 为 python 应用程序提供服务的容器。容器通过 NodePort 公开。每个容器运行 4 个 uwsgi 进程。负载均衡器将除对 /static/ 的请求之外的所有流量发送到这些容器。
-
发生这些错误时,我的两个容器似乎都已重新启动。我可以从容器主机执行
docker ps时显示的正常运行时间看出。不过,我在容器日志中没有找到任何可以说明重启原因的内容。 -
这可以解释 502。您可以查看 kubelet 日志。可能容器未能通过健康检查,kubelet 重新启动了它们。
标签: load-balancing google-cloud-platform google-kubernetes-engine