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

Redis Pod与Webapp Pod连接失败,附日志及配置请求排查

排查Redis与Webapp Pod连接失败问题

从Webapp的错误日志可以明确看到核心问题:

uncaughtException: Redis connection to pv-redis:6379 failed - getaddrinfo ENOTFOUND pv-redis

你的K8s配置中,Redis Service名称为redis,Webapp Deployment也设置了REDIS_HOST: redis,但Webapp实际尝试连接的主机是pv-redis,这两者不匹配是连接失败的直接原因。

排查步骤

  • 确认Webapp实际加载的Redis配置

    1. 进入Webapp Pod查看当前环境变量,验证REDIS_HOST是否正确:
      kubectl exec -it $(kubectl get pods -l app=webapp -o jsonpath='{.items[0].metadata.name}') -- env | grep REDIS
      
    2. 检查Webapp代码中的Redis连接逻辑,确认是否存在硬编码的pv-redis主机名,或者是否有其他配置(如ConfigMap、Secret)覆盖了环境变量的值。
  • 验证Redis Service的DNS可用性
    如果Webapp确实使用了redis作为主机名,先测试集群内的DNS解析是否正常:

    kubectl run -it --rm busybox --image=busybox:1.28 -- nslookup redis
    

    若能返回Redis Service的ClusterIP,说明Service的DNS配置正常;若解析失败,检查Redis Service是否正常运行:

    kubectl get svc redis
    
  • 检查命名空间一致性
    确认Redis和Webapp是否部署在同一个命名空间:

    kubectl get pods -A | grep -E 'redis|webapp'
    

    若两者不在同一命名空间,Webapp需要使用<service-name>.<namespace>.svc.cluster.local格式的完整域名访问Redis。

修复建议

  1. 若Webapp代码中硬编码了pv-redis,修改为读取环境变量REDIS_HOST的值;
  2. 若环境变量被其他配置覆盖,清理冲突的配置,确保REDIS_HOST的值为redis;
  3. 若Redis和Webapp分属不同命名空间,更新Webapp的REDIS_HOST为完整域名(如redis.default.svc.cluster.local,根据实际命名空间调整)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:17:05