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

求在K8s上部署Redis Cluster/Sentinel的有效方案及最新教程

解决K8s上Redis集群部署及Kong TCPIngress配置问题

Redis Cluster 部署(Bitnami Helm 修正版)

  • 先更新Helm仓库:
    helm repo add bitnami https://charts.bitnami.com/bitnami
    helm repo update
    
  • 部署时必须指定集群节点数,Bitnami默认需要6个节点(3主3从),这是很多人踩坑的点:
    helm install redis-cluster bitnami/redis-cluster \
      --set replicaCount=3 \
      --set cluster.nodes=6 \
      --set auth.enabled=false \ # 测试阶段先关闭认证,稳定后再开启
      --set service.type=ClusterIP
    
  • 等待集群初始化完成:
    kubectl wait --for=condition=ready pod -l app.kubernetes.io/name=redis-cluster --timeout=5m
    
  • 验证集群状态,看到cluster_state:ok才算正常:
    kubectl exec -it redis-cluster-0 -- redis-cli cluster info
    

Kong TCPIngress 配置要点

Redis Cluster需要同时暴露数据端口(6379)和集群总线端口(16379),TCPIngress配置如下:

apiVersion: configuration.konghq.com/v1beta1
kind: TCPIngress
metadata:
  name: redis-cluster-ingress
spec:
  rules:
  - port: 6379
    backend:
      serviceName: redis-cluster
      servicePort: 6379
  - port: 16379
    backend:
      serviceName: redis-cluster
      servicePort: 16379
  • 客户端连接时必须开启集群模式,Another Redis Desktop Manager里要勾选"Cluster Mode",用Kong的IP+6379端口连接,别用单机模式。

Sentinel 模式备选方案(如果Cluster模式仍有问题)

  • 用Bitnami的Redis Sentinel Helm包部署:
    helm install redis-sentinel bitnami/redis \
      --set sentinel.enabled=true \
      --set sentinel.replicaCount=3 \
      --set auth.enabled=false \
      --set service.type=ClusterIP
    
  • TCPIngress配置需要暴露Sentinel端口(26379)和Redis端口(6379):
    apiVersion: configuration.konghq.com/v1beta1
    kind: TCPIngress
    metadata:
      name: redis-sentinel-ingress
    spec:
      rules:
      - port: 6379
        backend:
          serviceName: redis-sentinel
          servicePort: 6379
      - port: 26379
        backend:
          serviceName: redis-sentinel-headless
          servicePort: 26379
    
  • 客户端选择"Sentinel"模式,填入Kong IP+26379,主节点名称默认是mymaster。

常见问题排查

  • 插入键失败:大概率是用了单机模式连接,Redis Cluster不支持跨槽的单机操作,必须用集群客户端。
  • 无法显示已创建的键:Another Redis Desktop Manager在集群模式下需要手动刷新,或者检查是否开启了集群模式,部分键可能存储在其他节点,集群模式下客户端会自动路由,但工具需要同步节点信息。
  • 集群初始化失败:查看pod日志kubectl logs redis-cluster-0,如果是认证问题先关闭auth;如果是DNS解析失败,检查K8s CoreDNS是否正常,Bitnami的chart依赖headless service的DNS解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:37:34