diff --git a/zh/configure-a-tidb-cluster.md b/zh/configure-a-tidb-cluster.md
index 0f59f0357..ed6e5568b 100644
--- a/zh/configure-a-tidb-cluster.md
+++ b/zh/configure-a-tidb-cluster.md
@@ -215,6 +215,30 @@ TiDB Operator 支持为 PD、TiDB、TiKV、TiCDC 挂载多块 PV,可以用于
+
+
+为 PD 微服务挂载 PV,以 `tso` 微服务为例:
+
+> **注意:**
+>
+> PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/dev/pd-microservices)(实验特性)。
+
+```yaml
+ pd:
+ mode: "ms"
+ pdms:
+ - name: "tso"
+ config: |
+ [log.file]
+ filename = "/pdms/log/tso.log"
+ storageVolumes:
+ - name: log
+ storageSize: "10Gi"
+ mountPath: "/pdms/log"
+```
+
+
+
> **注意:**
@@ -251,6 +275,30 @@ spec:
>
> 如果 Kubernetes 集群节点个数少于 3 个,将会导致有一个 PD Pod 处于 Pending 状态,而 TiKV 和 TiDB Pod 也都不会被创建。Kubernetes 集群节点个数少于 3 个时,为了使 TiDB 集群能启动起来,可以将默认部署的 PD Pod 个数减小到 1 个。
+#### 部署 PD 微服务
+
+> **注意:**
+>
+> PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/dev/pd-microservices)(实验特性)。
+
+如果要在集群中开启 PD 微服务,需要在 `${cluster_name}/tidb-cluster.yaml` 文件中配置 `spec.pd.mode` 与 `spec.pdms`:
+
+```yaml
+spec:
+ pd:
+ mode: "ms"
+ pdms:
+ - name: "tso"
+ baseImage: pingcap/pd
+ replicas: 2
+ - name: "scheduling"
+ baseImage: pingcap/pd
+ replicas: 1
+```
+
+- `spec.pd.mode` 用于开启或关闭 PD 微服务。设置为 `"ms"` 时表示开启 PD 微服务,设置为 `""` 或删除该字段时,表示关闭 PD 微服务。
+- `spec.pdms.config` 用于配置 PD 微服务,具体的配置参数与 `spec.pd.config` 相同。要获取 PD 微服务可配置的所有参数,请参考 [PD 配置文件描述](https://docs.pingcap.com/zh/tidb/stable/pd-configuration-file)。
+
#### 部署 TiProxy
部署方法与 PD 一致。此外,还需要修改 `spec.tiproxy` 来手动指定 TiProxy 组件的数量。
@@ -381,6 +429,42 @@ spec:
> - 为了兼容 `helm` 部署,如果你是通过 CR 文件部署 TiDB 集群,即使你不设置 Config 配置,也需要保证 `Config: {}` 的设置,从而避免 PD 组件无法正常启动。
> - PD 部分配置项在首次启动成功后会持久化到 etcd 中且后续将以 etcd 中的配置为准。因此 PD 在首次启动后,这些配置项将无法再通过配置参数来进行修改,而需要使用 SQL、pd-ctl 或 PD server API 来动态进行修改。目前,[在线修改 PD 配置](https://docs.pingcap.com/zh/tidb/stable/dynamic-config#在线修改-pd-配置)文档中所列的配置项中,除 `log.level` 外,其他配置项在 PD 首次启动之后均不再支持通过配置参数进行修改。
+##### 配置 PD 微服务
+
+> **注意:**
+>
+> PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/dev/pd-microservices)(实验特性)。
+
+你可以通过 TidbCluster CR 的 `spec.pd.mode` 与 `spec.pdms` 来配置 PD 微服务参数。目前 PD 支持 `tso` 和 `scheduling` 这两个微服务,配置示例如下:
+
+```yaml
+spec:
+ pd:
+ mode: "ms"
+ pdms:
+ - name: "tso"
+ baseImage: pingcap/pd
+ replicas: 2
+ config: |
+ [log.file]
+ filename = "/pdms/log/tso.log"
+ - name: "scheduling"
+ baseImage: pingcap/pd
+ replicas: 1
+ config: |
+ [log.file]
+ filename = "/pdms/log/scheduling.log"
+```
+
+其中,`spec.pdms` 用于配置 PD 微服务,具体的配置参数与 `spec.pd.config` 相同。要获取 PD 微服务可配置的所有参数,请参考 [PD 配置文件描述](https://docs.pingcap.com/zh/tidb/stable/pd-configuration-file)。
+
+> **注意:**
+>
+> - 为了兼容 `helm` 部署,如果你的 TiDB 集群是通过 CR 文件部署的,即使你不设置 `config` 配置,也需要保证 `config: {}` 的设置,避免 PD 微服务组件无法正常启动。
+> - 如果在部署 TiDB 集群时就启用了 PD 微服务模式,PD 微服务的部分配置项会持久化到 etcd 中且后续将以 etcd 中的配置为准。
+> - 如果在现有 TiDB 集群中启用 PD 微服务模式,PD 微服务的部分配置会沿用 PD 的配置并持久化到 etcd 中,后续将以 etcd 中的配置为准。
+> - 因此,PD 微服务在首次启动后,这些配置项将无法再通过配置参数来进行修改,而需要使用 [SQL](https://docs.pingcap.com/zh/tidb/stable/dynamic-config#在线修改-pd-配置)、[pd-ctl](https://docs.pingcap.com/tidb/stable/pd-control#config-show--set-option-value--placement-rules) 或 PD server API 来动态进行修改。目前,[在线修改 PD 配置](https://docs.pingcap.com/zh/tidb/stable/dynamic-config#在线修改-pd-配置)文档中所列的配置项中,除 `log.level` 外,其他配置项在 PD 微服务首次启动之后均不再支持通过配置参数进行修改。
+
#### 配置 TiProxy 配置参数
你可以通过 TidbCluster CR 的 `spec.tiproxy.config` 来配置 TiProxy 配置参数。
diff --git a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md
index 8bbb7c6aa..a79ca26d4 100644
--- a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md
+++ b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md
@@ -509,12 +509,13 @@ EOF
2. 以步骤 1 为例,按顺序进行如下升级操作:
- 1. 如果集群中部署了 TiProxy,为所有部署了 TiProxy 的 Kubernetes 集群升级 TiProxy 版本。
- 2. 如果集群中部署了 TiFlash,为所有部署了 TiFlash 的 Kubernetes 集群升级 TiFlash 版本。
- 3. 升级所有 Kubernetes 集群的 TiKV 版本。
- 4. 如果集群中部署了 Pump,为所有部署了 Pump 的 Kubernetes 集群升级 Pump 版本。
- 5. 升级所有 Kubernetes 集群的 TiDB 版本。
- 6. 如果集群中部署了 TiCDC,为所有部署了 TiCDC 的 Kubernetes 集群升级 TiCDC 版本。
+ 1. 如果集群中部署了 [PD 微服务](https://docs.pingcap.com/zh/tidb/dev/pd-microservices)(从 TiDB v8.0.0 版本开始支持),为所有部署了 PD 微服务的 Kubernetes 集群升级 PD 微服务版本。
+ 2. 如果集群中部署了 TiProxy,为所有部署了 TiProxy 的 Kubernetes 集群升级 TiProxy 版本。
+ 3. 如果集群中部署了 TiFlash,为所有部署了 TiFlash 的 Kubernetes 集群升级 TiFlash 版本。
+ 4. 升级所有 Kubernetes 集群的 TiKV 版本。
+ 5. 如果集群中部署了 Pump,为所有部署了 Pump 的 Kubernetes 集群升级 Pump 版本。
+ 6. 升级所有 Kubernetes 集群的 TiDB 版本。
+ 7. 如果集群中部署了 TiCDC,为所有部署了 TiCDC 的 Kubernetes 集群升级 TiCDC 版本。
## 退出和回收已加入的 TidbCluster
@@ -524,6 +525,10 @@ EOF
以上面文档创建的第二个 TidbCluster 为例,先将 PD、TiKV、TiDB 的副本数设置为 0,如果开启了 TiFlash、TiCDC、TiProxy、Pump 等其他组件,也请一并将其副本数设为 `0`:
+> **注意:**
+>
+> PD 从 v8.0.0 版本开始支持微服务模式。如果配置了 PD 微服务,也需要将 PD 微服务 `pdms` 配置中对应组件的 `replicas` 值设置为 `0`。
+
{{< copyable "shell-regular" >}}
```bash
diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md
index c1c8d7518..f0275da00 100644
--- a/zh/enable-tls-between-components.md
+++ b/zh/enable-tls-between-components.md
@@ -157,6 +157,33 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/']
...
```
+ > **注意:**
+ >
+ > PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/dev/pd-microservices)(实验特性)。如需部署 PD 微服务,并不需要为 PD 微服务的各个组件生成证书,只需要在 `pd-server.json` 文件的 `hosts` 字段中添加微服务相关的 hosts 配置即可。以 `scheduling` 微服务为例,你需要进行以下配置:
+ >
+ > ``` json
+ > ...
+ > "CN": "TiDB",
+ > "hosts": [
+ > "127.0.0.1",
+ > "::1",
+ > "${cluster_name}-pd",
+ > ...
+ > "*.${cluster_name}-pd-peer.${namespace}.svc",
+ > // 以下是为 `scheduling` 微服务添加的 hosts 配置
+ > "${cluster_name}-scheduling",
+ > "${cluster_name}-scheduling.${cluster_name}",
+ > "${cluster_name}-scheduling.${cluster_name}.svc",
+ > "${cluster_name}-scheduling-peer",
+ > "${cluster_name}-scheduling-peer.${cluster_name}",
+ > "${cluster_name}-scheduling-peer.${cluster_name}.svc",
+ > "*.${cluster_name}-scheduling-peer",
+ > "*.${cluster_name}-scheduling-peer.${cluster_name}",
+ > "*.${cluster_name}-scheduling-peer.${cluster_name}.svc",
+ > ],
+ > ...
+ > ```
+
其中 `${cluster_name}` 为集群的名字,`${namespace}` 为 TiDB 集群部署的命名空间,用户也可以添加自定义 `hosts`。
最后生成 PD Server 端证书:
@@ -1428,6 +1455,35 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/']
然后使用 `kubectl apply -f tidb-cluster.yaml` 来创建 TiDB 集群。
+ > **注意:**
+ >
+ > PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/dev/pd-microservices)(实验特性),如需部署 PD 微服务,需要为各个微服务配置 `cert-allowed-cn`。以 Scheduling 服务为例,你需要进行以下配置:
+ >
+ > - 更新 `pd.mode` 为 `ms`
+ > - 为 `scheduling` 微服务配置 `security` 字段
+ >
+ > ```yaml
+ > pd:
+ > baseImage: pingcap/pd
+ > maxFailoverCount: 0
+ > replicas: 1
+ > requests:
+ > storage: "10Gi"
+ > config:
+ > security:
+ > cert-allowed-cn:
+ > - TiDB
+ > mode: "ms"
+ > pdms:
+ > - name: "scheduling"
+ > baseImage: pingcap/pd
+ > replicas: 1
+ > config:
+ > security:
+ > cert-allowed-cn:
+ > - TiDB
+ > ```
+
2. 创建 Drainer 组件并开启 TLS 以及 CN 验证。
- 第一种方式:创建 Drainer 的时候设置 `drainerName`:
diff --git a/zh/get-started.md b/zh/get-started.md
index f4c1362ac..8f710a02d 100644
--- a/zh/get-started.md
+++ b/zh/get-started.md
@@ -348,6 +348,32 @@ tidbcluster.pingcap.com/basic created
如果要将 TiDB 集群部署到 ARM64 机器上,可以参考[在 ARM64 机器上部署 TiDB 集群](deploy-cluster-on-arm64.md)。
+> **注意:**
+>
+> PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/dev/pd-microservices)(实验特性)。如需部署 PD 微服务,可以按照如下方式进行部署:
+>
+> ``` shell
+> kubectl create namespace tidb-cluster && \
+> kubectl -n tidb-cluster apply -f https://raw.githubusercontent.com/pingcap/tidb-operator/master/examples/basic/pd-micro-service-cluster.yaml
+> ```
+>
+> 查看 Pod 状态:
+>
+> ``` shell
+> watch kubectl get po -n tidb-cluster
+> ```
+>
+> ```
+> NAME READY STATUS RESTARTS AGE
+> basic-discovery-6bb656bfd-xl5pb 1/1 Running 0 9m
+> basic-pd-0 1/1 Running 0 9m
+> basic-scheduling-0 1/1 Running 0 9m
+> basic-tidb-0 2/2 Running 0 7m
+> basic-tikv-0 1/1 Running 0 8m
+> basic-tso-0 1/1 Running 0 9m
+> basic-tso-1 1/1 Running 0 9m
+> ```
+
### 部署独立的 TiDB Dashboard
{{< copyable "shell-regular" >}}
diff --git a/zh/modify-tidb-configuration.md b/zh/modify-tidb-configuration.md
index 3210a8684..ecd9737cf 100644
--- a/zh/modify-tidb-configuration.md
+++ b/zh/modify-tidb-configuration.md
@@ -43,6 +43,18 @@ PD 中[支持在线修改的配置项](https://docs.pingcap.com/zh/tidb/stable/d
对于部署在 Kubernetes 中的 TiDB 集群,如需修改 PD 配置参数,需要使用 [SQL](https://docs.pingcap.com/zh/tidb/stable/dynamic-config/#在线修改-pd-配置)、[pd-ctl](https://docs.pingcap.com/tidb/stable/pd-control#config-show--set-option-value--placement-rules) 或 PD server API 来动态进行修改。
+### 修改 PD 微服务配置
+
+> **注意:**
+>
+> PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/dev/pd-microservices)(实验特性)。
+
+在 PD 微服务各个组件首次启动成功后,PD 的部分配置项会持久化到 etcd 中,且后续将以 etcd 中的配置为准。因此,在 PD 微服务各个组件首次启动后,这些配置项将无法再通过 TidbCluster CR 来进行修改。
+
+PD 微服务各个组件中[支持在线修改的配置项](https://docs.pingcap.com/zh/tidb/stable/dynamic-config#在线修改-pd-配置)里,除 `log.level` 外,其他配置项在 PD 微服务各个组件首次启动之后均不再支持通过 TidbCluster CR 进行修改。
+
+对于部署在 Kubernetes 中的 TiDB 集群,如需修改 PD 微服务配置参数,你可以使用 [SQL](https://docs.pingcap.com/zh/tidb/stable/dynamic-config#在线修改-pd-配置)、[pd-ctl](https://docs.pingcap.com/tidb/stable/pd-control#config-show--set-option-value--placement-rules) 或 PD server API 来进行动态修改。
+
## 修改 TiProxy 组件配置
修改 TiProxy 组件的配置永远不会重启 Pod。如果你想要重启 Pod,需要手动杀死 Pod,或更改 Pod 镜像等配置,来手动触发重启。
diff --git a/zh/scale-a-tidb-cluster.md b/zh/scale-a-tidb-cluster.md
index 20465eff4..ff55d47fd 100644
--- a/zh/scale-a-tidb-cluster.md
+++ b/zh/scale-a-tidb-cluster.md
@@ -158,7 +158,7 @@ watch kubectl -n ${namespace} get pod -o wide
本小节介绍如何对 PD、TiKV、TiDB、TiProxy、TiFlash、TiCDC 进行垂直扩缩容。
-- 如果要对 PD、TiKV、TiDB、TiProxy 进行垂直扩缩容,通过 kubectl 修改集群所对应的 `TidbCluster` 对象的 `spec.pd.resources`、`spec.tikv.resources`、`spec.tidb.resources` 至期望值。
+- 如果要对 PD、TiKV、TiDB、TiProxy 进行垂直扩缩容,通过 kubectl 修改集群所对应的 `TidbCluster` 对象的 `spec.pd.resources`、`spec.tikv.resources`、`spec.tidb.resources`、`spec.tiproxy.replicas` 至期望值。
- 如果要对 TiFlash 进行垂直扩缩容,修改 `spec.tiflash.resources` 至期望值。
@@ -179,6 +179,46 @@ watch kubectl -n ${namespace} get pod -o wide
> - 如果在垂直扩容时修改了资源的 `requests` 字段,并且 PD、TiKV、TiFlash 使用了 `Local PV`,那升级后 Pod 还会调度回原节点,如果原节点资源不够,则会导致 Pod 一直处于 `Pending` 状态而影响服务。
> - TiDB 是一个可水平扩展的数据库,推荐通过增加节点个数发挥 TiDB 集群可水平扩展的优势,而不是类似传统数据库升级节点硬件配置来实现垂直扩容。
+### 扩缩容 PD 微服务组件
+
+> **注意:**
+>
+> PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/dev/pd-microservices)(实验特性)。
+
+PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务质量。可通过 [PD 微服务常见问题](https://docs.pingcap.com/zh/tidb/dev/pd-microservices#常见问题)判断是否需要进行 PD 微服务扩缩容操作。
+
+- 目前,PD 微服务模式可将 PD 的时间戳分配和集群调度功能拆分为 `tso` 微服务和 `scheduling` 微服务单独部署。
+ - `tso` 微服务为主备架构,如遇到瓶颈建议采用垂直扩缩容。
+ - `scheduling` 微服务为调度组件,如遇到瓶颈建议采用水平扩缩容。
+
+- 如果要对 PD 微服务各个组件进行垂直扩缩容,可以使用 `kubectl` 命令修改集群所对应的 `TidbCluster` 对象的 `spec.pdms.resources` 至期望值。
+
+- 如果要对 PD 微服务各个组件进行水平扩缩容,可以使用 `kubectl` 命令修改集群所对应的 `TidbCluster` 对象的 `spec.pdms.replicas` 至期望值。
+
+以下步骤以 `scheduling` 微服务为例说明如何进行水平扩缩容:
+
+1. 按需修改 `TidbCluster` 对象的 `replicas` 值。例如,执行以下命令可将 `scheduling` 的 `replicas` 值设置为 `3`:
+
+ ```shell
+ kubectl patch -n ${namespace} tc ${cluster_name} --type merge --patch '{"spec":{"pdms":{"name":"scheduling", "replicas":3}}}'
+ ```
+
+2. 查看 Kubernetes 集群中对应的 TiDB 集群配置是否已对应更新:
+
+ ```shell
+ kubectl get tidbcluster ${cluster_name} -n ${namespace} -oyaml
+ ```
+
+ 上述命令输出的 `TidbCluster` 中,`spec.pdms` 的 `scheduling.replicas` 值预期应与你之前配置的值一致。
+
+3. 观察 `TidbCluster` Pod 是否新增或者减少:
+
+ ```shell
+ watch kubectl -n ${namespace} get pod -o wide
+ ```
+
+ PD 微服务组件通常需要 10 到 30 秒左右的时间完成扩容或者缩容。
+
## 扩缩容故障诊断
-无论是水平扩缩容、或者是垂直扩缩容,都可能遇到资源不够时造成 Pod 出现 Pending 的情况。可以参考 [Pod 处于 Pending 状态](deploy-failures.md#pod-处于-pending-状态)来进行处理。
+无论是水平扩缩容、或者是垂直扩缩容,都可能遇到资源不够时造成 Pod 出现 Pending 的情况。可以参考 [Pod 处于 Pending 状态](deploy-failures.md#pod-处于-pending-状态)来进行处理。
\ No newline at end of file
diff --git a/zh/suspend-tidb-cluster.md b/zh/suspend-tidb-cluster.md
index 16b29b9db..e6bd9b1fb 100644
--- a/zh/suspend-tidb-cluster.md
+++ b/zh/suspend-tidb-cluster.md
@@ -62,6 +62,10 @@ summary: 了解如何通过配置挂起 Kubernetes 上的 TiDB 集群。
* TiProxy
* PD
+> **注意:**
+>
+> 如果集群中部署了 [PD 微服务](https://docs.pingcap.com/zh/tidb/dev/pd-microservices)(从 TiDB v8.0.0 版本开始支持),PD 微服务组件的 Pod 会在删除 PD 之后被删除。
+
## 恢复 TiDB 集群
在 TiDB 集群或组件被挂起后,如果你需要恢复 TiDB 集群,执行以下步骤:
diff --git a/zh/upgrade-a-tidb-cluster.md b/zh/upgrade-a-tidb-cluster.md
index 4066f6b1c..e291272e3 100644
--- a/zh/upgrade-a-tidb-cluster.md
+++ b/zh/upgrade-a-tidb-cluster.md
@@ -14,6 +14,10 @@ Kubernetes 提供了[滚动更新功能](https://kubernetes.io/docs/tutorials/ku
使用滚动更新时,TiDB Operator 会按 PD、TiProxy、TiFlash、TiKV、TiDB 的顺序,串行地删除旧版本的 Pod,并创建新版本的 Pod。当新版本的 Pod 正常运行后,再处理下一个 Pod。
+> **注意:**
+>
+> 当集群中部署了 [PD 微服务](https://docs.pingcap.com/zh/tidb/dev/pd-microservices)(从 TiDB v8.0.0 版本开始支持)时,如果采用滚动更新来升级 TiDB 集群,TiDB Operator 会按照 PD 各个微服务组件、PD、TiKV、TiDB 的顺序,串行地删除旧版本的 Pod 并创建新版本的 Pod。当新版本的 Pod 正常运行后,再处理下一个 Pod。
+
滚动更新中,TiDB Operator 会自动处理 PD 和 TiKV 的 Leader 迁移。因此,在多节点的部署拓扑下(最小环境:PD \* 3、TiKV \* 3、TiDB \* 2),滚动更新 TiKV、PD 不会影响业务正常运行。对于有连接重试功能的客户端,滚动更新 TiDB 同样不会影响业务。
> **警告:**