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

GKE Autopilot集群Ingress请求超时故障排查求助

GKE Autopilot内部Ingress 504超时排查方案

1. 确认Autopilot网络策略限制

Autopilot默认启用Pod安全标准和网络策略限制,内部负载均衡器的流量需要被允许到达后端Pod:

  • 查看集群内所有网络策略:kubectl get networkpolicies --all-namespaces
  • 如果存在默认拒绝所有流量的策略,需添加允许内部LB节点IP段访问Pod的规则(节点IP段可通过gcloud container clusters describe <集群名> --zone <区域> | grep -A 5 clusterIpv4Cidr获取)

2. 检查Ingress后端健康检查状态

504超时大概率和健康检查失败导致后端被摘除有关:

  • 查看Ingress关联的健康检查配置:kubectl describe ingress <ingress名称>,找到Backend字段下的健康检查信息
  • 登录GCP控制台查看负载均衡器的后端组状态,如果显示不健康,说明健康检查的路径、端口或协议不匹配httpbin服务的配置(httpbin默认健康检查路径为/status/200)

3. 验证Service与BackendConfig配置

确认Service的关键配置及注解是否正确:

  • 确保Service的ports.targetPort和Pod的监听端口完全一致(httpbin默认监听80端口)
  • 如果使用自定义健康检查,需绑定BackendConfig注解:
    cloud.google.com/backend-config: '{"default": "httpbin-backend-config"}'
    
    对应的BackendConfig示例:
    apiVersion: cloud.google.com/v1
    kind: BackendConfig
    metadata:
      name: httpbin-backend-config
    spec:
      healthCheck:
        checkIntervalSec: 5
        port: 80
        type: HTTP
        requestPath: /status/200
    

4. 检查GCP防火墙规则

内部负载均衡的健康检查流量来自固定IP段(35.191.0.0/16、130.211.0.0/22),需确保这些IP能访问Pod的端口:

  • 查看集群关联的防火墙规则:gcloud compute firewall-rules list --filter="name~gke-<集群名>-*"
  • 确认存在允许上述健康检查IP段访问节点NodePort(Ingress会自动为ClusterIP Service映射NodePort)的规则,若缺失需手动添加

5. 验证节点到Pod的可达性

虽然集群内Pod访问Service正常,但需确认节点层面能直接访问Pod:

  • 获取节点IP:kubectl get nodes -o wide
  • 登录节点(Autopilot节点需通过GCE控制台连接),执行curl <Pod-IP>:<端口>,确认是否能正常返回200响应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:31:06