首页 > 解决方案 > Kubernetes健康检查工作进入谷歌云平台

问题描述

我在谷歌云平台中使用 Kubernetes,并在那里定义了一些带有部署控制器的集群。

对于部署的每个 pod,都会进行一次健康检查,每 30 秒检查一次我的路由(www.example.com),响应必须为 200,否则会导致健康检查失败。

所以我决定跟踪它并在我的 index.php 中写入 die() 然后健康检查显示绿色状态并且它工作正常。我很困惑,我真的不知道这个吊舱发生了什么以及为什么它不起作用。

任何人都可以帮助我在我的 pod 中找到这个问题,并告诉我这个健康检查在 GCP 中到底做了什么?

标签: kubernetesgoogle-kubernetes-enginekubernetes-health-check

解决方案


健康检查用于验证 pod 中的容器是否健康并准备好为流量提供服务。

所以你应该首先检查你的http状态码:

curl -I www.example.com

响应中的 http 状态代码是什么?

当您在 index.php 中编写 die() 时,我确定 http 状态代码为 200

但是当你从你的 index.php 中删除它时,http 代码就是另外一回事了!

您可以在访问 www.example.com 之后重定向用户,那么在这种情况下,http 状态代码不是 200。

确保并检查健康检查 url 的 http 状态码是 200 ,如果不是 200 那么你可以将 GKE 中的健康检查 url 更改为 http 状态码可能是 200 的其他内容。


推荐阅读