如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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 计划,提供经过安全加固的精选容器镜像。过渡期变更如下:
更多详情见 https://github.com/bitnami/containers/issues/83267%E3%80%82
标准安装
使用默认配置部署 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 |
1. 外部访问配置
默认集群仅允许 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=LoadBalancer
consolekubectl get svc -l app.kubernetes.io/instance=my-release
cluster.externalAccess.service.loadBalancerIP 数组:consolehelm upgrade my-release oci://registry-1.docker.io/bitnamicharts/valkey-cluster \ --set cluster.externalAccess.enabled=true \ --set cluster.externalAccess.service.loadBalancerIP[0]=<ip-0> \ --set cluster.externalAccess.service.loadBalancerIP[1]=<ip-1> \ --set cluster.externalAccess.service.loadBalancerIP[2]=<ip-2> \ --set cluster.externalAccess.service.loadBalancerIP[3]=<ip-3> \ --set cluster.externalAccess.service.loadBalancerIP[4]=<ip-4> \ --set cluster.externalAccess.service.loadBalancerIP[5]=<ip-5> \ --set cluster.init=false
2. 集群扩缩容
扩容集群(添加节点)
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>
3. Prometheus 监控集成
启用 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 自动发现4. 安全配置
密码认证
password 时,密码存储在 Secret <release-name>-valkey-cluster 中,可通过以下命令获取:consolekubectl get secret my-release-valkey-cluster -o jsonpath="{.data.password}" | base64 -d
--set password=xxx 设置,或通过 existingSecret 引用现有 Secret。TLS 加密
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
5. 持久化配置
/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=10000 echo never > /host-sys/kernel/mm/transparent_hugepage/enabled
或通过 podSecurityContext.sysctls(Kubernetes 1.12+):
yamlpodSecurityContext: sysctls: - name: net.core.somaxconn value: "10000"
docker.io/bitnamilegacy,不再更新,生产环境建议迁移至 Bitnami Secure Images。7.2.4-debian-11-r0),避免镜像更新导致部署变更。resources,避免使用 resourcesPreset(可能无法适配实际需求)。cluster.replicas,避免同时移除主节点及其所有副本。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务