Skip to content

Commit

Permalink
draft
Browse files Browse the repository at this point in the history
Signed-off-by: husharp <[email protected]>
  • Loading branch information
HuSharp committed Dec 15, 2023
1 parent 638db37 commit f183af4
Show file tree
Hide file tree
Showing 6 changed files with 119 additions and 1 deletion.
55 changes: 55 additions & 0 deletions zh/configure-a-tidb-cluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,32 @@ TiFlash 支持挂载多个 PV,如果要为 TiFlash 配置多个 PV,可以在
logLevel: info
```

##### 部署 PD 微服务

> **注意:**
>
> TODO: PD X 版本开始支持微服务架构。

如果要在集群中开启 PD 微服务,需要在 `${cluster_name}/tidb-cluster.yaml` 文件中配置 `spec.pd.config` 与 `spec.pdms`.

```yaml
spec:
pd:
config:
mode: "ms"
pdms:
- name: "tso"
replicas: 2
config: {}
- name: "scheduling"
config: {}
replicas: 1
```

`spec.pd.config.mode` 用于配置 PD 微服务模式,目前支持 "ms"、"" 两种模式,"ms" 表示开启微服务模式,"" 为空表示关闭微服务模式。

`spec.pdms.config` 用于配置 PD 微服务,配置参数与 `spec.pd.config` 相同,获取所有可以配置的 PD 微服务配置参数,请参考 [PD 配置文档](https://docs.pingcap.com/zh/tidb/stable/pd-configuration-file)。

### 配置 TiDB 组件

本节介绍如何配置 TiDB/TiKV/PD/TiFlash/TiCDC 的配置选项。
Expand Down Expand Up @@ -368,6 +394,35 @@ 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 微服务配置参数

> **注意:**
>
> TODO: PD X 版本开始支持微服务架构。

你可以通过 TidbCluster CR 的 `spec.pd.config` 与 `spec.pdms` 来配置 PD 配置参数。目前支持 "tso"、"scheduling" 两个微服务,配置示例如下:

```yaml
spec:
pd:
config:
mode: "ms"
pdms:
- name: "tso"
replicas: 2
config: {}
- name: "scheduling"
config: {}
replicas: 1
```

其中 `spec.pdms` 用于配置 PD 微服务,配置参数与 `spec.pd.config` 相同,获取所有可以配置的 PD 微服务配置参数,请参考 [PD 配置文档](https://docs.pingcap.com/zh/tidb/stable/pd-configuration-file)。

> **注意:**
>
> - 为了兼容 `helm` 部署,如果你是通过 CR 文件部署 TiDB 集群,即使你不设置 Config 配置,也需要保证 `Config: {}` 的设置,从而避免 PD 微服务组件无法正常启动。
> - PD 微服务部分配置项在首次启动成功后会持久化到 etcd 中且后续将以 etcd 中的配置为准。因此 PD 在首次启动后,这些配置项将无法再通过配置参数来进行修改,而需要使用 pd-ctl 或 PD server API 来动态进行修改。目前,[在线修改 PD 配置](https://docs.pingcap.com/zh/tidb/stable/dynamic-config#在线修改-pd-配置)文档中所列的配置项中,除 `log.level` 外,其他配置项在 PD 首次启动之后均不再支持通过配置参数进行修改。

#### 配置 TiFlash 配置参数

你可以通过 TidbCluster CR 的 `spec.tiflash.config` 来配置 TiFlash 配置参数。
Expand Down
8 changes: 8 additions & 0 deletions zh/deploy-tidb-cluster-across-multiple-kubernetes.md
Original file line number Diff line number Diff line change
Expand Up @@ -515,6 +515,10 @@ EOF
4. 升级所有 Kubernetes 集群的 TiDB 版本。
5. 如果集群中部署了 TiCDC,为所有部署了 TiCDC 的 Kubernetes 集群升级 TiCDC 版本。

>> **注意:**
>>
>> 如果配置了 PD 微服务,需要首先升级 PD 微服务,然后再升级 PD 组件。具体流程与上述步骤 1 类似。

## 退出和回收已加入的 TidbCluster

当你需要让一个集群从所加入的跨 Kubernetes 部署的 TiDB 集群退出并回收资源时,可以通过缩容流程来实现上述需求。在此场景下,需要满足缩容的一些限制,限制如下:
Expand All @@ -523,6 +527,10 @@ EOF

以上面文档创建的第二个 TidbCluster 为例,先将 PD、TiKV、TiDB 的副本数设置为 0,如果开启了 TiFlash、TiCDC、Pump 等其他组件,也请一并将其副本数设为 0:

>> **注意:**
>>
>> 如果配置了 PD 微服务,也请将 PD 微服务具体组件的副本数设置为 0。

{{< copyable "shell-regular" >}}

```bash
Expand Down
3 changes: 2 additions & 1 deletion zh/enable-tls-between-components.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ aliases: ['/docs-cn/tidb-in-kubernetes/dev/enable-tls-between-components/']

