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

基于Bitnami Helm Chart的K8s Redis Sentinel外部访问问题

解决Bitnami Redis Sentinel外部访问问题

一、Bitnami Chart支持创建独立服务

完全可以通过Bitnami的Redis Sentinel Helm Chart配置,为主节点、副本节点、哨兵分别创建独立的LoadBalancer或NodePort服务,无需自行拆分服务。核心是通过Chart内置的参数块分别定义各组件的服务类型。

配置示例(values.yaml)

# 主节点独立LoadBalancer服务,用于外部写入
master:
  service:
    type: LoadBalancer
    # 可选:添加云厂商LB注解,比如AWS NLB
    # annotations:
    #   service.beta.kubernetes.io/aws-load-balancer-type: "nlb"

# 副本节点独立LoadBalancer服务,用于外部读请求(可选)
replica:
  service:
    type: LoadBalancer

# 哨兵独立LoadBalancer服务,用于客户端发现主节点(可选)
sentinel:
  service:
    type: LoadBalancer

部署时直接指定该values文件:

helm install redis-sentinel bitnami/redis-sentinel -f custom-values.yaml

二、解决哨兵返回内部IP的问题

即使给哨兵配置了LB,默认情况下哨兵返回的主节点地址仍是集群内部IP,外部客户端无法直接访问。需要通过extraFlags配置Redis主节点和哨兵的对外宣告IP:

master:
  extraFlags:
    - "--announce-ip=主节点LB的外部公网IP"
    - "--announce-port=6379"

sentinel:
  extraFlags:
    - "--announce-ip=哨兵LB的外部公网IP"
    - "--announce-port=26379"

这样外部客户端连接哨兵后,会获取到主节点的外部IP,直接发起写入请求即可。

三、其他替代方案

  1. NodePort模式:如果集群没有LoadBalancer组件,可将服务类型设为NodePort,并指定固定端口:

    master:
      service:
        type: NodePort
        nodePort: 30001
    

    外部通过集群节点IP:30001访问主节点。

  2. TCP Ingress转发:若已有支持TCP的Ingress Controller(如NGINX Ingress),可配置TCP转发规则指向Redis主节点服务,通过Ingress域名+指定端口访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 02:42:38