You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

容器化Django应用本地正常,GKE部署后返回"no healthy upstream"求助

Django应用GKE部署后返回"no healthy upstream"问题排查

问题现象

  • 本地容器化运行Django应用完全正常,部署到Google Kubernetes Engine(GKE)后,通过内部负载均衡Ingress访问时仅返回no healthy upstream错误
  • 测试示例项目(仅注释requirements.txt中的mysqlclient依赖,仅使用src/目录内容)也出现同样问题

日志对比

本地运行日志

(base) C:\Users\path\to\app>docker run -p 8080:8080 helloworld:1
[21/Feb/2024 10:54:17] "GET / HTTP/1.1" 200 3968
[21/Feb/2024 10:54:17] "GET /static/KE-hello-world.svg HTTP/1.1" 200 116030
[21/Feb/2024 10:54:17] "GET /static/cloud_bg.svg HTTP/1.1" 200 7213
[21/Feb/2024 10:54:17] "GET /static/kubernetes-engine-icon.png HTTP/1.1" 200 6967
[21/Feb/2024 10:54:19] "GET / HTTP/1.1" 200 3968

GCP工作负载日志

2024-02-21 12:03:40.613 CET
Not Found: /
2024-02-21 12:03:40.613 CET
[21/Feb/2024 11:03:40] "GET / HTTP/1.1" 404 2272

排查建议

  • 核对Ingress健康检查配置:GKE内部负载均衡的健康检查路径需与Django应用的存活/就绪探针路径匹配。从GCP日志看/路径返回404,说明集群内访问该路径时应用无法正常响应,需确认Django路由配置在集群环境下是否正确加载
  • 检查Django环境变量:确保集群内已设置正确的ALLOWED_HOSTS,避免因主机头不匹配导致请求被拒绝
  • 验证Pod探针配置:存活探针和就绪探针的路径、端口是否正确,若探针失败,Pod会被标记为不健康,Ingress就会返回no healthy upstream
  • 测试集群内直接访问:通过Pod IP或Service IP直接访问/路径,确认是否返回404,排查是应用自身问题还是Ingress转发逻辑问题

内容的提问来源于stack exchange,提问作者Vulpo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 13:34:53