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

升级GKE至1.25后NEG健康检查异常求助

解决GKE 1.25升级后NEG健康检查异常问题

以下是针对该问题的排查方向和可落地解决方案:

1. 升级Ingress-Nginx控制器版本

你当前使用的Ingress-Nginx v1.5.1版本发布时间较早,对Kubernetes 1.25的兼容性不足。GKE 1.25已彻底移除networking.k8s.io/v1beta1 Ingress API,建议升级至支持K8s 1.25的稳定版本(如v1.8.0及以上)。

操作步骤:

  • 备份当前Ingress-Nginx的配置资源
  • 从官方Ingress-Nginx仓库获取对应新版本的云提供商部署文件
  • 重新部署控制器:
    kubectl apply -f deploy.yaml -n ingress-nginx
    

2. 排查Pod就绪探针状态

NEG的健康状态直接关联Pod的Ready状态,如果Ingress-Nginx控制器Pod的就绪探针失败,GKE会自动将对应的NEG端点标记为不健康。

排查操作:

  • 查看Pod的就绪状态:
    kubectl get pods -n ingress-nginx
    
  • 查看探针相关日志:
    kubectl logs <ingress-nginx-controller-pod-name> -n ingress-nginx -c controller
    
  • 确认探针配置:确保控制器的readinessProbe指向正确的端口(默认10254)和路径(/healthz),且Pod内部可正常访问该端点。

3. 调整健康检查阈值配置

你当前的TCP健康检查配置中checkIntervalSec和timeoutSec均设置为1秒,阈值过于严格,容易导致正常Pod被误判为不健康。建议调整为更合理的参数:

修改健康检查配置:

{
  "checkIntervalSec": 5,
  "description": "TCP health check for Ingress-Nginx NEG",
  "healthyThreshold": 2,
  "kind": "compute#healthCheck",
  "logConfig": {
    "enable": true
  },
  "name": "neg-tcp-health-check",
  "tcpHealthCheck": {
    "portSpecification": "USE_SERVING_PORT",
    "proxyHeader": "NONE"
  },
  "timeoutSec": 3,
  "type": "TCP",
  "unhealthyThreshold": 3
}

执行更新命令:

gcloud compute health-checks update tcp neg-tcp-health-check --check-interval=5 --timeout=3 --unhealthy-threshold=3

4. 验证Service与Pod端口映射一致性

确认Service的targetPort与Ingress-Nginx容器的端口完全匹配:

  • 查看Pod容器的端口配置:
    kubectl describe pod <ingress-nginx-controller-pod-name> -n ingress-nginx | grep Ports
    
  • 若容器端口名称并非http,需修正Service的targetPort配置,确保与容器端口的名称或数值一致。

5. 检查网络策略与NEG注解

  • 确认没有NetworkPolicy规则阻止健康检查流量访问Pod的80端口
  • 验证Service的cloud.google.com/neg注解格式正确,无语法错误(当前配置格式符合要求,可跳过格式校验)

验证修复效果

完成调整后,通过以下操作确认问题解决:

  1. 查看NEG端点状态:
    gcloud compute network-endpoint-groups list
    gcloud compute network-endpoint-groups describe <neg-name> --zone <cluster-zone>
    
  2. 检查健康检查状态:
    gcloud compute health-checks describe neg-tcp-health-check
    
  3. 测试Ingress访问:
    curl <your-ingress-ip>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:20:42