Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update-conent- for scaleout cluster and deploy cluster #8363

Merged
merged 12 commits into from
Mar 10, 2022
97 changes: 61 additions & 36 deletions production-deployment-using-tiup.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,48 +206,74 @@ source /home/tidb/.bash_profile

## 第 3 步:初始化集群拓扑文件

1. 创建集群拓扑文件。
执行如下命令,生成集群初始化配置文件:

根据不同的集群拓扑,编辑 TiUP 所需的集群初始化配置文件。可以通过 TiUP 工具在中控机上面创建 YAML 格式集群配置文件,例如 `topology.yaml`:
{{< copyable "shell-regular" >}}

```shell
tiup cluster template > topology.yaml
```

针对两种常用的部署场景,也可以通过以下命令生成建议的拓扑模板:

- 混合部署场景:单台机器部署多个实例,详情参见[混合部署拓扑架构](/hybrid-deployment-topology.md) 。

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

```shell
tiup cluster template > topology.yaml
tiup cluster template --full > topology.yaml
```

- 跨机房部署场景:跨机房部署 TiDB 集群,详情参见[跨机房部署拓扑架构](/geo-distributed-deployment-topology.md)。

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

> **注意:**
>
> 混合部署场景也可以使用 `tiup cluster template --full > topology.yaml` 生成的建议拓扑模板,跨机房部署场景可以使用 `tiup cluster template --multi-dc > topology.yaml` 生成的建议拓扑模板。

2. 配置集群拓扑文件。

执行 `vi topology.yaml`,按实际场景配置以下参数:

- Global 参数
- user
- ssh_port
- deploy_dir
- data_dir
- Server 参数
- PD servers
- TiDB servers
- TiKV servers
- Monitoring servers
- Grafana servers
- ......

下表列出了常用的 7 种场景,请根据链接中的拓扑说明以及配置文件模板配置`topology.yaml`。如果有其他组合场景的需求,请根据多个模板自行调整。

| 场景 | 配置任务 | 配置文件模板 | 拓扑说明 |
| :-- | :-- | :-- | :-- |
| OLTP 业务 | [最小拓扑架构](/minimal-deployment-topology.md) | [简单最小配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-mini.yaml)<br/>[详细最小配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-mini.yaml) | 最基本的集群拓扑,包括 tidb-server、tikv-server、pd-server。 |
| HTAP 业务 | [增加 TiFlash 拓扑架构](/tiflash-deployment-topology.md) | [简单 TiFlash 配置模版](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-tiflash.yaml)<br/>[详细 TiFlash 配置模版](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-tiflash.yaml) | 在最小拓扑的基础上部署 TiFlash。TiFlash 是列式存储引擎,已经逐步成为集群拓扑的标配。|
| 使用 [TiCDC](/ticdc/ticdc-overview.md) 进行增量同步 | [增加 TiCDC 拓扑架构](/ticdc-deployment-topology.md) | [简单 TiCDC 配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-cdc.yaml)<br/>[详细 TiCDC 配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-cdc.yaml) | 在最小拓扑的基础上部署 TiCDC。TiCDC 支持多种下游 (TiDB/MySQL/MQ)。 |
| 使用 [TiDB Binlog](/tidb-binlog/tidb-binlog-overview.md) 进行增量同步 | [增加 TiDB Binlog 拓扑架构](/tidb-binlog-deployment-topology.md) | [简单 TiDB Binlog 配置模板(下游为 MySQL)](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-tidb-binlog.yaml)<br/>[简单 TiDB Binlog 配置模板(下游为 file)](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-file-binlog.yaml)<br/>[详细 TiDB Binlog 配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-tidb-binlog.yaml) | 在最小拓扑的基础上部署 TiDB Binlog。 |
| 使用 Spark 的 OLAP 业务 | [增加 TiSpark 拓扑架构](/tispark-deployment-topology.md) | [简单 TiSpark 配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-tispark.yaml)<br/>[详细 TiSpark 配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-tispark.yaml) | 在最小拓扑的基础上部署 TiSpark 组件。TiSpark 是 PingCAP 为解决用户复杂 OLAP 需求而推出的产品。TiUP cluster 组件对 TiSpark 的支持目前为实验特性。 |
| 单台机器,多个实例 | [混合部署拓扑架构](/hybrid-deployment-topology.md) | [简单混部配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-multi-instance.yaml)<br/>[详细混部配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-multi-instance.yaml) | 也适用于单机多实例需要额外增加目录、端口、资源配比、label 等配置的场景。 |
| 跨机房部署 TiDB 集群 | [跨机房部署拓扑架构](/geo-distributed-deployment-topology.md) | [跨机房配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/geo-redundancy-deployment.yaml) | 以典型的两地三中心架构为例,介绍跨机房部署架构,以及需要注意的关键设置。 |
```shell
tiup cluster template --multi-dc > topology.yaml
```

