TL; DR : 在一个意外的时间点,所有处理来自我们入口的流量的“网络”站点都变得不健康。大约一个小时左右,然后一切恢复健康。我正在尝试找出发生的情况,因为看来我的任何动作都不是造成突然维修的原因。我大约有一个小时的停机时间,我不知道为什么,这很可怕(幸运的是,还没有生产……)。
我将尽一切可能描述这种情况;此刻,平台/源没有发生重大变化,我们的kubernetes集群(GKE)的外部正常运行时间检查提醒我该平台不可访问。果然。向端点执行请求时,我得到了HTTP Error 502
。
当描述一个网络舱时,我注意到健康检查失败:
Warning Unhealthy 11m (x3 over 11m) kubelet, gke-test-001-web-6a31v8hq-p5ff Readiness probe failed: Get http://10.52.25.179:3000/healthz/full: dial tcp 10.52.25.179:3000: getsockopt: connection refused
进一步调查,很明显,所有网络Pod上的所有Readiness
探测都失败了;这是造成停机的原因。
另一个需要注意的怪异现象是:目前,这些 web-pods
Readiness
和Liveness
探针完全相同。 尽管Readiness
支票始终标记为Failed
,但Liveness
探针从未做过。
我决定进一步调查该问题,并且发现为Readiness
检查设置的端点在以下位置可以很好地工作:
从POD:
root@webpod-76c8ctc6t8-2prjz:/var/lib/webapp# curl -iL 10.52.25.179:3000/healthz/full.json
HTTP/1.1 200 OK
Connection: close
Content-Type: application/json; charset=utf-8
{"healthy":true,"message":"success"}
从NODE:
root@gke-test-001-web-6a31v8hq-p5ff ~ $ curl -iL http://10.52.25.179:3000/healthz/full.json
HTTP/1.1 200 OK
Connection: close
Content-Type: application/json; charset=utf-8
{"healthy":true,"message":"success"}
此时,运行状况检查仍以Failed
的形式返回。不知何故,我得到的结果不同于这些节点上的kubelet得到的结果?
我注意到的是以下内容:
[Mon Oct 29 16:06:57 2018] cbr0: port 16(veth34a6a4ce) entered disabled state
在我看来,豆荚覆盖网络的网桥被禁用了,但是如果这确实引起了问题,我将根本无法获得豆荚的IP ...
我尝试了以下操作:
ifup
和ifdown
cbr0
界面Readyness
个检查(没有)Readyness
检查(不是)突然之间,大约一小时后,在我能够确定问题之前,我的豆荚又恢复了健康,并且平台运行正常...
谁知道这里发生了什么?关于再次发生这种情况该怎么办?
(请注意,摘要中的时间可能相差很大,因为它们来自不同的时间点;时间戳为UTC)
答案 0 :(得分:0)
此问题最终与准备就绪检查失败无关。
实际原因是由于人为错误而未将configmap加载到正确的位置!