
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
PD(Placement Driver)是TiDB分布式数据库生态的核心组件,全称为Placement Driver。其主要用途是作为TiKV集群的管理和调度中心,负责协调TiKV节点、管理数据分片(Region)的分布与迁移、维护集群元数据,并确保整个TiKV集群的高可用性和性能优化。PD通过嵌入etcd实现分布式协调与容错能力,是TiDB集群正常运行的关键协调组件。
PD适用于TiDB分布式数据库集群环境,具体场景包括:
4.1.1 本地构建镜像
通过源码仓库构建PD镜像:
bashgit clone https://github.com/pingcap/pd.git cd pd docker build -t pingcap/pd .
4.1.2 从Docker Hub拉取镜像
直接拉取官方发布的镜像:
bashdocker pull pingcap/pd
通过Docker快速启动单节点PD服务,适用于测试或开发环境。
4.2.1 部署命令
bash# 设置主机IP(需替换为实际主机IP) export HostIP="192.168.199.105" docker run -d \ -p 2379:2379 \ # 客户端通信端口 -p 2380:2380 \ # 节点间对等通信端口 --name pd \ pingcap/pd \ --cluster-id=1 \ # 集群唯一ID --name="pd" \ # 节点名称 --client-urls="http://0.0.0.0:2379" \ # 容器内客户端监听地址 --advertise-client-urls="http://${HostIP}:2379" \ # 对外暴露的客户端地址 --peer-urls="http://0.0.0.0:2380" \ # 容器内对等节点监听地址 --advertise-peer-urls="http://${HostIP}:2380" # 对外暴露的对等节点地址
4.2.2 验证部署
使用curl或httpie工具检查PD节点状态:
通过curl验证:
bashcurl ${HostIP}:2379/v2/members
预期输出(示例):
json{"members":[{"id":"f62e88a6e81c149","name":"pd","peerURLs":["http://192.168.199.105:2380"],"clientURLs":["http://192.168.199.105:2379"]}]}
通过httpie验证(推荐):
bash# 安装httpie(如未安装):pip install httpie http ${HostIP}:2379/v2/members
预期输出(示例):
httpHTTP/1.1 200 OK Content-Length: 144 Content-Type: application/json Date: Thu, 21 Jul 2016 09:37:12 GMT X-Etcd-Cluster-Id: 33dc747581249309 { "members": [ { "clientURLs": ["http://192.168.199.105:2379"], "id": "f62e88a6e81c149", "name": "pd", "peerURLs": ["http://192.168.199.105:2380"] } ] }
PD作为TiDB集群的核心组件,需与TiDB(SQL层)和TiKV(存储层)协同工作。生产环境中建议部署多节点PD集群以确保高可用。
4.3.1 部署方式
官方文档参考:详细集群部署步骤请参考TiDB官方文档:
关键说明:多节点PD集群需通过--initial-cluster参数指定初始成员列表,各节点通过--advertise-client-urls和--advertise-peer-urls相互发现。
PD服务启动支持多种命令行参数,核心参数说明如下:
| 参数名 | 描述 |
|---|---|
--cluster-id | 集群唯一标识符,同一集群内所有PD节点需使用相同ID。 |
--name | PD节点名称,用于标识集群中的节点。 |
--client-urls | 客户端通信监听地址(容器内),格式为http://<ip>:<port>,通常设为0.0.0.0:2379。 |
--advertise-client-urls | 对外暴露的客户端通信地址,供外部组件(如TiDB、TiKV)连接,需指定主机可访问的IP:端口。 |
--peer-urls | 对等节点通信监听地址(容器内),用于PD节点间通信,通常设为0.0.0.0:2380。 |
--advertise-peer-urls | 对外暴露的对等节点通信地址,供集群内其他PD节点连接。 |
--initial-cluster | 初始集群成员列表,多节点部署时需指定,格式为<name>=http://<advertise-peer-url>,...。 |
--advertise-client-urls和--advertise-peer-urls需配置为集群内其他节点可访问的地址,避免使用localhost或127.0.0.1。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务