> **注意:**
>
> 创建的 Secret 对象必须符合上述命名规范,否则将导致各组件部署失败。
> 1.创建的 Secret 对象必须符合上述命名规范,否则将导致各组件部署失败。
> 2.如果开启了 PD 微服务,也需要为微服务的各个组件生成证书。
2. 部署集群,设置 `.spec.tlsCluster.enabled` 属性为 `true`

Expand Down
12 changes: 12 additions & 0 deletions zh/modify-tidb-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,15 @@ TiDB 集群自身支持通过 SQL 对 TiDB、TiKV、PD 等组件进行[在线配
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 来动态进行修改。

### 修改 PD 微服务配置

> **注意:**
>
> TODO: PD X 版本开始支持微服务架构。

在 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 微服务各个组件的配置参数,需要使用 PD server API 来动态进行修改。
36 changes: 36 additions & 0 deletions zh/scale-a-tidb-cluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,42 @@ kubectl patch -n ${namespace} tc ${cluster_name} --type merge --patch '{"spec":{
kubectl patch -n ${namespace} tc ${cluster_name} --type merge --patch '{"spec":{"ticdc":{"replicas":3}}}'
```

### 水平扩缩容 PD 微服务组件

> **注意:**
>
> TODO: PD X 版本开始支持微服务架构。

如果要对 PD 微服务各个组件进行水平扩缩容,可以使用 kubectl 修改集群所对应的 `TidbCluster` 对象中的 `spec.pdms.replicas` 至期望值,目前支持 "tso""scheduling" 组件,现以 "tso" 为例:

1. 按需修改 TiDB 集群组件的 `replicas` 值。例如,执行以下命令可将 "tso"`replicas` 值设置为 3:

{{< copyable "shell-regular" >}}

```shell
kubectl patch -n ${namespace} tc ${cluster_name} --type merge --patch '{"spec":{"pdms":{"name":"tso", "replicas":3}}}'
```

2. 查看 Kubernetes 集群中对应的 TiDB 集群是否更新到了你期望的配置。

{{< copyable "shell-regular" >}}

```shell
kubectl get tidbcluster ${cluster_name} -n ${namespace} -oyaml
```

上述命令输出的 `TidbCluster` 中,`spec.pdms`"tso.replicas" 值预期应与你之前配置的值一致。

3. 观察 `TidbCluster` Pod 是否新增或者减少。

{{< copyable "shell-regular" >}}

```shell
watch kubectl -n ${namespace} get pod -o wide
```

PD 微服务组件通常需要 10 到 30 秒左右的时间进行扩容或者缩容。

### 查看集群水平扩缩容状态

{{< copyable "shell-regular" >}}
Expand Down
6 changes: 6 additions & 0 deletions zh/upgrade-a-tidb-cluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ Kubernetes 提供了[滚动更新功能](https://kubernetes.io/docs/tutorials/ku

使用滚动更新时,TiDB Operator 会按 PD、TiFlash、TiKV、TiDB 的顺序,串行地删除旧版本的 Pod,并创建新版本的 Pod。当新版本的 Pod 正常运行后,再处理下一个 Pod。

> **注意:**
>
> TODO: PD X 版本开始支持微服务架构。
> TODO: 具体部署参考 [部署 PD 微服务](deploy-pd-microservice.md)
> 使用滚动升级时,TiDB Operator 会按照 PD 微服务各个组件、PD、TiKV、TiDB 的顺序,串行地删除旧版本的 Pod,并创建新版本的 Pod。当新版本的 Pod 正常运行后,再处理下一个 Pod。
滚动更新中,TiDB Operator 会自动处理 PD 和 TiKV 的 Leader 迁移。因此,在多节点的部署拓扑下(最小环境:PD \* 3、TiKV \* 3、TiDB \* 2),滚动更新 TiKV、PD 不会影响业务正常运行。对于有连接重试功能的客户端,滚动更新 TiDB 同样不会影响业务。

> **警告:**
Expand Down

0 comments on commit f183af4

Please sign in to comment.