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

Flask应用部署在GKE的LoadBalancer IP无法访问,求助排查

排查GKE中Flask应用LoadBalancer访问被拒绝的问题

针对你遇到的问题,按以下步骤逐一排查:

  • 检查Flask应用的监听地址
    默认情况下Flask仅绑定127.0.0.1,只能在容器内部本地访问,Kubernetes服务无法转发流量。需要确保应用监听0.0.0.0:

    • 代码层面:在main.py中修改启动代码为app.run(host='0.0.0.0', port=5000)
    • 启动命令层面:将启动命令改为python3 main.py --host=0.0.0.0
  • 验证容器端口监听状态
    登录Pod内部检查5000端口是否对外监听:

    kubectl exec -it site -- netstat -tulpn
    # 容器无netstat时用ss命令
    kubectl exec -it site -- ss -tulpn
    

    确认输出中存在0.0.0.0:5000的监听记录,而非仅127.0.0.1:5000

  • 确认LoadBalancer服务就绪状态
    执行kubectl get service site,检查EXTERNAL-IP字段是否已分配有效IP(而非<pending>)。GKE的LoadBalancer通常需要2-5分钟完成配置,若刚创建不久,等待几分钟再尝试访问。

  • 检查GCP防火墙规则
    GKE会自动创建对应LoadBalancer的防火墙规则,但需确认规则是否允许外部流量访问服务的8080端口:

    • 登录GCP控制台 → VPC网络 → 防火墙
    • 查找名称包含k8s-fw-且关联目标服务端口的规则,确认其允许0.0.0.0/0的入站流量
  • 核对服务端口映射配置
    确认服务的target-port与容器实际监听的端口一致:
    执行kubectl describe service site,检查TargetPort字段是否为5000;同时执行kubectl describe pod site,确认Ports字段的容器端口配置正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:45:32