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

如何在AKS集群中将Redis+Sentinel暴露至外部?连接失败求助

问题排查与解决方案

核心原因

报错getaddrinfo ENOTFOUND redis-0.redis.stress-tr.svc.cluster.local的本质是:Sentinel向客户端返回了K8s集群内部的Redis节点域名,但该域名仅能在集群内部解析,外部客户端无法识别。你通过Ingress只暴露了Sentinel服务,但客户端连接Sentinel获取主节点地址后,尝试访问的是集群内部域名,自然无法解析。

具体排查与修复步骤

1. 检查Ingress的TCP协议支持配置

Sentinel使用的是TCP协议,而默认的Nginx Ingress仅处理HTTP/HTTPS流量,你的当前配置存在适配问题:

  • 核对Sentinel Service端口:Sentinel默认端口是26379,你的Ingress配置中填的是5000,需确认sentinel Service的端口映射是否匹配。
  • 配置Nginx Ingress的TCP转发:
    1. 创建TCP配置的ConfigMap:
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: nginx-ingress-tcp
        namespace: <Ingress Controller所在命名空间>
      data:
        # 格式:外部端口: 命名空间/服务名:服务端口
        26379: "stress-tr/sentinel:26379"
      
    2. 修改Nginx Ingress Controller的Deployment,挂载该ConfigMap并暴露对应端口:
      在Deployment的volumes中添加:
      - name: tcp-services
        configMap:
          name: nginx-ingress-tcp
      
      在容器的volumeMounts中添加:
      - name: tcp-services
        mountPath: /etc/nginx/tcp-services.d
      
      同时在容器的ports中添加:
      - name: tcp-26379
        containerPort: 26379
        protocol: TCP
      
    3. 更新Ingress配置,确保端口与TCP映射一致。

2. 修改Redis与Sentinel的公告地址配置

解决外部客户端无法解析集群内部域名的核心是让Redis节点和Sentinel向客户端返回外部可访问的地址:

  • 对Redis主从节点,添加以下配置:
    # 主从节点都需要配置,指定外部可访问的IP/域名和端口
    replica-announce-ip <外部可访问IP/域名>
    replica-announce-port <Redis对外暴露的端口>
    
    如果用NodePort暴露Redis,这里填Node的公网IP+NodePort;如果用LoadBalancer,填LoadBalancer的IP+Redis端口。
  • 对Sentinel节点,添加以下配置:
    # 指定Sentinel对外暴露的IP/域名和端口
    sentinel announce-ip <外部可访问IP/域名>
    sentinel announce-port <Sentinel对外暴露的端口>
    

3. 替代方案:用LoadBalancer暴露Redis节点

如果不想配置Ingress的TCP转发,可以直接为Redis主从节点创建LoadBalancer类型的Service,让外部客户端能直接访问Redis节点的公网IP,同时配合上述公告地址配置,确保Sentinel返回正确的外部地址。

4. 临时测试验证

如果需要快速验证,可以在客户端机器的/etc/hosts中添加一条映射:

<Redis节点的公网IP> redis-0.redis.stress-tr.svc.cluster.local

这只是临时方案,不适合生产环境,仅用于排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 15:17:48