Bitnami提供的Apache ZooKeeper Helm图表,用于在Kubernetes环境中简化分布式协调服务的部署与管理。
下载次数: 6756775
类型:
bitnamicharts/zookeeperApache ZooKeeper 是一个分布式协调服务,为分布式应用提供可靠的集中式配置数据存储、服务注册与发现、分布式锁及同步机制。Bitnami 提供的 Apache ZooKeeper 镜像基于最佳实践构建,简化了在 Kubernetes 或 Docker 环境中的部署流程,包含安全加固配置、持久化存储支持及监控集成能力,适用于开发和生产环境。
zoo.cfg 配置文件、环境变量调优(如日志级别、JVM 参数)及外部 ConfigMap 挂载。autopurge.snapRetainCount)和清理间隔(autopurge.purgeInterval)。ZOO_LOG_LEVEL)配置日志级别,避免探针连接导致的日志噪音。自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像目录,推出 Bitnami Secure Images 计划,专注于提供安全加固的镜像。过渡期变更如下:
docker.io/bitnami 迁移至 docker.io/bitnamilegacy 仓库,且不再接收更新。详情参见 Bitnami Secure Images 公告。
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/zookeeper
指定 Helm 仓库及发布名称:
consolehelm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/zookeeper
替换
REGISTRY_NAME和REPOSITORY_NAME(Bitnami 官方仓库为registry-1.docker.io和bitnamicharts)。
验证部署:
consolehelm list # 查看所有 Helm 发布 kubectl get pods # 确认 ZooKeeper Pod 运行状态
适用于开发环境,无需身份验证:
bashdocker run -d \ --name zookeeper \ -p 2181:2181 \ # 客户端端口 -p 8080:8080 \ # Admin Server 端口 -e ALLOW_ANONYMOUS_LOGIN=yes \ # 允许***登录(开发环境) -v zookeeper-data:/bitnami/zookeeper \ # 持久化数据卷 bitnami/zookeeper:latest
3 节点集群示例(docker-compose.yml):
yamlversion: '3' services: zookeeper-1: image: bitnami/zookeeper:latest container_name: zookeeper-1 ports: - "2181:2181" - "8080:8080" environment: - ZOO_SERVER_ID=1 - ZOO_SERVERS=zookeeper-1:2888:3888;zookeeper-2:2888:3888;zookeeper-3:2888:3888 - ALLOW_ANONYMOUS_LOGIN=yes volumes: - zookeeper-data-1:/bitnami/zookeeper zookeeper-2: image: bitnami/zookeeper:latest container_name: zookeeper-2 ports: - "2182:2181" - "8081:8080" environment: - ZOO_SERVER_ID=2 - ZOO_SERVERS=zookeeper-1:2888:3888;zookeeper-2:2888:3888;zookeeper-3:2888:3888 - ALLOW_ANONYMOUS_LOGIN=yes volumes: - zookeeper-data-2:/bitnami/zookeeper zookeeper-3: image: bitnami/zookeeper:latest container_name: zookeeper-3 ports: - "2183:2181" - "8082:8080" environment: - ZOO_SERVER_ID=3 - ZOO_SERVERS=zookeeper-1:2888:3888;zookeeper-2:2888:3888;zookeeper-3:2888:3888 - ALLOW_ANONYMOUS_LOGIN=yes volumes: - zookeeper-data-3:/bitnami/zookeeper volumes: zookeeper-data-1: zookeeper-data-2: zookeeper-data-3:
通过 resources 参数限制 CPU/内存资源(Helm 配置):
yamlresources: requests: cpu: 200m memory: 256Mi limits: cpu: 1000m memory: 1Gi
生产环境建议根据实际负载调整,避免资源竞争。
启用客户端身份验证(Helm values.yaml):
yamlauth: client: enabled: true clientUser: zk-client clientPassword: secure-client-pass serverUsers: zk-server1,zk-server2 serverPasswords: secure-server1-pass,secure-server2-pass
生产环境建议使用
existingSecret引用预先创建的 Secret,避免明文密码。
启用 Prometheus 指标采集:
yamlmetrics: enabled: true # 暴露指标端点 serviceMonitor: enabled: true # 创建 ServiceMonitor 供 Prometheus Operator 发现
指标将通过 http://<pod-ip>:9141/metrics 暴露,包含连接数、事务数、快照数等核心指标。
默认日志级别为 ERROR(减少探针日志噪音)。如需调整为 INFO(生产环境建议):
mntr 探针:
yamlmetrics: enabled: true
yamllivenessProbe: enabled: false readinessProbe: enabled: false customLivenessProbe: exec: command: ['/bin/bash', '-c', 'curl -s -m 2 http://localhost:8080/commands/ruok | grep ruok'] initialDelaySeconds: 30 periodSeconds: 10 customReadinessProbe: exec: command: ['/bin/bash', '-c', 'curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null'] initialDelaySeconds: 5 periodSeconds: 10
yamllogLevel: INFO
容器内数据存储路径为 /bitnami/zookeeper,包含快照、事务日志及配置文件。通过 PVC 持久化:
yamlpersistence: enabled: true storageClass: "standard" # 指定存储类 size: 10Gi # 存储容量
将事务日志存储在独立卷(提升性能):
yamldataLogDir: /bitnami/zookeeper/logs # 日志路径 persistence: enabled: true dataLog: enabled: true # 为日志创建独立 PVC storageClass: "high-iops" # 建议使用高性能存储(如 SSD) size: 5Gi
使用 Velero 备份 ZooKeeper 数据:
bashvelero backup create zookeeper-backup \ --include-resources pvc,pv \ # 备份 PVC 和 PV --selector app.kubernetes.io/name=zookeeper # 选择 ZooKeeper 资源
bashvelero restore create --from-backup zookeeper-backup
| 参数名 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局 Docker 镜像仓库 | "" |
global.imagePullSecrets | 镜像拉取密钥列表 | [] |
global.defaultStorageClass | 全局默认存储类 | "" |
global.security.allowInsecureImages | 是否允许不安全镜像(跳过校验) | false |
global.compatibility.openshift.adaptSecurityContext | 是否适配 OpenShift 安全上下文 | auto |
| 参数名 | 描述 | 默认值 |
|---|---|---|
nameOverride | 覆盖发布名称前缀 | "" |
fullnameOverride | 完全覆盖发布名称 | "" |
clusterDomain | Kubernetes 集群域名 | cluster.local |
extraDeploy | 额外部署的 Kubernetes 资源(模板格式) | [] |
diagnosticMode.enabled | 启用诊断模式(禁用探针,覆盖命令) | false |
| 参数名 | 描述 | 默认值 |
|---|---|---|
image.registry | 镜像仓库 | REGISTRY_NAME |
image.repository | 镜像名称 | REPOSITORY_NAME/zookeeper |
image.pullPolicy | 镜像拉取策略 | IfNotPresent |
tickTime | 心跳基本时间单位(毫秒) | 2000 |
initLimit | 集群初始化超时(tick 数) | 10 |
syncLimit | leader 同步超时(tick 数) | 5 |
heapSize | JVM 堆大小(MB) | 1024 |
autopurge.snapRetainCount | 保留快照数量 | 10 |
autopurge.purgeInterval | 自动清理间隔(小时) | 1 |
fourlwCommandsWhitelist | 允许的四字命令列表 | srvr, mntr, ruok |
| 参数名 | 描述 | 默认值 |
|---|---|---|
auth.client.enabled | 启用客户端身份验证 | false |
auth.client.clientUser | 客户端认证用户名 | "" |
auth.quorum.enabled | 启用仲裁节点身份验证 | false |
auth.quorum.learnerUser | 仲裁学习者用户名 | "" |
10.6)将迁移至 bitnamilegacy 仓库,不再更新,需及时升级。ALLOW_ANONYMOUS_LOGIN,启用身份验证并使用 existingSecret 管理密码。以下是 bitnamicharts/zookeeper 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务