GKE v1.19配置Ingress+BackendConfig后后端显示UNHEALTHY如何解决
问题排查与解决思路
核心问题根因大概率是BackendConfig配置未生效,导致GKE LB仍使用默认/路径做健康检查,以下是具体修复和排查步骤:
1. 修复BackendConfig API版本与端口配置
GKE 1.19版本已支持cloud.google.com/v1稳定版BackendConfig,旧的v1beta1版本存在适配问题,易导致配置不生效;同时硬编码端口的方式不匹配LB访问NodePort的逻辑,需要改为端口名称关联:
修改后backendconfig.yaml
apiVersion: cloud.google.com/v1 kind: BackendConfig metadata: name: backend-config namespace: ns1 spec: healthCheck: checkIntervalSec: 30 portName: http-api type: HTTP requestPath: /api
修改后service.yaml(新增端口名称和BackendConfig关联)
apiVersion: v1 kind: Service metadata: annotations: cloud.google.com/backend-config: '{"default": "backend-config"}' name: service-ns1 namespace: ns1 labels: app: service-ns1 spec: type: NodePort ports: - protocol: TCP port: 3100 targetPort: 3100 name: http-api # 与BackendConfig的portName保持一致 selector: app: service-ns1
2. 其他高频问题排查
- 检查服务侧是否有HTTP强制跳转HTTPS的逻辑:GCP健康检查默认不跟随重定向,非200状态码都会判定为不健康,若开启了强制跳转可将BackendConfig的健康检查类型改为HTTPS,或配置服务端对健康检查IP段放行HTTP访问。
- 确认VPC防火墙已放通GCP健康检查IP段:需要允许
130.211.0.0/22、35.191.0.0/16两个IP段访问NodePort端口范围,否则健康检查请求会被拦截。 - 配置更新后等待5-10分钟再验证:GCP负载均衡配置同步有延迟,修改后不要立刻判定结果,可直接在GCP控制台「负载均衡-后端服务」页查看对应后端的健康检查配置是否已经更新为
/api路径,确认配置生效后再验证状态。
内容的提问来源于stack exchange,提问作者user782400
相关产品推荐
相关产品推荐

