Valkey 是一款开源(BSD许可)的高性能键值存储系统,支持缓存、消息队列等多种工作负载,亦可作为主数据库使用。Bitnami Valkey Cluster Helm Chart 用于在 Kubernetes 集群上通过 Helm 包管理器部署 Valkey 集群,实现基于分片(sharding)的分布式部署架构。
Valkey Cluster ***概述
商标说明:本软件包由 Bitnami 打包。所提及的商标分属各自公司所有,使用此类商标不意味着任何关联或背书。
| 特性 | Valkey Helm Chart | Valkey Cluster Helm Chart |
|---|---|---|
| 集群架构 | 基于 Sentinel 的主从(primary-replica)集群 | 基于分片的 Valkey Cluster |
| 数据库支持 | 多数据库 | 仅支持单数据库(适合大型数据集) |
| 写入节点 | 单主节点(单点写入) | 多主节点(分片写入) |
| 典型拓扑 | !Valkey 拓扑 | !Valkey Cluster 拓扑 |
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/valkey-cluster
生产环境建议:如需用于生产环境,推荐使用 VMware Tanzu Application Catalog(Bitnami 商业版应用目录)。
自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像目录,推出Bitnami Secure Images 计划,提供经过安全加固的精选容器镜像。过渡期变更如下:
更多详情见 Bitnami Secure Images 公告。
使用默认配置部署 Valkey Cluster:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/valkey-cluster
注意:如需指定私有仓库,需替换
REGISTRY_NAME和REPOSITORY_NAME。例如 Bitnami 公共仓库为REGISTRY_NAME=registry-1.docker.io,REPOSITORY_NAME=bitnamicharts。
通过 --set 参数覆盖默认配置,例如指定集群节点数和副本数:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/valkey-cluster \ --set cluster.nodes=9 \ --set cluster.replicas=2 \ --set password=StrongPassword123
若因集群初始化耗时过长导致超时,可增加超时时间:
consolehelm install --timeout 600s my-release oci://registry-1.docker.io/bitnamicharts/valkey-cluster
| 参数路径 | 描述 | 默认值 |
|---|---|---|
cluster.nodes | 集群总节点数(计算公式:nodes = 主节点数 + 主节点数 × 副本数) | 6 |
cluster.replicas | 每个主节点的副本数 | 1 |
cluster.init | 是否初始化集群(首次安装需设为 true,升级时建议设为 false) | true |
password | Valkey 认证密码(为空时自动生成,可通过 existingSecret 指定密钥) | "" |
existingSecret | 存储密码的现有 Secret 名称 | "" |
resourcesPreset | 资源预设模板(如 small、medium,生产环境建议自定义 resources) | "" |
resources.requests.cpu | CPU 请求 | 100m |
resources.requests.memory | 内存请求 | 256Mi |
resources.limits.cpu | CPU 限制 | 500m |
resources.limits.memory | 内存限制 | 256Mi |
metrics.enabled | 是否启用 Prometheus 指标导出 | false |
cluster.externalAccess.enabled | 是否允许集群外部访问(需配合 Load*** 服务) | false |
默认集群仅允许 Kubernetes 集群内访问,如需外部访问(如本地 valkey-cli 连接):
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/valkey-cluster \ --set cluster.externalAccess.enabled=true \ --set cluster.externalAccess.service.type=Load***
consolekubectl get svc -l app.kubernetes.io/instance=my-release
cluster.externalAccess.service.load***IP 数组:consolehelm upgrade my-release oci://registry-1.docker.io/bitnamicharts/valkey-cluster \ --set cluster.externalAccess.enabled=true \ --set cluster.externalAccess.service.load***IP[0]=<ip-0> \ --set cluster.externalAccess.service.load***IP[1]=<ip-1> \ --set cluster.externalAccess.service.load***IP[2]=<ip-2> \ --set cluster.externalAccess.service.load***IP[3]=<ip-3> \ --set cluster.externalAccess.service.load***IP[4]=<ip-4> \ --set cluster.externalAccess.service.load***IP[5]=<ip-5> \ --set cluster.init=false
cluster.nodes 并指定密码:consolehelm upgrade --timeout 600s my-release \ --set password=${VALKEY_PASSWORD} \ --set cluster.nodes=9 \ --set cluster.update.addNodes=true \ --set cluster.update.currentNumberOfNodes=6 \ oci://registry-1.docker.io/bitnamicharts/valkey-cluster
说明:
cluster.update.currentNumberOfNodes为当前节点数,cluster.update.addNodes=true触发添加节点的 Job。
cluster.replicas:consolehelm upgrade --timeout 600s my-release \ --set password=${VALKEY_PASSWORD} \ --set cluster.nodes=6 \ --set cluster.init=false \ oci://registry-1.docker.io/bitnamicharts/valkey-cluster
CLUSTER FORGET 命令移除失效节点 ID:console# 获取失效节点 ID valkey-cli -a $VALKEY_PASSWORD CLUSTER NODES | grep fail # 在每个节点执行(替换 NODE_ID) valkey-cli -a $VALKEY_PASSWORD CLUSTER FORGET <NODE_ID>
启用 metrics 采集并集成 Prometheus:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/valkey-cluster \ --set metrics.enabled=true \ --set metrics.serviceMonitor.enabled=true # 如需 Prometheus Operator 集成
prometheus.io/scrape: "true" 注解,支持 Prometheus 自动发现password 时,密码存储在 Secret <release-name>-valkey-cluster 中,可通过以下命令获取:consolekubectl get secret my-release-valkey-cluster -o jsonpath="{.data.password}" | base64 -d
--set password=xxx 设置,或通过 existingSecret 引用现有 Secret。consolekubectl create secret generic valkey-tls --from-file=cert.pem --from-file=key.pem --from-file=ca.pem
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/valkey-cluster \ --set tls.enabled=true \ --set tls.existingSecret=valkey-tls \ --set tls.certFilename=cert.pem \ --set tls.certKeyFilename=key.pem \ --set tls.certCAFilename=ca.pem
/bitnami 目录(含 nodes.conf 和数据),避免节点重启后集群元数据丢失。persistence.enabled=false,此时使用 emptyDir 存储(节点重启后集群信息丢失,可能导致节点脱离集群)。Valkey Cluster 数据备份需通过 Velero 工具备份 PersistentVolume:
consolevelero backup create valkey-backup --include-resources=pvc,pv --selector app.kubernetes.io/instance=my-release
consolevelero restore create --from-backup valkey-backup
Valkey 可能需要调整主机内核参数以优化性能:
通过 initContainer 配置(推荐生产环境):
yamlsysctlImage: enabled: true mountHostSys: true command: - /bin/sh - -c - |- sysctl -w net.core.somaxconn=*** echo never > /host-sys/kernel/mm/transparent_hugepage/enabled
或通过 podSecurityContext.sysctls(Kubernetes 1.12+):
yamlpodSecurityContext: sysctls: - name: net.core.somaxconn value: "***"
docker.io/bitnamilegacy,不再更新,生产环境建议迁移至 Bitnami Secure Images。7.2.4-debian-11-r0),避免镜像更新导致部署变更。resources,避免使用 resourcesPreset(可能无法适配实际需求)。cluster.replicas,避免同时移除主节点及其所有副本。来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429