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

通过Helm Chart依赖部署单实例Redis出现多副本问题如何解决?

现有配置错误点
  • 默认依赖的Bitnami Redis Chart 15.x版本默认启用replication主从架构,会自动创建1个主节点StatefulSet + 3个副本节点StatefulSet,和你单实例的需求不符。
  • 你自行定义的Service标签选择器app: redis无法匹配Bitnami Redis Chart生成的Pod标签:Bitnami Chart生成的Pod默认使用标准Kubernetes标签,前缀带你的Helm Release名称,比如你当前实例Release名为myapp,Pod标签为app.kubernetes.io/name: redis、app.kubernetes.io/instance: myapp,导致你创建的redis-svc没有关联后端Pod。
  • Service配置的端口6355和Redis默认服务端口6379不匹配,就算selector正确也无法正常转发请求。
调整方案
  1. 在你自己Chart的values.yaml中添加如下配置,强制Redis Chart启动单实例模式:
redis:
  architecture: standalone

配置后Redis Chart只会部署1个单实例Pod,不会生成副本集相关的StatefulSet资源。
2. 不需要自行定义Service资源,Bitnami Redis Chart部署完成后会自动生成名为{你的Release名称}-redis的ClusterIP Service,默认端口为6379,集群内部直接使用该服务名作为Redis访问地址即可。
如果确实需要自定义Service,将selector修改为匹配Bitnami生成的Pod标签即可:

apiVersion: v1
kind: Service
metadata:
  name: redis-svc
spec:
  ports:
  - port: 6379
    targetPort: 6379
  selector:
    app.kubernetes.io/name: redis
    app.kubernetes.io/instance: myapp # 替换为你实际的Helm Release名称
  1. 执行如下命令更新依赖并重部署:
helm dependency update
helm upgrade {你的Release名称} {你的Chart路径}

部署完成后执行kubectl get statefulset只会看到1个Redis实例相关的资源,符合单实例需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:15:05