kubernetes - Kubernetes健康检查工作进入谷歌云平台
问题描述
我在谷歌云平台中使用 Kubernetes,并在那里定义了一些带有部署控制器的集群。
对于部署的每个 pod,都会进行一次健康检查,每 30 秒检查一次我的路由(www.example.com),响应必须为 200,否则会导致健康检查失败。
所以我决定跟踪它并在我的 index.php 中写入 die() 然后健康检查显示绿色状态并且它工作正常。我很困惑,我真的不知道这个吊舱发生了什么以及为什么它不起作用。
任何人都可以帮助我在我的 pod 中找到这个问题,并告诉我这个健康检查在 GCP 中到底做了什么?
解决方案
健康检查用于验证 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 的其他内容。
推荐阅读
- python - 如何在python中读取和索引动态生成的文件
- sabre - 如何让 PNR 到期
- jenkins - Jenkins 管道脚本中的 sudo
- python - 添加堆叠数组 Numpy 的元素
- google-bigquery - BIGQUERY - 如何按特定日期使用求和函数?
- javascript - Vimeo Player API 提示点事件:未捕获类型错误:时间必须是数字
- django - 没有找到带有关键字参数的 Django NoReverseMatch
- javascript - 如何在 node.js 中使用伊斯坦布尔增加代码覆盖率
- angular - Angular 表单验证未显示在 Angular 表单错误中
- spring - Autowired RestTemplate 返回不正确的 ResponseErrorHandler