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

Kubernetes API调用延迟与间歇性故障排查求助

问题诊断与解决方案

1. 核心问题:Service与Pod标签不匹配

你的employee-service的selector配置为name: employee-app,但Deployment定义的Pod标签是app: employee-app,标签完全不匹配会导致Service无法找到任何后端Pod。Ingress转发请求时,会因找不到可用端点反复重试,最终触发超时,这就是你看到10秒延迟和110连接超时的直接原因。

修复方法:修改Service的selector,与Pod标签保持一致:

apiVersion: v1
kind: Service
metadata:
  name: employee-service
spec:
  selector:
    app: employee-app  # 将此处的name改为app,与Pod标签对齐
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080

2. 次要问题:DNS策略配置不合理

Deployment里设置了dnsPolicy: Default,这会让Pod使用节点的DNS配置,而非K8s集群内部的CoreDNS。虽然你提到集群内调用正常,但该配置可能导致Service解析不稳定,建议改回K8s默认的ClusterFirst:

spec:
  dnsPolicy: ClusterFirst  # 替换原有的Default配置

3. 额外排查点

  • 检查Ingress Class配置:如果集群中有多个Ingress Controller(如NGINX、Traefik),需在Ingress资源中指定ingressClassName,否则可能被错误的Controller处理导致转发异常。示例:
    metadata:
      name: ingress-config
    spec:
      ingressClassName: nginx  # 根据实际Ingress Controller名称填写
      rules:
      # ... 原有规则内容
    
  • 验证Service Endpoints:执行kubectl get endpoints employee-service,若返回的ENDPOINTS字段为空,说明标签匹配问题确实存在,修复后应能看到Pod的IP列表。
  • 查看Ingress Controller日志:执行kubectl logs -n <ingress-controller命名空间> <ingress-controller Pod名称>,检查是否有后端连接失败、DNS解析错误的日志,进一步确认问题细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 11:49:50