PD is configurable using command-line flags and environment variables.

--advertise-client-urls

  • The list of advertise URLs for the client to access PD
  • Default: "${client-urls}"
  • In some situations such as in the Docker or NAT network environment, if a client cannot access PD through the default client URLs listened to by PD, you must manually set the advertise client URLs.
  • For example, the internal IP address of Docker is 172.17.0.1, while the IP address of the host is 192.168.100.113 and the port mapping is set to -p 2379:2379. In this case, you can set --advertise-client-urls to "http://192.168.100.113:2379". The client can find this service through "http://192.168.100.113:2379".

--advertise-peer-urls

  • The list of advertise URLs for other PD nodes (peers) to access a PD node
  • Default: "${peer-urls}"
  • In some situations such as in the Docker or NAT network environment, if the other nodes (peers) cannot access the PD node through the default peer URLs listened to by this PD node, you must manually set the advertise peer URLs.
  • For example, the internal IP address of Docker is 172.17.0.1, while the IP address of the host is 192.168.100.113 and the port mapping is set to -p 2380:2380. In this case, you can set --advertise-peer-urls to "http://192.168.100.113:2380". The other PD nodes can find this service through "http://192.168.100.113:2380".

--client-urls

  • The list of client URLs to be listened to by PD
  • Default: "http://127.0.0.1:2379"
  • When you deploy a cluster, you must specify the IP address of the current host as --client-urls (for example, "http://192.168.100.113:2379"). If the cluster runs on Docker, specify the IP address of Docker as "http://0.0.0.0:2379".

--peer-urls

  • The list of peer URLs to be listened to by a PD node
  • Default: "http://127.0.0.1:2380"
  • When you deploy a cluster, you must specify --peer-urls as the IP address of the current host, such as "http://192.168.100.113:2380". If the cluster runs on Docker, specify the IP address of Docker as "http://0.0.0.0:2380".

--config

  • The configuration file
  • Default: “”
  • If you set the configuration using the command line, the same setting in the configuration file will be overwritten.

--data-dir

  • The path to the data directory
  • Default: “default.${name}”

--initial-cluster

  • The initial cluster configuration for bootstrapping

  • Default: "{name}=http://{advertise-peer-url}"

  • For example, if name is “pd”, and advertise-peer-urls is "http://192.168.100.113:2380", the initial-cluster is "pd=http://192.168.100.113:2380".

  • If you need to start three PD servers, the initial-cluster might be:

    1. pd1=http://192.168.100.113:2380, pd2=http://192.168.100.114:2380, pd3=192.168.100.115:2380

--join

  • Join the cluster dynamically
  • Default: “”
  • If you want to join an existing cluster, you can use --join="${advertise-client-urls}", the advertise-client-url is any existing PD’s, multiply advertise client urls are separated by comma.

-L

  • The log level
  • Default: “info”
  • You can choose from debug, info, warn, error, or fatal.

--log-file

  • The log file
  • Default: “”
  • If this flag is not set, logs will be written to stderr. Otherwise, logs will be stored in the log file which will be automatically rotated every day.

--log-rotate

  • To enable or disable log rotation
  • Default: true
  • When the value is true, follow the [log.file] in PD configuration files.

--name

  • The human-readable unique name for this PD member
  • Default: “pd”
  • If you want to start multiply PDs, you must use different name for each one.

--cacert

  • The file path of CA, used to enable TLS
  • Default: “”

--cert

  • The path of the PEM file including the X509 certificate, used to enable TLS
  • Default: “”

--key

  • The path of the PEM file including the X509 key, used to enable TLS
  • Default: “”

--metrics-addr

  • The address of Prometheus Pushgateway, which does not push data to Prometheus by default.
  • Default: “”