执行 vi topology.yaml,查看配置文件的内容:

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

```shell
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"
server_configs: {}
pd_servers:
- host: 10.0.1.4
- host: 10.0.1.5
- host: 10.0.1.6
tidb_servers:
- host: 10.0.1.7
- host: 10.0.1.8
- host: 10.0.1.9
tikv_servers:
- host: 10.0.1.1
- host: 10.0.1.2
- host: 10.0.1.3
monitoring_servers:
- host: 10.0.1.4
grafana_servers:
- host: 10.0.1.4
alertmanager_servers:
- host: 10.0.1.4
```

下表列出了常用的 7 种场景,请根据链接中的拓扑说明以及配置文件模板配置`topology.yaml`。如果有其他组合场景的需求,请根据多个模板自行调整。

| 场景 | 配置任务 | 配置文件模板 | 拓扑说明 |
| :-- | :-- | :-- | :-- |
| OLTP 业务 | [部署最小拓扑架构](/minimal-deployment-topology.md) | [简单最小配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-mini.yaml)<br/>[详细最小配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-mini.yaml) | 最小集群拓扑,包括 tidb-server、tikv-server、pd-server。 |
| HTAP 业务 | [部署 TiFlash 拓扑架构](/tiflash-deployment-topology.md) | [简单 TiFlash 配置模版](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-tiflash.yaml)<br/>[详细 TiFlash 配置模版](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-tiflash.yaml) | 在最小拓扑的基础上部署 TiFlash。TiFlash 是列式存储引擎,已经逐步成为集群拓扑的标配。|
| 使用 [TiCDC](/ticdc/ticdc-overview.md) 进行增量同步 | [部署 TiCDC 拓扑架构](/ticdc-deployment-topology.md) | [简单 TiCDC 配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-cdc.yaml)<br/>[详细 TiCDC 配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-cdc.yaml) | 在最小拓扑的基础上部署 TiCDC。TiCDC 支持多种下游 (TiDB/MySQL/MQ)。 |
| 使用 [TiDB Binlog](/tidb-binlog/tidb-binlog-overview.md) 进行增量同步 | [部署 TiDB Binlog 拓扑架构](/tidb-binlog-deployment-topology.md) | [简单 TiDB Binlog 配置模板(下游为 MySQL)](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-tidb-binlog.yaml)<br/>[简单 TiDB Binlog 配置模板(下游为 file)](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-file-binlog.yaml)<br/>[详细 TiDB Binlog 配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-tidb-binlog.yaml) | 在最小拓扑的基础上部署 TiDB Binlog。 |
| 使用 Spark 的 OLAP 业务 | [部署 TiSpark 拓扑架构](/tispark-deployment-topology.md) | [简单 TiSpark 配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-tispark.yaml)<br/>[详细 TiSpark 配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-tispark.yaml) | 在最小拓扑的基础上部署 TiSpark 组件。TiSpark 是 PingCAP 为解决用户复杂 OLAP 需求而推出的产品。TiUP cluster 组件对 TiSpark 的支持目前为实验特性。 |
| 单台机器,多个实例 | [混合部署拓扑架构](/hybrid-deployment-topology.md) | [简单混部配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/simple-multi-instance.yaml)<br/>[详细混部配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/complex-multi-instance.yaml) | 也适用于单机多实例需要额外增加目录、端口、资源配比、label 等配置的场景。 |
| 跨机房部署 TiDB 集群 | [跨机房部署拓扑架构](/geo-distributed-deployment-topology.md) | [跨机房配置模板](https://github.com/pingcap/docs-cn/blob/master/config-templates/geo-redundancy-deployment.yaml) | 以典型的两地三中心架构为例,介绍跨机房部署架构,以及需要注意的关键设置。 |

> **注意:**
>
Expand All @@ -258,7 +284,6 @@ source /home/tidb/.bash_profile
> - 配置的层次结构使用 `.` 表示。如:`log.slow-threshold`。更多格式参考 [TiUP 配置参数模版](https://github.com/pingcap/tiup/blob/master/embed/examples/cluster/topology.example.yaml)。
>
> - 如果需要指定在目标机创建的用户组名,可以参考[这个例子](https://github.com/pingcap/tiup/blob/master/embed/examples/cluster/topology.example.yaml#L7)。
>

更多参数说明,请参考 [TiDB `config.toml.example`](https://github.com/pingcap/tidb/blob/master/config/config.toml.example)、[TiKV `config.toml.example`](https://github.com/tikv/tikv/blob/master/etc/config-template.toml)、[PD `config.toml.example`](https://github.com/pingcap/pd/blob/master/conf/config.toml) 和 [TiFlash 配置参数](/tiflash/tiflash-configuration.md)。

Expand Down
106 changes: 66 additions & 40 deletions scale-tidb-using-tiup.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,17 +92,43 @@ pd_servers:

### 2. 执行扩容命令

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

```shell
tiup cluster scale-out <cluster-name> scale-out.yaml
```
执行 scale-out 命令前,先使用 `check` 及 `check --apply` 命令,检查和自动修复集群存在的潜在风险:

> **注意:**
>
> 此处假设当前执行命令的用户和新增的机器打通了互信,如果不满足已打通互信的条件,需要通过 `-p` 来输入新机器的密码,或通过 `-i` 指定私钥文件。
> 针对 scale-out 命令的检查功能在 tiup cluster v1.9.0 及后续版本中支持,请操作前先升级 tiup cluster 版本。

(1)检查集群存在的潜在风险:

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

```shell
tiup cluster check <cluster-name> scale-out.yaml --cluster --user root [-p] [-i /home/root/.ssh/gcp_rsa]
```

(2)自动修复集群存在的潜在风险:

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

```shell
tiup cluster check <cluster-name> scale-out.yaml --cluster --apply --user root [-p] [-i /home/root/.ssh/gcp_rsa]
```

(3)执行 scale-out 命令扩容 TiDB 集群:

预期输出 Scaled cluster `<cluster-name>` out successfully 信息,表示扩容操作成功。
{{< copyable "shell-regular" >}}

```shell
tiup cluster scale-out <cluster-name> scale-out.yaml [-p] [-i /home/root/.ssh/gcp_rsa]
```

以上操作示例中:

- 扩容配置文件为 `scale-out.yaml`。
- `--user root` 表示通过 root 用户登录到目标主机完成集群部署,该用户需要有 ssh 到目标机器的权限,并且在目标机器有 sudo 权限。也可以用其他有 ssh 和 sudo 权限的用户完成部署。
- [-i] 及 [-p] 为可选项,如果已经配置免密登录目标机,则不需填写。否则选择其一即可,[-i] 为可登录到目标机的 root 用户(或 --user 指定的其他用户)的私钥,也可使用 [-p] 交互式输入该用户的密码。

预期日志结尾输出 ```Scaled cluster `<cluster-name>` out successfully``` 信息,表示扩容操作成功。

### 3. 检查集群状态

Expand All @@ -118,11 +144,11 @@ tiup cluster display <cluster-name>

| 主机 IP | 服务 |
|:----|:----|
| 10.0.1.3 | TiDB + TiFlash  |
| 10.0.1.3 | TiDB + TiFlash |
| 10.0.1.4 | TiDB + PD |
| 10.0.1.5 | **TiDB** + TiKV + Monitor |
| 10.0.1.1 | TiKV  |
| 10.0.1.2 | TiKV  |
| 10.0.1.1 | TiKV |
| 10.0.1.2 | TiKV |

## 扩容 TiFlash 节点

Expand Down Expand Up @@ -172,11 +198,11 @@ tiup cluster display <cluster-name>

| 主机 IP | 服务 |
|:----|:----|
| 10.0.1.3 | TiDB + TiFlash  |
| 10.0.1.3 | TiDB + TiFlash |
| 10.0.1.4 | TiDB + PD + **TiFlash** |
| 10.0.1.5 | TiDB+ TiKV + Monitor |
| 10.0.1.1 | TiKV  |
| 10.0.1.2 | TiKV  |
| 10.0.1.1 | TiKV |
| 10.0.1.2 | TiKV |

## 扩容 TiCDC 节点

Expand Down Expand Up @@ -227,8 +253,8 @@ tiup cluster display <cluster-name>
| 10.0.1.3 | TiDB + TiFlash + **TiCDC** |
| 10.0.1.4 | TiDB + PD + TiFlash + **TiCDC** |
| 10.0.1.5 | TiDB+ TiKV + Monitor |
| 10.0.1.1 | TiKV  |
| 10.0.1.2 | TiKV  |
| 10.0.1.1 | TiKV |
| 10.0.1.2 | TiKV |

## 缩容 TiDB/PD/TiKV 节点

Expand All @@ -252,43 +278,43 @@ tiup cluster display <cluster-name>
```

```
Starting /root/.tiup/components/cluster/v1.9.0/cluster display <cluster-name> 
Starting /root/.tiup/components/cluster/v1.9.0/cluster display <cluster-name>

TiDB Cluster: <cluster-name>

TiDB Version: v5.4.0

ID              Role Host        Ports Status Data Dir                Deploy Dir
ID Role Host Ports Status Data Dir Deploy Dir

--              ---- ----    ----- ------ --------                ----------
-- ---- ---- ----- ------ -------- ----------

10.0.1.3:8300   cdc 10.0.1.3 8300   Up data/cdc-8300           deploy/cdc-8300
10.0.1.3:8300 cdc 10.0.1.3 8300 Up data/cdc-8300 deploy/cdc-8300

10.0.1.4:8300   cdc 10.0.1.4 8300   Up data/cdc-8300           deploy/cdc-8300
10.0.1.4:8300 cdc 10.0.1.4 8300 Up data/cdc-8300 deploy/cdc-8300

10.0.1.4:2379   pd 10.0.1.4 2379/2380 Healthy data/pd-2379            deploy/pd-2379
10.0.1.4:2379 pd 10.0.1.4 2379/2380 Healthy data/pd-2379 deploy/pd-2379

10.0.1.1:20160  tikv 10.0.1.1 20160/20180 Up data/tikv-20160         deploy/tikv-20160
10.0.1.1:20160 tikv 10.0.1.1 20160/20180 Up data/tikv-20160 deploy/tikv-20160

10.0.1.2:20160  tikv 10.0.1.2 20160/20180 Up data/tikv-20160         deploy/tikv-20160
10.0.1.2:20160 tikv 10.0.1.2 20160/20180 Up data/tikv-20160 deploy/tikv-20160

10.0.1.5:20160  tikv  10.0.1.5 20160/20180  Up data/tikv-20160         deploy/tikv-20160
10.0.1.5:20160 tikv 10.0.1.5 20160/20180 Up data/tikv-20160 deploy/tikv-20160

10.0.1.3:4000   tidb  10.0.1.3 4000/10080   Up -             deploy/tidb-4000
10.0.1.3:4000 tidb 10.0.1.3 4000/10080 Up - deploy/tidb-4000

10.0.1.4:4000   tidb  10.0.1.4 4000/10080   Up -             deploy/tidb-4000
10.0.1.4:4000 tidb 10.0.1.4 4000/10080 Up - deploy/tidb-4000

10.0.1.5:4000   tidb 10.0.1.5 4000/10080 Up -                       deploy/tidb-4000
10.0.1.5:4000 tidb 10.0.1.5 4000/10080 Up - deploy/tidb-4000

10.0.1.3:9000 tiflash 10.0.1.3 9000/8123/3930/20170/20292/8234 Up data/tiflash-9000 deploy/tiflash-9000

10.0.1.4:9000 tiflash 10.0.1.4 9000/8123/3930/20170/20292/8234 Up data/tiflash-9000 deploy/tiflash-9000

10.0.1.5:9090   prometheus 10.0.1.5 9090 Up data/prometheus-9090    deploy/prometheus-9090
10.0.1.5:9090 prometheus 10.0.1.5 9090 Up data/prometheus-9090 deploy/prometheus-9090

10.0.1.5:3000   grafana 10.0.1.5 3000 Up -                       deploy/grafana-3000
10.0.1.5:3000 grafana 10.0.1.5 3000 Up - deploy/grafana-3000

10.0.1.5:9093   alertmanager 10.0.1.5 9093/9094 Up data/alertmanager-9093  deploy/alertmanager-9093
10.0.1.5:9093 alertmanager 10.0.1.5 9093/9094 Up data/alertmanager-9093 deploy/alertmanager-9093
```

### 2. 执行缩容操作
Expand Down Expand Up @@ -321,11 +347,11 @@ tiup cluster display <cluster-name>

| Host IP | Service |
|:----|:----|
| 10.0.1.3 | TiDB + TiFlash + TiCDC |
| 10.0.1.4 | TiDB + PD + TiFlash + TiCDC |
| 10.0.1.3 | TiDB + TiFlash + TiCDC |
| 10.0.1.4 | TiDB + PD + TiFlash + TiCDC |
| 10.0.1.5 | TiDB + Monitor**(TiKV 已删除)** |
| 10.0.1.1 | TiKV  |
| 10.0.1.2 | TiKV  |
| 10.0.1.1 | TiKV |
| 10.0.1.2 | TiKV |

## 缩容 TiFlash 节点

Expand Down Expand Up @@ -474,11 +500,11 @@ tiup cluster display <cluster-name>

| Host IP | Service |
|:----|:----|
| 10.0.1.3 | TiDB + TiFlash + TiCDC |
| 10.0.1.3 | TiDB + TiFlash + TiCDC |
| 10.0.1.4 | TiDB + PD + TiCDC **(TiFlash 已删除)** |
| 10.0.1.5 | TiDB + Monitor |
| 10.0.1.1 | TiKV  |
| 10.0.1.2 | TiKV  |
| 10.0.1.1 | TiKV |
| 10.0.1.2 | TiKV |

## 缩容 TiCDC 节点

Expand Down Expand Up @@ -506,8 +532,8 @@ tiup cluster display <cluster-name>

| Host IP | Service |
|:----|:----|
| 10.0.1.3 | TiDB + TiFlash + TiCDC |
| 10.0.1.3 | TiDB + TiFlash + TiCDC |
| 10.0.1.4 | TiDB + PD + **(TiCDC 已删除)** |
| 10.0.1.5 | TiDB + Monitor |
| 10.0.1.1 | TiKV  |
| 10.0.1.2 | TiKV  |
| 10.0.1.1 | TiKV |
| 10.0.1.2 | TiKV |