PD is the abbreviation for Placement Driver. It manages and schedules TiKV clusters.
PD supports fault-tolerance by embedding etcd.
If you're interested in contributing to PD, see CONTRIBUTING.md. For more contributing information about where to start, click on the contributor icon above.
make
to install PD. pd-server
will be installed in the bin
directory.PD can be configured using command-line flags. For more information, see PD Configuration Flags.
You can run pd-server
directly on your local machine. If you want to connect to PD from outside, you can let PD listen on the host IP.
# Set HOST_IP to the address you want to listen on
export HOST_IP="192.168.199.105"
pd-server --name="pd" \
--data-dir="pd" \
--client-urls="http://${HOST_IP}:2379" \
--peer-urls="http://${HOST_IP}:2380" \
--log-file=pd.log
Using curl
to view PD members:
curl http://${HOST_IP}:2379/pd/api/v1/members
{
"members": [
{
"name": "pd",
"member_id": 15980934438217023866,
"peer_urls": [
"http://192.168.199.105:2380"
],
"client_urls": [
"http://192.168.199.105:2379"
],
"deploy_path": "/",
"binary_version": "v6.1.3",
"git_hash": "1a4e975892512a97fb0e5b45c9be69aa76148793"
}
]
}
You can also use httpie to call the API:
http http://${HOST_IP}:2379/pd/api/v1/members
Access-Control-Allow-Headers: accept, content-type, authorization
Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE
Access-Control-Allow-Origin: *
Content-Length: 1003
Content-Type: application/json; charset=UTF-8
Date: Mon, 12 Dec 2022 13:46:33 GMT
{
"members": [
{
"name": "pd",
"member_id": 15980934438217023866,
"peer_urls": [
"http://192.168.199.105:2380"
],
"client_urls": [
"http://192.168.199.105:2379"
],
"deploy_path": "/",
"binary_version": "v6.1.3",
"git_hash": "1a4e975892512a97fb0e5b45c9be69aa76148793"
}
]
}
You can choose one of the following methods to get a PD image:
Build locally:
docker build -t pingcap/pd .
Pull from Docker Hub:
docker pull pingcap/pd
Then you can run a single node using the following command:
# Set HOST_IP to the address you want to listen on
export HOST_IP="192.168.199.105"
docker run -d -p 2379:2379 -p 2380:2380 --name pd pingcap/pd \
--name="pd" \
--data-dir="pd" \
--client-urls="http://0.0.0.0:2379" \
--advertise-client-urls="http://${HOST_IP}:2379" \
--peer-urls="http://0.0.0.0:2380" \
--advertise-peer-urls="http://${HOST_IP}:2380" \
--log-file=pd.log
As a component of the TiKV project, PD needs to run with TiKV to work. The cluster can also include TiDB to provide SQL services. For detailed instructions to deploy a cluster, refer to Deploy a TiDB Cluster Using TiUP or TiDB on Kubernetes Documentation.