本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Etcd 是一款分布式键值存储工具,专为跨集群安全存储数据设计。凭借其可靠性、容错能力和易用性,Etcd 在生产环境中被广泛应用。
helm install my-release oci://registry-1.docker.io/bitnamicharts/etcd
如需在生产环境使用 Etcd,可尝试 VMware Tanzu Application Catalog(Bitnami 目录的商业版)。
自 2025 年 8 月 28 日起,Bitnami 将升级其公共软件目录,通过新的 Bitnami Secure Images 计划 提供精选的强化安全镜像。此次变更包括:
这些变更旨在通过推广软件供应链完整性最佳实践和最新部署方式,提升所有 Bitnami 用户的安全态势。详情见 Bitnami Secure Images 公告。
本 Chart 使用 Helm 包管理器在 Kubernetes 集群上部署 etcd。
使用发布名称 my-release 安装 Chart:
helm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/etcd
注意:需将占位符
REGISTRY_NAME和REPOSITORY_NAME替换为实际的 Helm 仓库地址。例如,Bitnami 仓库需使用REGISTRY_NAME=registry-1.docker.io和REPOSITORY_NAME=bitnamicharts。
上述命令将以默认配置在 Kubernetes 集群部署 Etcd。参数 部分列出了安装时可配置的选项。
提示:使用
helm list查看所有发布。
Bitnami Chart 允许为部署中的所有容器设置资源请求(requests)和限制(limits),相关配置位于 resources 字段(见参数表)。生产环境必须设置资源请求,并根据实际场景调整。
为简化配置,Chart 提供 resourcesPreset 参数,可自动按预设值配置 resources。预设定义见 bitnami/common Chart。但生产环境不建议直接使用 resourcesPreset,需根据具体需求调整。更多容器资源管理信息见 Kubernetes 官方文档。
生产环境强烈建议使用不可变标签,避免因标签指向镜像更新导致部署意外变更。Bitnami 会在主容器版本更新、重大变更或发现严重漏洞时,发布新的 Chart 以更新容器镜像。
设置 metrics.enabled=true 可启用 Etcd 原生 Prometheus 指标暴露,容器和 Service(若 metrics.useSeparateEndpoint=true)将开放指标端口,并添加 Prometheus 自动发现注解。
需已安装 Prometheus 或 Prometheus Operator。可通过 Bitnami Prometheus Helm Chart 或 Bitnami Kube Prometheus Helm Chart 快速部署。
设置 *.metrics.podMonitor.enabled=true 可部署 PodMonitor 对象以集成 Prometheus Operator。需确保集群已安装 Prometheus Operator 的 CRD,否则会报错:
no matches for kind "PodMonitor" in version "monitoring.coreos.com/v1"
可通过 Bitnami Kube Prometheus Helm Chart 安装所需 CRD 和 Prometheus Operator。
Bitnami Chart 在首次启动时配置凭证,后续修改密钥或凭证需手动操作:
SECRET_NAME 和 PASSWORD 占位符):kubectl create secret generic SECRET_NAME --from-literal=etcd-root-password=PASSWORD --dry-run -o yaml | kubectl apply -f -
Bitnami Etcd Chart 可快速搭建可扩展、支持灾难恢复的 Etcd 集群,通过环境变量配置静态发现实现集群引导。基于初始副本数和无头服务(headless service)添加的 DNS A 记录,Chart 可自动计算每个节点的对等 URL。
Chart 利用 Kubernetes 特性确保集群引导成功:
更多信息见 etcd 发现机制、Pod 管理策略 和 未就绪 Pod DNS 记录。
以下是 3 副本 Etcd 集群的环境配置示例:
| 节点 | 环境变量 | 值 |
|---|---|---|
| 0 | ETCD_NAME | etcd-0 |
| 0 | ETCD_INITIAL_ADVERTISE_PEER_URLS | <[***]> |
| 1 | ETCD_NAME | etcd-1 |
| 1 | ETCD_INITIAL_ADVERTISE_PEER_URLS | <[***]> |
| 2 | ETCD_NAME | etcd-2 |
| 2 | ETCD_INITIAL_ADVERTISE_PEER_URLS | <[***]> |
| 所有 | ETCD_INITIAL_CLUSTER_TOKEN | etcd-cluster-k8s |
| 所有 | ETCD_INITIAL_CLUSTER | etcd-0=<[]>,etcd-1=<[]>,etcd-2=<[***]> |
就绪和存活探针默认延迟 60 秒,确保副本有时间启动并相互发现。之后,通过 etcdctl endpoint health 定期检查副本健康状态。
集群扩缩容时,Chart 通过 Etcd 重配置操作添加/移除节点:
etcdctl member remove,并将结果存储在 PV 中。手动删除 Pod 或 Kubernetes 重调度时也会触发此钩子,实现无人工干预的扩缩容。示例流程:
etcdctl member add 重新加入集群,恢复至 3 副本。若钩子执行失败,初始化逻辑会检查 PV 中存储的 etcdctl member remove 输出,通过 etcdctl member update 重新添加节点。此时集群不会自动扩缩容,其他节点可能报错:
E | rafthttp: failed to dial XXXXXXXX on stream Message (peer XXXXXXXX failed to find local node YYYYYYYYY)
更多信息见 etcd 运行时配置 和 Kubernetes 节点排空。
更新 Etcd StatefulSet(如通过 helm upgrade 更新 Chart 版本)时,需按 StatefulSet 更新策略替换 Pod。Chart 默认使用“RollingUpdate”策略,按 Pod 序号从大到小依次更新,等待当前 Pod 就绪后再更新前一个。更多信息见 StatefulSet 更新策略。
若超过 (N-1)/2 节点故障且“pre-stop”钩子未移除故障节点,集群将失去法定人数(quorum),无法达成共识或接受更新,需从快照恢复(所有节点必须使用同一快照)。
Bitnami Etcd Chart 可配置 Kubernetes CronJob 定期创建数据快照并存储在 RWX 卷中。集群故障时,Pod 将自动尝试使用最新快照恢复。启用方法。
Chart 默认配置“软”Pod 反亲和性(Pod AntiAffinity),降低集群整体故障风险。更多信息见 etcd 恢复、Kubernetes CronJob 和 Pod 亲和性与反亲和性。
可配置基于角色的访问控制(RBAC)和 TLS 加密增强安全性。
设置以下参数启用 RBAC:
auth.rbac.create=true auth.rbac.rootPassword=ETCD_ROOT_PASSWORD
将创建拥有全部权限的 root 用户及对应角色,其他用户默认使用无权限的 guest 角色。
设置以下参数启用节点间安全通信:
auth.peer.secureTransport=true auth.peer.useAutoTLS=true
创建包含证书、密钥和 CA 的密钥(Secret),并设置以下参数启用客户端与服务端的安全通信:
auth.client.secureTransport=true auth.client.enableAuthentication=true auth.client.existingSecret=etcd-client-certs
更多信息见 etcd 安全模型 和 生成自签名证书。
通过以下参数启用自动灾难恢复(定期快照 + 自动恢复):
persistence.enabled=true disasterRecovery.enabled=true disasterRecovery.pvc.size=2Gi disasterRecovery.pvc.storageClassName=nfs
若同时设置 startFromSnapshot.* 参数,快照将存储在 startFromSnapshot.existingClaim 指定的 PVC 中。
注意:灾难恢复功能需 RWX 访问模式的卷。
两种备份恢复方式:
etcdctl 创建源集群快照。startFromSnapshot.existingClaim 和 startFromSnapshot.snapshotFilename 指定快照 PVC 和文件名,恢复数据。注意:新部署需使用与源集群相同的凭证。
通过 Velero 备份 PV 并在新集群恢复,适用于:
步骤:
集群内暴露指标的方式:
podAnnotations: prometheus.io/scrape: "true" prometheus.io/path: "/metrics/cluster" prometheus.io/port: "9000"
集群外可通过 Kubernetes API Proxy 访问指标端点。
两种方式自定义配置:
extraEnvVars 设置额外环境变量,或通过 extraEnvVarsCM/extraEnvVarsSecret 引用 ConfigMap/Secret:extraEnvVars: - name: ETCD_AUTO_COMPACTION_RETENTION value: "0" - name: ETCD_HEARTBEAT_INTERVAL value: "150"
etcd.conf.yml:通过 configuration 参数定义配置,或使用 existingConfigmap 引用现有 ConfigMap。Etcd 保留键空间完整历史,需定期压缩以避免性能下降和存储耗尽。压缩会删除指定修订版前的键信息,释放存储空间。
autoCompactionMode:默认 periodic,可选 periodic(基于时间,如“5m”)或 revision(基于修订版号)。autoCompactionRetention:默认 0(禁用),压缩保留时间(如“10m”)。启用命令:
autoCompactionMode=periodic autoCompactionRetention=10m
通过 sidecars 添加边车容器(如监控 exporter):
sidecars: - name: 镜像名称 image: 镜像地址 imagePullPolicy: Always ports: - name: 端口名 containerPort: 1234
通过 initContainers 添加初始化容器:
initContainers: - name: 镜像名称 image: 镜像地址 imagePullPolicy: Always ports: - name: 端口名 containerPort: 1234
通过 extraDeploy 参数部署额外 Kubernetes 对象(如 ConfigMap),直接定义完整对象规格。
通过 affinity 参数自定义亲和性,或使用 bitnami/common Chart 提供的预设(podAffinityPreset、podAntiAffinityPreset、nodeAffinityPreset)。更多信息见 Kubernetes 亲和性文档。
Bitnami Etcd 镜像将数据存储在容器的 /bitnami/etcd 路径,通过 Persistent Volume Claim(PVC)实现持久化。
注意:本文档因 DockerHub 长度限制已精简,完整内容见 GitHub。
免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429