From d1c0c27a012a7ab68954f1d780ca9a7789760cdb Mon Sep 17 00:00:00 2001 From: husharp Date: Thu, 21 Mar 2024 15:45:26 +0800 Subject: [PATCH] move pd-microservice.md to doc Signed-off-by: husharp --- zh/TOC.md | 1 - zh/configure-a-tidb-cluster.md | 4 +- ...tidb-cluster-across-multiple-kubernetes.md | 2 +- zh/enable-tls-between-components.md | 4 +- zh/get-started.md | 2 +- zh/modify-tidb-configuration.md | 2 +- zh/pd-microservices.md | 62 ------------------- zh/scale-a-tidb-cluster.md | 4 +- zh/suspend-tidb-cluster.md | 2 +- zh/upgrade-a-tidb-cluster.md | 2 +- 10 files changed, 11 insertions(+), 74 deletions(-) delete mode 100644 zh/pd-microservices.md diff --git a/zh/TOC.md b/zh/TOC.md index 6a58d9cf2..e6f89095e 100644 --- a/zh/TOC.md +++ b/zh/TOC.md @@ -113,7 +113,6 @@ - [TiDB Scheduler 扩展调度器](tidb-scheduler.md) - [增强型 StatefulSet 控制器](advanced-statefulset.md) - [准入控制器](enable-admission-webhook.md) - - [PD 微服务](pd-microservices.md) - [Sysbench 性能测试](benchmark-sysbench.md) - [API 参考文档](https://github.com/pingcap/tidb-operator/blob/master/docs/api-references/docs.md) - [Cheat Sheet](cheat-sheet.md) diff --git a/zh/configure-a-tidb-cluster.md b/zh/configure-a-tidb-cluster.md index d64dd48a0..3f7fa41f7 100644 --- a/zh/configure-a-tidb-cluster.md +++ b/zh/configure-a-tidb-cluster.md @@ -221,7 +221,7 @@ TiDB Operator 支持为 PD、TiDB、TiKV、TiCDC 挂载多块 PV,可以用于 > **注意:** > -> PD 从 v8.0.0 版本开始支持[微服务模式](pd-microservices.md)。 +> PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/stable/pd-microservices.md)。 ```yaml pd: @@ -279,7 +279,7 @@ spec: > **注意:** > -> PD 从 v8.0.0 版本开始支持[微服务模式](pd-microservices.md)。 +> PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/stable/pd-microservices.md)。 如果要在集群中开启 PD 微服务,需要在 `${cluster_name}/tidb-cluster.yaml` 文件中配置 `spec.pd.mode` 与 `spec.pdms`: diff --git a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md index 708d58704..066706902 100644 --- a/zh/deploy-tidb-cluster-across-multiple-kubernetes.md +++ b/zh/deploy-tidb-cluster-across-multiple-kubernetes.md @@ -509,7 +509,7 @@ EOF 2. 以步骤 1 为例,按顺序进行如下升级操作: - 1. 如果集群中部署了 [PD 微服务](pd-microservices.md)(从 TiDB v8.0.0 版本开始支持),为所有部署了 PD 微服务的 Kubernetes 集群升级 PD 微服务版本。 + 1. 如果集群中部署了 [PD 微服务](https://docs.pingcap.com/zh/tidb/stable/pd-microservices.md)(从 TiDB v8.0.0 版本开始支持),为所有部署了 PD 微服务的 Kubernetes 集群升级 PD 微服务版本。 2. 如果集群中部署了 TiProxy,为所有部署了 TiProxy 的 Kubernetes 集群升级 TiProxy 版本。 3. 如果集群中部署了 TiFlash,为所有部署了 TiFlash 的 Kubernetes 集群升级 TiFlash 版本。 4. 升级所有 Kubernetes 集群的 TiKV 版本。 diff --git a/zh/enable-tls-between-components.md b/zh/enable-tls-between-components.md index b9bd4b108..ecf0776ae 100644 --- a/zh/enable-tls-between-components.md +++ b/zh/enable-tls-between-components.md @@ -159,7 +159,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] > **注意:** > - > PD 从 v8.0.0 版本开始支持[微服务模式](pd-microservices.md)。如需部署 PD 微服务,并不需要为 PD 微服务的各个组件生成证书,只需要在 `pd-server.json` 文件的 `hosts` 字段中添加微服务相关的 hosts 配置即可。以 Scheduling 微服务为例,你需要进行以下配置: + > PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/stable/pd-microservices.md)。如需部署 PD 微服务,并不需要为 PD 微服务的各个组件生成证书,只需要在 `pd-server.json` 文件的 `hosts` 字段中添加微服务相关的 hosts 配置即可。以 Scheduling 微服务为例,你需要进行以下配置: > > ``` json > ... @@ -1457,7 +1457,7 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/'] > **注意:** > - > PD 从 v8.0.0 版本开始支持[微服务模式](pd-microservices.md),如需部署 PD 微服务,需要为各个微服务配置 `cert-allowed-cn`。以 Scheduling 服务为例,你需要进行以下配置: + > PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/stable/pd-microservices.md),如需部署 PD 微服务,需要为各个微服务配置 `cert-allowed-cn`。以 Scheduling 服务为例,你需要进行以下配置: > > - 更新 `pd.mode` 为 `ms` > - 为 `scheduling` 微服务配置 `security` 字段 diff --git a/zh/get-started.md b/zh/get-started.md index af2e6693c..9838076f0 100644 --- a/zh/get-started.md +++ b/zh/get-started.md @@ -350,7 +350,7 @@ tidbcluster.pingcap.com/basic created > **注意:** > -> PD 从 v8.0.0 版本开始支持[微服务模式](pd-microservices.md)。如需部署 PD 微服务,可以按照如下方式进行部署: +> PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/stable/pd-microservices.md)。如需部署 PD 微服务,可以按照如下方式进行部署: > > ``` shell > kubectl create namespace tidb-cluster && \ diff --git a/zh/modify-tidb-configuration.md b/zh/modify-tidb-configuration.md index 8200b5b0a..a6958660f 100644 --- a/zh/modify-tidb-configuration.md +++ b/zh/modify-tidb-configuration.md @@ -47,7 +47,7 @@ PD 中[支持在线修改的配置项](https://docs.pingcap.com/zh/tidb/stable/d > **注意:** > -> PD 从 v8.0.0 版本开始支持[微服务模式](pd-microservices.md)。 +> PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/stable/pd-microservices.md)。 在 PD 微服务各个组件首次启动成功后,PD 的部分配置项会持久化到 etcd 中,且后续将以 etcd 中的配置为准。因此,在 PD 微服务各个组件首次启动后,这些配置项将无法再通过 TidbCluster CR 来进行修改。 diff --git a/zh/pd-microservices.md b/zh/pd-microservices.md deleted file mode 100644 index 473383fdb..000000000 --- a/zh/pd-microservices.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: PD 微服务 -summary: 介绍如何开启 PD 微服务模式提高服务质量。 ---- - -# PD 微服务 - -从 v8.0.0 开始,PD 支持微服务模式。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而与 PD 的路由功能解耦,让 PD 专注于元数据的路由服务。 - -- TSO 微服务:为整个集群提供单调递增的时间戳分配。 -- Scheduling 微服务:为整个集群提供调度功能,包括但不限于负载均衡、热点处理、副本修复、副本放置等。 - -每个微服务都以独立进程的方式部署。当设置某个微服务的副本数大于 1 时,该微服务会自动实现主备的容灾模式,以确保服务的高可用性和可靠性。 - -## 使用场景 - -PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务质量。利用该特性,你可以避免以下问题: - -- PD 集群压力过大而导致 TSO 分配的长尾延迟或者抖动现象 -- 调度模块故障导致整个集群服务不可用的问题 -- PD 自身单点瓶颈的问题 - -此外,当调度模块发生变更时,你可以单独更新 Scheduling 微服务,无需再对 PD 进行重启,进而不会影响集群的整体服务。 - -> **注意:** -> -> 如果集群的性能瓶颈不是 PD 引起的,则无需开启微服务。微服务本身会增加组件数量,提高运维成本。 - -## 使用限制 - -- TSO 微服务目前不支持动态启停,开启或关闭 TSO 微服务后你需要重启 PD 集群才会生效。 -- 只有 TiDB 组件支持通过服务发现直接连接 TSO 微服务,其他的组件是通过请求转发的方式,将请求通过 PD 转发到 TSO 微服务以获取时间戳。 -- 当前微服务与[同步部署模式 (DR Auto-Sync)](https://docs.pingcap.com/zh/tidb/stable/two-data-centers-in-one-city-deployment) 特性不兼容。 -- 与 TiDB 系统变量 [`tidb_enable_tso_follower_proxy`](https://docs.pingcap.com/zh/tidb/stable/system-variables#tidb_enable_tso_follower_proxy-从-v530-版本开始引入) 不兼容。 -- 由于集群中可能存在静默 Region,Scheduling 微服务在进行主备切换时,为避免冗余调度,集群可能存在最多五分钟内没有调度的现象。 - -## 使用方法 - -目前 PD 微服务仅支持通过 TiDB Operator 进行部署。详细使用方法请参考以下文档: - -- [部署 PD 微服务](configure-a-tidb-cluster.md#部署-pd-微服务) -- [配置 PD 微服务](configure-a-tidb-cluster.md#配置-pd-微服务) -- [修改 PD 微服务](modify-tidb-configuration.md#修改-pd-微服务配置) -- [扩缩容 PD 微服务组件](scale-a-tidb-cluster.md#扩缩容-pd-微服务组件) - -当部署和使用 PD 微服务时,请注意以下事项: - -- 开启微服务并重启 PD 后,PD 不再提供 TSO 分配功能。因此,开启微服务时,你需要在集群中部署 TSO 微服务。 -- 如果集群中部署了 Scheduling 微服务,调度功能将由 Scheduling 微服务提供。如果没有部署 Scheduling 微服务,调度功能仍然由 PD 提供。 -- Scheduling 微服务支持动态切换。该功能默认开启(`enable-scheduling-fallback` 默认为 `true`)。如果 Scheduling 微服务进程关闭,PD 默认会继续为集群提供调度服务。 - - 如果 Scheduling 微服务和 PD 使用的 binary 版本不同,为防止调度逻辑出现变化,可以通过执行 `pd-ctl config set enable-scheduling-fallback false` 关闭 Scheduling 微服务动态切换功能。关闭后,如果 Scheduling 微服务的进程关闭,PD 将不会接管调度服务。这意味着,在 Scheduling 微服务重新启动前,集群将无法提供调度服务。 - -## 工具兼容性 - -微服务不影响数据导入导出以及其他同步工具的正常使用。 - -## 常见问题 - -- 如何判断 PD 是否达到了性能瓶颈? - - 在集群自身状态正常的前提下,可以查看 Grafana PD 面板中的监控指标。如果 `TiDB - PD server TSO handle time` 指标出现明显延迟上涨或 `Heartbeat - TiKV side heartbeat statistics` 指标出现大量 pending,说明 PD 达到了性能瓶颈。 \ No newline at end of file diff --git a/zh/scale-a-tidb-cluster.md b/zh/scale-a-tidb-cluster.md index 47fc61edf..87db7b403 100644 --- a/zh/scale-a-tidb-cluster.md +++ b/zh/scale-a-tidb-cluster.md @@ -183,9 +183,9 @@ watch kubectl -n ${namespace} get pod -o wide > **注意:** > -> PD 从 v8.0.0 版本开始支持[微服务模式](pd-microservices.md)。 +> PD 从 v8.0.0 版本开始支持[微服务模式](https://docs.pingcap.com/zh/tidb/stable/pd-microservices.md)。 -PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务质量。可通过 [PD 微服务常见问题](pd-microservices.md#常见问题) 判断是否需要进行 PD 微服务扩缩容操作。 +PD 微服务通常用于解决 PD 出现性能瓶颈的问题,提高 PD 服务质量。可通过 [PD 微服务常见问题](https://docs.pingcap.com/zh/tidb/stable/pd-microservices.md#常见问题) 判断是否需要进行 PD 微服务扩缩容操作。 - 目前,PD 微服务模式可将 PD 的时间戳分配和集群调度功能拆分为 TSO 微服务和 Scheduling 微服务单独部署。 - TSO 微服务为主备架构,如遇到瓶颈建议采用垂直扩缩容。 diff --git a/zh/suspend-tidb-cluster.md b/zh/suspend-tidb-cluster.md index d1f662056..9986b57ff 100644 --- a/zh/suspend-tidb-cluster.md +++ b/zh/suspend-tidb-cluster.md @@ -64,7 +64,7 @@ summary: 了解如何通过配置挂起 Kubernetes 上的 TiDB 集群。 > **注意:** > -> 如果集群中部署了 [PD 微服务](pd-microservices.md)(从 TiDB v8.0.0 版本开始支持),PD 微服务组件的 Pod 会在删除 PD 之后被删除。 +> 如果集群中部署了 [PD 微服务](https://docs.pingcap.com/zh/tidb/stable/pd-microservices.md)(从 TiDB v8.0.0 版本开始支持),PD 微服务组件的 Pod 会在删除 PD 之后被删除。 ## 恢复 TiDB 集群 diff --git a/zh/upgrade-a-tidb-cluster.md b/zh/upgrade-a-tidb-cluster.md index e5145e232..063e1ea9a 100644 --- a/zh/upgrade-a-tidb-cluster.md +++ b/zh/upgrade-a-tidb-cluster.md @@ -16,7 +16,7 @@ Kubernetes 提供了[滚动更新功能](https://kubernetes.io/docs/tutorials/ku > **注意:** > -> 当集群中部署了 [PD 微服务](pd-microservices.md)(从 TiDB v8.0.0 版本开始支持)时,如果采用滚动更新来升级 TiDB 集群,TiDB Operator 会按照 PD 各个微服务组件、PD、TiKV、TiDB 的顺序,串行地删除旧版本的 Pod 并创建新版本的 Pod。当新版本的 Pod 正常运行后,再处理下一个 Pod。 +> 当集群中部署了 [PD 微服务](https://docs.pingcap.com/zh/tidb/stable/pd-microservices.md)(从 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 同样不会影响业务。