GKE Ingress defaultBackend失效:Pod健康却无法响应请求
GKE Ingress默认后端无响应排查问题
配置详情
1. default-backend Deployment
apiVersion: apps/v1 kind: Deployment metadata: name: default-backend namespace: ydt spec: replicas: 1 selector: matchLabels: app: default-backend template: metadata: labels: app: default-backend spec: containers: - name: nginx image: nginx:stable ports: - containerPort: 80 livenessProbe: httpGet: path: / port: 80 initialDelaySeconds: 5 periodSeconds: 5 readinessProbe: httpGet: path: / port: 80 initialDelaySeconds: 5 periodSeconds: 5
- Pod状态健康:
kubectl get pods -n ydt -l app=default-backend NAME READY STATUS RESTARTS AGE default-backend-7c58d6c88-abcde 1/1 Running 0 2h
2. default-backend Service
apiVersion: v1 kind: Service metadata: name: default-backend-service namespace: ydt annotations: cloud.google.com/neg: '{"ingress": true}' # NEGs enabled spec: type: ClusterIP ports: - port: 80 targetPort: 80 selector: app: default-backend
3. Ingress配置
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ydt-ingress namespace: ydt annotations: kubernetes.io/ingress.class: "gce" networking.gke.io/managed-certificates: "certificate" spec: defaultBackend: service: name: default-backend-service port: number: 80 rules: # 其他主机规则(为简洁起见省略)
已检查项
- Pod处于Running状态,探针检测成功(
kubectl logs无错误)。 - Service选择器与Deployment标签匹配。
- NEG已在Google Cloud Console中创建(路径:Network Services > Network Endpoint Groups)。
- 防火墙规则允许
130.211.0.0/22和35.191.0.0/16(GCP健康检查IP段)的流量。
问题描述
配置GKE Ingress的defaultBackend用于处理未定义主机的请求,Pod状态健康,但defaultBackend始终无响应。查看默认后端对应的后端服务,显示无健康Pod运行。对比Google Cloud官方自定义Default Backend服务示例,未发现配置差异。
疑问:为何在Pod健康、NEG已启用的情况下,defaultBackend仍无法工作?是否存在GKE/GCP的隐藏配置未设置?
内容的提问来源于stack exchange,提问作者J.C Guzman
相关产品推荐
相关产品推荐

