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

Azure AKS集群Apache Ignite TcpDiscoveryKubernetesIpFinder连接故障

故障根因定位与解决方案

核心故障根因

当前配置的TcpDiscoveryKubernetesIpFinder存在三类配置偏差,直接导致节点无法完成集群发现:

  • 关联服务与Ignite服务端口不匹配,Endpoint列表为空
    TcpDiscoveryKubernetesIpFinder的工作逻辑是调用K8s API拉取指定服务后端的所有Pod地址,用于Discovery端口通信。当前关联的cohortstore-load-balancer-internal为LoadBalancer类型服务,仅暴露8080、10800、10900三个业务端口,未声明Ignite Discovery默认端口47500。根据K8s规则,当Service定义的端口与Pod容器声明的端口无法匹配时,对应Pod的IP不会被加入服务的Endpoint列表,最终导致IpFinder拉取到的地址集合为空,触发Failed to get registered addresses from IP finder on start错误。
  • IpFinder关联的服务类型不符合官方要求
    Ignite官方要求TcpDiscoveryKubernetesIpFinder必须关联无头服务(Headless Service,spec.clusterIP=None),而非带负载均衡的ClusterIP/LoadBalancer服务。LoadBalancer服务会对后端节点做健康检查、负载过滤,无法返回完整的全量服务端节点地址列表,无法满足Discovery阶段需要遍历所有集群成员的要求。这也解释了为何瘦客户端可正常连接:瘦客户端仅需通过LoadBalancer的10800端口做代理通信,不需要拉取全量节点地址列表,因此不受影响。
  • 超时参数设置不合理触发线程阻塞告警
    配置中socketTimeout=300的阈值远低于跨命名空间通信的常规网络延迟,当Discovery线程因拉不到有效地址持续等待时,会触发系统关键线程Blocked类告警。

修复操作步骤

  1. 在服务端命名空间创建专属的无头服务
    在cohort-store命名空间下新建无头服务,配置要求:
    • 通过selector匹配所有Ignite服务端Pod的标签
    • 配置clusterIP: None启用无头服务模式
    • 暴露Ignite集群内部通信所需端口:
      • 47500:对应TcpDiscoverySpi的Discovery通信端口
      • 47100:对应TcpCommunicationSpi的节点间通信端口
  2. 调整厚客户端的IpFinder配置
    将XML配置中serviceName字段替换为上述新建的无头服务名称,保持namespace=cohort-store不变即可。
  3. 优化Discovery超时参数
    将Discovery SPI的socketTimeout从300调整为2000~3000ms,适配跨命名空间网络延迟,避免无意义的线程阻塞告警。
  4. 检查跨命名空间的K8s API权限
    确保cohort-frontdoor命名空间内厚客户端Pod使用的服务账号,已通过RBAC绑定对应权限,可查询cohort-store命名空间下的Service、Endpoints资源,避免因API权限不足导致地址拉取失败。

验证方案

  1. 配置更新后,先在厚客户端Pod内执行命令,确认可正常获取到全量服务端节点地址:
    kubectl get endpoints -n cohort-store <新建的无头服务名称>
    
    输出结果需包含3个cohortstore-* Pod的IP,且映射端口包含47500。
  2. 重启厚客户端节点,观察日志确认Discovery阶段可正常拉取到服务端节点列表,无Failed to get registered addresses from IP finder报错即为修复完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 17:45:04