
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
registry.k8s.io/etcd 是 Kubernetes 官方维护的 etcd 容器镜像。etcd 是一个分布式、高可用的键值存储系统,基于 Raft 一致性算法实现,主要用于存储分布式系统的关键数据(如配置信息、集群状态等)。该镜像专为 Kubernetes 集群设计,作为其核心组件之一,负责存储集群的状态数据(如 Pod 配置、服务信息、节点状态等),同时也可独立部署用于其他分布式系统的配置管理或服务发现场景。
/kube-system/config)。pods、services、namespaces 等资源的元数据)。通过以下命令拉取最新版本镜像:
bashdocker pull registry.k8s.io/etcd:latest
如需指定版本(如 3.5.10),可替换标签:
bashdocker pull registry.k8s.io/etcd:3.5.10
4.2.1 单节点模式(开发/测试用)
单节点模式适合本地开发或测试,无需集群配置:
bashdocker run -d \ --name etcd-single \ --publish 2379:2379 \ # 客户端通信端口 --publish 2380:2380 \ # 集群间通信端口 --volume etcd-data:/var/lib/etcd \ # 数据持久化目录 registry.k8s.io/etcd:latest \ etcd \ --name=etcd-node-1 \ # 节点名称 --data-dir=/var/lib/etcd \ # 数据存储目录 --listen-client-urls=http://0.0.0.0:2379 \ # 监听客户端请求的地址 --advertise-client-urls=http://localhost:2379 \ # 对外暴露的客户端地址(供其他节点访问) --listen-peer-urls=http://0.0.0.0:2380 \ # 监听集群节点间通信的地址 --initial-advertise-peer-urls=http://localhost:2380 \ # 对外暴露的集群通信地址 --initial-cluster=etcd-node-1=http://localhost:2380 \ # 初始集群配置(单节点仅包含自身) --initial-cluster-token=etcd-cluster-token \ # 集群标识 token(集群内所有节点需一致) --initial-cluster-state=new # 集群初始化状态(new 表示新建集群)
验证运行状态:
bash# 进入容器 docker exec -it etcd-single sh # 查看集群健康状态 etcdctl endpoint health --endpoints=http://localhost:2379 # 写入测试数据 etcdctl put /test/key "hello etcd" # 读取测试数据 etcdctl get /test/key
4.2.2 集群模式(生产用)
生产环境需部署多节点集群(至少 3 节点,确保高可用)。以下为 3 节点集群示例(假设节点 IP 分别为 192.168.1.101、192.168.1.102、192.168.1.103):
节点 1(192.168.1.101)启动命令:
bashdocker run -d \ --name etcd-node-1 \ --publish 2379:2379 \ --publish 2380:2380 \ --volume etcd-data-1:/var/lib/etcd \ registry.k8s.io/etcd:latest \ etcd \ --name=etcd-node-1 \ --data-dir=/var/lib/etcd \ --listen-client-urls=http://0.0.0.0:2379 \ --advertise-client-urls=http://192.168.1.101:2379 \ --listen-peer-urls=http://0.0.0.0:2380 \ --initial-advertise-peer-urls=http://192.168.1.101:2380 \ --initial-cluster=etcd-node-1=http://192.168.1.101:2380,etcd-node-2=http://192.168.1.102:2380,etcd-node-3=http://192.168.1.103:2380 \ --initial-cluster-token=etcd-cluster-token \ --initial-cluster-state=new
节点 2(192.168.1.102)启动命令:
bashdocker run -d \ --name etcd-node-2 \ --publish 2379:2379 \ --publish 2380:2380 \ --volume etcd-data-2:/var/lib/etcd \ registry.k8s.io/etcd:latest \ etcd \ --name=etcd-node-2 \ --data-dir=/var/lib/etcd \ --listen-client-urls=http://0.0.0.0:2379 \ --advertise-client-urls=http://192.168.1.102:2379 \ --listen-peer-urls=http://0.0.0.0:2380 \ --initial-advertise-peer-urls=http://192.168.1.102:2380 \ --initial-cluster=etcd-node-1=http://192.168.1.101:2380,etcd-node-2=http://192.168.1.102:2380,etcd-node-3=http://192.168.1.103:2380 \ --initial-cluster-token=etcd-cluster-token \ --initial-cluster-state=new
节点 3(192.168.1.103)启动命令:
bashdocker run -d \ --name etcd-node-3 \ --publish 2379:2379 \ --publish 2380:2380 \ --volume etcd-data-3:/var/lib/etcd \ registry.k8s.io/etcd:latest \ etcd \ --name=etcd-node-3 \ --data-dir=/var/lib/etcd \ --listen-client-urls=http://0.0.0.0:2379 \ --advertise-client-urls=http://192.168.1.103:2379 \ --listen-peer-urls=http://0.0.0.0:2380 \ --initial-advertise-peer-urls=http://192.168.1.103:2380 \ --initial-cluster=etcd-node-1=http://192.168.1.101:2380,etcd-node-2=http://192.168.1.102:2380,etcd-node-3=http://192.168.1.103:2380 \ --initial-cluster-token=etcd-cluster-token \ --initial-cluster-state=new
验证集群状态:
bash# 任意节点执行,检查集群成员 etcdctl member list --endpoints=http://192.168.1.101:2379,http://192.168.1.102:2379,http://192.168.1.103:2379 # 检查集群健康状态 etcdctl endpoint health --endpoints=http://192.168.1.101:2379,http://192.168.1.102:2379,http://192.168.1.103:2379
etcd 支持通过环境变量配置核心参数,常用变量如下:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
ETCD_NAME | 节点名称(集群内唯一) | default |
ETCD_DATA_DIR | 数据存储目录 | ./default.etcd |
ETCD_LISTEN_CLIENT_URLS | 监听客户端请求的地址(支持 HTTP/HTTPS) | http://127.0.0.1:2379 |
ETCD_ADVERTISE_CLIENT_URLS | 对外暴露的客户端地址(供其他节点/客户端访问) | http://127.0.0.1:2379 |
ETCD_LISTEN_PEER_URLS | 监听集群节点间通信的地址 | http://127.0.0.1:2380 |
ETCD_INITIAL_ADVERTISE_PEER_URLS | 对外暴露的集群通信地址(供其他节点访问) | http://127.0.0.1:2380 |
ETCD_INITIAL_CLUSTER | 初始集群配置,格式为 <节点名1>=<节点1通信地址>,<节点名2>=<节点2通信地址> | default=http://127.0.0.1:2380 |
ETCD_INITIAL_CLUSTER_TOKEN | 集群标识 token(所有节点必须一致,用于区分不同集群) | etcd-cluster |
ETCD_INITIAL_CLUSTER_STATE | 集群初始化状态(new 表示新建集群,existing 表示加入现有集群) | new |
除环境变量外,etcd 支持通过命令行参数配置,常用参数与环境变量对应关系如下:
| 命令行参数 | 对应环境变量 | 描述 |
|---|---|---|
--name | ETCD_NAME | 节点名称 |
--data-dir | ETCD_DATA_DIR | 数据存储目录 |
--listen-client-urls | ETCD_LISTEN_CLIENT_URLS | 监听客户端请求的地址 |
--advertise-client-urls | ETCD_ADVERTISE_CLIENT_URLS | 对外暴露的客户端地址 |
--listen-peer-urls | ETCD_LISTEN_PEER_URLS | 监听集群节点间通信的地址 |
--initial-advertise-peer-urls | ETCD_INITIAL_ADVERTISE_PEER_URLS | 对外暴露的集群通信地址 |
--initial-cluster | ETCD_INITIAL_CLUSTER | 初始集群配置 |
--initial-cluster-token | ETCD_INITIAL_CLUSTER_TOKEN | 集群标识 token |
--initial-cluster-state | ETCD_INITIAL_CLUSTER_STATE | 集群初始化状态 |
docker-compose.yml)yamlversion: '3' services: etcd: image: registry.k8s.io/etcd:latest container_name: etcd-single ports: - "2379:2379" # 客户端端口 - "2380:2380" # 集群通信端口 volumes: - etcd-data:/var/lib/etcd # 数据持久化 environment: - ETCD_NAME=etcd-node-1 - ETCD_DATA_DIR=/var/lib/etcd - ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 - ETCD_ADVERTISE_CLIENT_URLS=http://localhost:2379 - ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://localhost:2380 - ETCD_INITIAL_CLUSTER=etcd-node-1=http://localhost:2380 - ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster-token - ETCD_INITIAL_CLUSTER_STATE=new volumes: etcd-data: # 声明持久化卷
启动命令:docker-compose up -d
docker-compose.yml)yamlversion: '3' services: etcd-node-1: image: registry.k8s.io/etcd:latest container_name: etcd-node-1 ports: - "2379:2379" - "2380:2380" volumes: - etcd-data-1:/var/lib/etcd environment: - ETCD_NAME=etcd-node-1 - ETCD_DATA_DIR=/var/lib/etcd - ETCD_LISTEN_CLIENT_URLS=[***] - ETCD_ADVERTISE_CLIENT_URLS=[***] - ETCD_LISTEN_PEER_URLS=[***] - ETCD_INITIAL_ADVERTISE_PEER_URLS=[***] - ETCD_INITIAL_CLUSTER=etcd-node-1=[***] - ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster-token - ETCD_INITIAL_CLUSTER_STATE=new networks: - etcd-cluster-net etcd-node-2: image: registry.k8s.io/etcd:latest container_name: etcd-node-2 ports: - "2381:2379" # 避免端口冲突,映射到主机 2381 端口 - "2382:2380" volumes: - etcd-data-2:/var/lib/etcd environment: - ETCD_NAME=etcd-node-2 - ETCD_DATA_DIR=/var/lib/etcd - ETCD_LISTEN_CLIENT_URLS=[***]
以下是 dyrnq/etcd 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务