Skip to content

Commit

Permalink
tiproxy: improve deployment instructions for deploying TiProxy (#19415)…
Browse files Browse the repository at this point in the history
… (#19478)
  • Loading branch information
ti-chi-bot authored Jan 7, 2025
1 parent 9603af5 commit 6298583
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 11 deletions.
17 changes: 14 additions & 3 deletions tiproxy/tiproxy-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ summary: 了解与 TiProxy 部署和使用相关的配置参数。

# TiProxy 配置文件

本文档介绍了与 TiProxy 部署和使用相关的配置参数。以下是一个配置示例:
本文档介绍了与 TiProxy 部署和使用相关的配置参数。关于 TiUP 的拓扑文件配置参数,请参阅 [tiproxy-servers 配置参数](/tiup/tiup-cluster-topology-reference.md#tiproxy_servers)

以下是一个配置示例:

```toml
[proxy]
Expand Down Expand Up @@ -43,13 +45,13 @@ SQL 端口的配置。

+ 默认值:`0.0.0.0:6000`
+ 支持热加载:否
+ SQL 网关地址。格式为 `<ip>:<port>`
+ SQL 服务的监听地址。格式为 `<ip>:<port>`。使用 TiUP 或 TiDB Operator 部署 TiProxy 时,此配置项会自动设置

#### `advertise-addr`

+ 默认值:`""`
+ 支持热加载:否
+ 指定客户端连接 TiProxy 时使用的地址。使用 TiUP 或 TiDB Operator 部署 TiProxy 时,此配置项会自动设置。如果未设置该配置项,将使用该 TiProxy 实例的外部 IP 地址。
+ 指定其他组件连接 TiProxy 时使用的地址,该地址只包含主机名,不包含端口。该地址可能与 [`addr`](#addr) 中的主机名不同。例如,TiProxy 的 TLS 证书中的 `Subject Alternative Name` 只包含域名时,其他组件通过 IP 连接 TiProxy 会失败。使用 TiUP 或 TiDB Operator 部署 TiProxy 时,此配置项会自动设置。如果未设置该配置项,将使用该 TiProxy 实例的外部 IP 地址。

#### `graceful-wait-before-shutdown`

Expand Down Expand Up @@ -137,6 +139,15 @@ TiProxy 的高可用配置。
+ 支持热加载:否
+ 指定虚拟 IP 地址,使用 CIDR 格式表示,例如 `"10.0.1.10/24"`。当集群中部署了多台 TiProxy 时,只有一台 TiProxy 会绑定虚拟 IP。当该 TiProxy 下线时,另外一台 TiProxy 会自动绑定该 IP,确保客户端始终能通过虚拟 IP 连接到可用的 TiProxy。

配置示例:

```yaml
server_configs:
tiproxy:
ha.virtual-ip: "10.0.1.10/24"
ha.interface: "eth0"
```
> **注意:**
>
> - 虚拟 IP 仅支持 Linux 操作系统。
Expand Down
21 changes: 21 additions & 0 deletions tiproxy/tiproxy-deployment-topology.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ summary: 了解在部署最小拓扑集群的基础上,部署 TiProxy 的拓

本文介绍在部署最小拓扑集群的基础上,部署 [TiProxy](/tiproxy/tiproxy-overview.md) 的拓扑结构。

其他部署方式,请参考以下文档:

- 使用 TiDB Operator 部署 TiProxy,请参见 [TiDB Operator](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-tiproxy) 文档。
- 使用 TiUP 本地快速部署 TiProxy,请参见[部署 TiProxy](/tiup/tiup-playground.md#部署-tiproxy)
- 使用 TiUP 部署 TiProxy,请参见 [TiProxy 安装和使用](/tiproxy/tiproxy-overview.md#安装和使用)

TiProxy 是 TiDB 的 L7 代理,可以平衡连接并迁移会话。

## 拓扑信息
Expand Down Expand Up @@ -35,9 +41,12 @@ global:
component_versions:
tiproxy: "v1.2.0"
server_configs:
tidb:
graceful-wait-before-shutdown: 15
tiproxy:
ha.virtual-ip: "10.0.1.10/24"
ha.interface: "eth0"
graceful-wait-before-shutdown: 15

pd_servers:
- host: 10.0.1.1
Expand All @@ -56,7 +65,19 @@ tikv_servers:

tiproxy_servers:
- host: 10.0.1.11
deploy_dir: "/tiproxy-deploy"
data_dir: "/tiproxy-data"
port: 6000
status_port: 3080
config:
labels: { zone: "east" }
- host: 10.0.1.12
deploy_dir: "/tiproxy-deploy"
data_dir: "/tiproxy-data"
port: 6000
status_port: 3080
config:
labels: { zone: "west" }

monitoring_servers:
- host: 10.0.1.13
Expand Down
15 changes: 7 additions & 8 deletions tiproxy/tiproxy-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,12 @@ TiProxy 不适用于以下场景:

## 安装和使用

本节介绍使用 TiUP 部署和变更 TiProxy 的步骤。使用 TiDB Operator 部署的方式请参阅 [TiDB Operator](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-tiproxy) 文档。
本节介绍使用 TiUP 部署和变更 TiProxy 的步骤。

其他部署方式,请参考以下文档:

- 使用 TiDB Operator 部署 TiProxy,请参见 [TiDB Operator](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-tiproxy) 文档。
- 使用 TiUP 本地快速部署 TiProxy,请参见[部署 TiProxy](/tiup/tiup-playground.md#部署-tiproxy)

### 部署 TiProxy

Expand All @@ -83,9 +88,6 @@ TiProxy 不适用于以下场景:
tidb:
security.session-token-signing-cert: "/var/sess/cert.pem"
security.session-token-signing-key: "/var/sess/key.pem"
security.ssl-ca: "/var/ssl/ca.pem"
security.ssl-cert: "/var/ssl/cert.pem"
security.ssl-key: "/var/ssl/key.pem"
graceful-wait-before-shutdown: 15
```
Expand All @@ -100,7 +102,7 @@ TiProxy 不适用于以下场景:

建议在拓扑配置里指定 TiProxy 的版本号,这样通过 [`tiup cluster upgrade`](/tiup/tiup-component-cluster-upgrade.md) 升级 TiDB 集群时不会升级 TiProxy,否则升级 TiProxy 会导致客户端连接断开。

如需配置 TiProxy 配置项,请参阅 [TiProxy 配置](/tiproxy/tiproxy-configuration.md)。
如需配置 TiProxy 配置项,请参阅 [TiProxy 配置](/tiproxy/tiproxy-configuration.md)。更多 TiProxy 部署拓扑配置参数,请参阅 [tiproxy-servers 配置参数](/tiup/tiup-cluster-topology-reference.md#tiproxy_servers)。

配置示例:

Expand All @@ -109,9 +111,6 @@ TiProxy 不适用于以下场景:
tiproxy: "v1.2.0"
server_configs:
tiproxy:
security.server-tls.ca: "/var/ssl/ca.pem"
security.server-tls.cert: "/var/ssl/cert.pem"
security.server-tls.key: "/var/ssl/key.pem"
ha.virtual-ip: "10.0.1.10/24"
ha.interface: "eth0"
```
Expand Down
11 changes: 11 additions & 0 deletions tiup/tiup-cluster-topology-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,7 @@ tiflash_servers:
- `host`:指定部署到哪台机器,字段值填 IP 地址,不可省略。
- `ssh_port`:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用 `global` 区块中的 `ssh_port`。
- `port`:TiProxy SQL 服务的监听端口,默认值:`6000`。
- `status_port`:TiProxy 状态服务的监听端口,用于外部通过 HTTP 请求查看 TiProxy 服务的状态,默认值:`3080`。
- `deploy_dir`:指定部署目录,若不指定,或指定为相对目录,则按照 `global` 中配置的 `deploy_dir` 生成。
- `data_dir`:指定数据目录,若不指定,或指定为相对目录,则按照 `global` 中配置的 `data_dir` 生成。
- `numa_node`:为该实例分配 NUMA 策略,如果指定了该参数,需要确保目标机装了 [numactl](https://linux.die.net/man/8/numactl),在指定该参数的情况下会通过 [numactl](https://linux.die.net/man/8/numactl) 分配 cpubind 和 membind 策略。该字段参数为 string 类型,字段值填 NUMA 节点的 ID,例如 `"0,1"`。
Expand All @@ -363,9 +364,19 @@ tiflash_servers:
```yaml
tiproxy_servers:
- host: 10.0.1.21
port: 6000
status_port: 3080
config:
labels: { zone: "zone1" }
- host: 10.0.1.22
port: 6000
status_port: 3080
config:
labels: { zone: "zone2" }
```

关于更多配置示例,请参见 [TiProxy 部署拓扑](/tiproxy/tiproxy-deployment-topology.md)。

### `kvcdc_servers`

`kvcdc_servers` 约定了将 [TiKV-CDC](https://tikv.org/docs/latest/concepts/explore-tikv-features/cdc/cdc-cn/) 服务部署到哪些机器上,同时可以指定每台机器上的服务配置。`kvcdc_servers` 是一个数组,每个数组元素包含以下字段:
Expand Down

0 comments on commit 6298583

Please sign in to comment.